makefile: Add some verilator micropython tests
These are the same micropython tests we use against the ghdl simulation. Signed-off-by: Anton Blanchard <anton@linux.ibm.com>pull/319/head
							parent
							
								
									8acd5a5607
								
							
						
					
					
						commit
						efb387b0d2
					
				@ -0,0 +1,31 @@
 | 
			
		||||
#!/usr/bin/python3
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import subprocess
 | 
			
		||||
from pexpect import fdpexpect
 | 
			
		||||
import sys
 | 
			
		||||
import signal
 | 
			
		||||
 | 
			
		||||
cmd = [ './microwatt-verilator' ]
 | 
			
		||||
 | 
			
		||||
devNull = open(os.devnull, 'w')
 | 
			
		||||
p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
 | 
			
		||||
        stdin=subprocess.PIPE, stderr=devNull)
 | 
			
		||||
 | 
			
		||||
exp = fdpexpect.fdspawn(p.stdout)
 | 
			
		||||
exp.logfile = sys.stdout.buffer
 | 
			
		||||
 | 
			
		||||
exp.expect('Type "help\(\)" for more information.')
 | 
			
		||||
exp.expect('>>>')
 | 
			
		||||
 | 
			
		||||
p.stdin.write(b'print("foo")\r\n')
 | 
			
		||||
p.stdin.flush()
 | 
			
		||||
 | 
			
		||||
# Catch the command echoed back to the console
 | 
			
		||||
exp.expect('foo', timeout=600)
 | 
			
		||||
 | 
			
		||||
# Now catch the output
 | 
			
		||||
exp.expect('foo', timeout=600)
 | 
			
		||||
exp.expect('>>>')
 | 
			
		||||
 | 
			
		||||
os.kill(p.pid, signal.SIGKILL)
 | 
			
		||||
@ -0,0 +1,39 @@
 | 
			
		||||
#!/usr/bin/python3
 | 
			
		||||
 | 
			
		||||
import os
 | 
			
		||||
import subprocess
 | 
			
		||||
from pexpect import fdpexpect
 | 
			
		||||
import sys
 | 
			
		||||
import signal
 | 
			
		||||
 | 
			
		||||
cmd = [ './microwatt-verilator' ]
 | 
			
		||||
 | 
			
		||||
devNull = open(os.devnull, 'w')
 | 
			
		||||
p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
 | 
			
		||||
        stdin=subprocess.PIPE, stderr=devNull)
 | 
			
		||||
 | 
			
		||||
exp = fdpexpect.fdspawn(p.stdout)
 | 
			
		||||
exp.logfile = sys.stdout.buffer
 | 
			
		||||
 | 
			
		||||
exp.expect('Type "help\(\)" for more information.')
 | 
			
		||||
exp.expect('>>>')
 | 
			
		||||
 | 
			
		||||
p.stdin.write(b'n2=0\r\n')
 | 
			
		||||
p.stdin.write(b'n1=1\r\n')
 | 
			
		||||
p.stdin.write(b'for i in range(5):\r\n')
 | 
			
		||||
p.stdin.write(b'    n0 = n1 + n2\r\n')
 | 
			
		||||
p.stdin.write(b'    print(n0)\r\n')
 | 
			
		||||
p.stdin.write(b'    n2 = n1\r\n')
 | 
			
		||||
p.stdin.write(b'    n1 = n0\r\n')
 | 
			
		||||
p.stdin.write(b'\r\n')
 | 
			
		||||
p.stdin.flush()
 | 
			
		||||
 | 
			
		||||
exp.expect('n1 = n0', timeout=600)
 | 
			
		||||
exp.expect('1', timeout=600)
 | 
			
		||||
exp.expect('2', timeout=600)
 | 
			
		||||
exp.expect('3', timeout=600)
 | 
			
		||||
exp.expect('5', timeout=600)
 | 
			
		||||
exp.expect('8', timeout=600)
 | 
			
		||||
exp.expect('>>>', timeout=600)
 | 
			
		||||
 | 
			
		||||
os.kill(p.pid, signal.SIGKILL)
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue