tests/run-tests: Ignore exception in process kill when ending repl test.
When running Linux on WSL, Popen.kill() can raise a ProcessLookupError if the process does not exist anymore, which can happen here since the previous statement already tries to close the process by sending Ctrl-D to the running repl. This doesn't seem to be a problem on other OSes, so just swallow the exception silently since it indicates the process has been closed already, which after all is what we want.
This commit is contained in:
parent
3dda964785
commit
d89ce2ed1d
|
@ -103,7 +103,16 @@ def run_micropython(pyb, args, test_file, is_special=False):
|
|||
banner = get(True)
|
||||
output_mupy = banner + b''.join(send_get(line) for line in f)
|
||||
send_get(b'\x04') # exit the REPL, so coverage info is saved
|
||||
p.kill()
|
||||
# At this point the process might have exited already, but trying to
|
||||
# kill it 'again' normally doesn't result in exceptions as Python and/or
|
||||
# the OS seem to try to handle this nicely. When running Linux on WSL
|
||||
# though, the situation differs and calling Popen.kill after the process
|
||||
# terminated results in a ProcessLookupError. Just catch that one here
|
||||
# since we just want the process to be gone and that's the case.
|
||||
try:
|
||||
p.kill()
|
||||
except ProcessLookupError:
|
||||
pass
|
||||
os.close(master)
|
||||
os.close(slave)
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue