From ff8c4188f473ac7c8311694a6ffa4ca5357b0492 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Tue, 24 Nov 2015 19:52:03 +0200 Subject: [PATCH] tests/run-tests: Improve robustness of REPL tests. Unconditionally wait for MicroPython banner. On overloaded systems, when using emulators, etc. initial executable startup may take more than 20ms. --- tests/run-tests | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/run-tests b/tests/run-tests index b275be0064..7340d5f550 100755 --- a/tests/run-tests +++ b/tests/run-tests @@ -51,14 +51,15 @@ def run_micropython(pyb, args, test_file): return b'SKIP\n' import select - def get(): + def get(required=False): rv = b'' while True: ready = select.select([master], [], [], 0.02) if ready[0] == [master]: rv += os.read(master, 1024) else: - return rv + if not required or rv: + return rv def send_get(what): os.write(master, what) @@ -69,7 +70,7 @@ def run_micropython(pyb, args, test_file): master, slave = pty.openpty() p = subprocess.Popen(args, stdin=slave, stdout=slave, stderr=subprocess.STDOUT, bufsize=0) - banner = get() + banner = get(True) output_mupy = banner + b''.join(send_get(line) for line in f) p.kill() os.close(master)