| 272 | |
| 273 | |
| 274 | def stdouterr_reader_wrapper( |
| 275 | unread_testcases, finished_unread_testcases, read_testcases |
| 276 | ): |
| 277 | read_testcase = None |
| 278 | while read_testcases.is_set() or unread_testcases: |
| 279 | if finished_unread_testcases: |
| 280 | read_testcase = finished_unread_testcases.pop() |
| 281 | unread_testcases.remove(read_testcase) |
| 282 | elif unread_testcases: |
| 283 | read_testcase = unread_testcases.pop() |
| 284 | if read_testcase: |
| 285 | data = "" |
| 286 | while data is not None: |
| 287 | sys.stdout.write(data) |
| 288 | data = read_testcase.stdouterr_queue.get() |
| 289 | |
| 290 | read_testcase.stdouterr_queue.close() |
| 291 | finished_unread_testcases.discard(read_testcase) |
| 292 | read_testcase = None |
| 293 | |
| 294 | |
| 295 | def handle_failed_suite(logger, last_test_temp_dir, vpp_pid, vpp_binary): |