mirror of
https://github.com/antonblanchard/microwatt.git
synced 2026-01-11 23:43:15 +00:00
The current version of micropython in tests/micropython.bin is ancient. Bug #135 points out that more recent versions are much smaller and they also handle restart when ctrl+D is pressed. Save all three versions of the file (elf, bin and hex) in micropython/ Signed-off-by: Anton Blanchard <anton@linux.ibm.com>
41 lines
884 B
Python
Executable File
41 lines
884 B
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import tempfile
|
|
import os
|
|
from shutil import copyfile
|
|
import subprocess
|
|
from pexpect import fdpexpect
|
|
import sys
|
|
import signal
|
|
|
|
tempdir = tempfile.TemporaryDirectory()
|
|
cwd = os.getcwd()
|
|
os.chdir(tempdir.name)
|
|
|
|
copyfile(os.path.join(cwd, 'micropython/firmware.bin'),
|
|
os.path.join(tempdir.name, 'main_ram.bin'))
|
|
|
|
cmd = [ os.path.join(cwd, './core_tb') ]
|
|
|
|
devNull = open(os.devnull, 'w')
|
|
p = subprocess.Popen(cmd, stdout=devNull,
|
|
stdin=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
|
|
exp = fdpexpect.fdspawn(p.stderr)
|
|
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)
|