Skip to content

Commit 223361b

Browse files
committed
tests: tolerate alternate orders of messages
It is possible that MSG_DATA_STDERR and/or MSG_DATA_EXIT_CODE might come before all stdout data is received. This fixes a failure under ASAN, which is presumably triggered by timing differences.
1 parent c918563 commit 223361b

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

qrexec/tests/socket/agent.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -623,16 +623,20 @@ def test_buffer_stdin(self):
623623
f.write("end\n")
624624
f.flush()
625625

626+
messages = []
626627
received_data = b""
627628
while len(received_data) < data_size:
628629
message_type, message = target.recv_message()
629-
self.assertEqual(message_type, qrexec.MSG_DATA_STDOUT)
630-
received_data += message
630+
if message_type != qrexec.MSG_DATA_STDOUT:
631+
messages.append((message_type, message))
632+
else:
633+
self.assertEqual(message_type, qrexec.MSG_DATA_STDOUT)
634+
received_data += message
631635

632636
self.assertEqual(len(received_data), data_size)
633637
self.assertEqual(received_data, data)
634638

635-
messages = target.recv_all_messages()
639+
messages += target.recv_all_messages()
636640
self.assertListEqual(
637641
util.sort_messages(messages),
638642
[

0 commit comments

Comments
 (0)