mirror of
https://github.com/antonblanchard/microwatt.git
synced 2026-01-13 15:18:09 +00:00
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>
This commit is contained in:
parent
8acd5a5607
commit
efb387b0d2
6
Makefile
6
Makefile
@ -241,9 +241,15 @@ $(tests_console): core_tb
|
||||
test_micropython: core_tb
|
||||
@./scripts/test_micropython.py
|
||||
|
||||
test_micropython_verilator: microwatt-verilator
|
||||
@./scripts/test_micropython_verilator.py
|
||||
|
||||
test_micropython_long: core_tb
|
||||
@./scripts/test_micropython_long.py
|
||||
|
||||
test_micropython_verilator_long: microwatt-verilator
|
||||
@./scripts/test_micropython_verilator_long.py
|
||||
|
||||
tests_soc_tb = $(patsubst %_tb,%_tb_test,$(soc_tbs))
|
||||
|
||||
%_test: %
|
||||
|
||||
31
scripts/test_micropython_verilator.py
Executable file
31
scripts/test_micropython_verilator.py
Executable file
@ -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)
|
||||
39
scripts/test_micropython_verilator_long.py
Executable file
39
scripts/test_micropython_verilator_long.py
Executable file
@ -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…
x
Reference in New Issue
Block a user