From 7c8fcd6baff7413cfe56653fef82cf67fd370f46 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 12 Mar 2022 19:00:36 +0200 Subject: [PATCH] tests: Fix sigma_dut_cmd() processing for the return value 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 --- tests/hwsim/test_sigma_dut.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/hwsim/test_sigma_dut.py b/tests/hwsim/test_sigma_dut.py index 0202fc8e8..59751e581 100644 --- a/tests/hwsim/test_sigma_dut.py +++ b/tests/hwsim/test_sigma_dut.py @@ -73,12 +73,12 @@ def sigma_dut_cmd(cmd, port=9000, timeout=2): 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()