|
4 | 4 | import importlib |
5 | 5 | import sys |
6 | 6 | import socket |
| 7 | +from unittest.mock import ANY |
7 | 8 | from test.support import os_helper, SHORT_TIMEOUT, busy_retry |
8 | 9 | from test.support.script_helper import make_script |
9 | 10 | from test.support.socket_helper import find_unused_port |
@@ -184,13 +185,13 @@ def new_eager_loop(): |
184 | 185 |
|
185 | 186 | root_task = "Task-1" |
186 | 187 | expected_stack_trace = [ |
187 | | - ["c5", "c4", "c3", "c2"], |
188 | | - "c2_root", |
| 188 | + ['c5', 'c4', 'c3', 'c2'], |
| 189 | + 'c2_root', |
189 | 190 | [ |
190 | | - [["main"], root_task, []], |
191 | | - [["c1"], "sub_main_1", [[["main"], root_task, []]]], |
192 | | - [["c1"], "sub_main_2", [[["main"], root_task, []]]], |
193 | | - ], |
| 191 | + [['_aexit', '__aexit__', 'main'], root_task, []], |
| 192 | + [['c1'], 'sub_main_1', [[['_aexit', '__aexit__', 'main'], root_task, []]]], |
| 193 | + [['c1'], 'sub_main_2', [[['_aexit', '__aexit__', 'main'], root_task, []]]], |
| 194 | + ] |
194 | 195 | ] |
195 | 196 | self.assertEqual(stack_trace, expected_stack_trace) |
196 | 197 |
|
@@ -397,8 +398,10 @@ async def main(): |
397 | 398 | # sets are unordered, so we want to sort "awaited_by"s |
398 | 399 | stack_trace[2].sort(key=lambda x: x[1]) |
399 | 400 |
|
400 | | - expected_stack_trace = [ |
401 | | - ['deep', 'c1', 'run_one_coro'], 'Task-2', [[['main'], 'Task-1', []]] |
| 401 | + expected_stack_trace = [ |
| 402 | + ['deep', 'c1', 'run_one_coro'], |
| 403 | + 'Task-2', |
| 404 | + [[['staggered_race', 'main'], 'Task-1', []]] |
402 | 405 | ] |
403 | 406 | self.assertEqual(stack_trace, expected_stack_trace) |
404 | 407 |
|
@@ -516,19 +519,19 @@ async def main(): |
516 | 519 | # expected: at least 1000 pending tasks |
517 | 520 | self.assertGreaterEqual(len(entries), 1000) |
518 | 521 | # the first three tasks stem from the code structure |
519 | | - self.assertIn(('Task-1', []), entries) |
520 | | - self.assertIn(('server task', [[['main'], 'Task-1', []]]), entries) |
521 | | - self.assertIn(('echo client spam', [[['main'], 'Task-1', []]]), entries) |
| 522 | + self.assertIn((ANY, 'Task-1', []), entries) |
| 523 | + self.assertIn((ANY, 'server task', [[['_aexit', '__aexit__', 'main'], ANY]]), entries) |
| 524 | + self.assertIn((ANY, 'echo client spam', [[['_aexit', '__aexit__', 'main'], ANY]]), entries) |
522 | 525 |
|
523 | | - expected_stack = [[['echo_client_spam'], 'echo client spam', [[['main'], 'Task-1', []]]]] |
524 | | - tasks_with_stack = [task for task in entries if task[1] == expected_stack] |
| 526 | + expected_stack = [[['_aexit', '__aexit__', 'echo_client_spam'], ANY]] |
| 527 | + tasks_with_stack = [task for task in entries if task[2] == expected_stack] |
525 | 528 | self.assertGreaterEqual(len(tasks_with_stack), 1000) |
526 | 529 |
|
527 | 530 | # the final task will have some random number, but it should for |
528 | 531 | # sure be one of the echo client spam horde (In windows this is not true |
529 | 532 | # for some reason) |
530 | 533 | if sys.platform != "win32": |
531 | | - self.assertEqual([[['echo_client_spam'], 'echo client spam', [[['main'], 'Task-1', []]]]], entries[-1][1]) |
| 534 | + self.assertEqual([[['_aexit', '__aexit__', 'echo_client_spam'], ANY]], entries[-1][2]) |
532 | 535 | except PermissionError: |
533 | 536 | self.skipTest( |
534 | 537 | "Insufficient permissions to read the stack trace") |
|
0 commit comments