The first sock.recv() may return both the status,RUNNING and the
following status line if the sigma_dut process ends up being faster in
writing the result than the test script is in reading the result. This
resulted in unexpected behavior and odd error messages when parsing the
result in the test cases. Fix this by dropping the status,RUNNING line
from the result in case the buffer includes multiple lines.
Signed-off-by: Jouni Malinen <j@w1.fi>
for line in res.splitlines():
if line.startswith("status,RUNNING"):
running = True
- elif line.startswith("status,INVALID"):
- done = True
- elif line.startswith("status,ERROR"):
- done = True
- elif line.startswith("status,COMPLETE"):
+ elif line.startswith("status,INVALID") or \
+ line.startswith("status,ERROR") or \
+ line.startswith("status,COMPLETE"):
done = True
+ res = line
+ break
if running and not done:
# Read the actual response
res = sock.recv(1000).decode()