From: Jouni Malinen Date: Sat, 12 Mar 2022 17:00:36 +0000 (+0200) Subject: tests: Fix sigma_dut_cmd() processing for the return value X-Git-Tag: hostap_2_11~2159 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7c8fcd6baff7413cfe56653fef82cf67fd370f46;p=thirdparty%2Fhostap.git 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 --- 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()