Skip to content

Commit ff8c418

Browse files
committed
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.
1 parent 65888e2 commit ff8c418

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

tests/run-tests

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,15 @@ def run_micropython(pyb, args, test_file):
5151
return b'SKIP\n'
5252
import select
5353

54-
def get():
54+
def get(required=False):
5555
rv = b''
5656
while True:
5757
ready = select.select([master], [], [], 0.02)
5858
if ready[0] == [master]:
5959
rv += os.read(master, 1024)
6060
else:
61-
return rv
61+
if not required or rv:
62+
return rv
6263

6364
def send_get(what):
6465
os.write(master, what)
@@ -69,7 +70,7 @@ def run_micropython(pyb, args, test_file):
6970
master, slave = pty.openpty()
7071
p = subprocess.Popen(args, stdin=slave, stdout=slave,
7172
stderr=subprocess.STDOUT, bufsize=0)
72-
banner = get()
73+
banner = get(True)
7374
output_mupy = banner + b''.join(send_get(line) for line in f)
7475
p.kill()
7576
os.close(master)

0 commit comments

Comments
 (0)