|  | 
| 4 | 4 | import importlib | 
| 5 | 5 | import sys | 
| 6 | 6 | import socket | 
|  | 7 | +from asyncio import staggered | 
| 7 | 8 | from unittest.mock import ANY | 
| 8 | 9 | from test.support import os_helper, SHORT_TIMEOUT, busy_retry, requires_gil_enabled | 
| 9 | 10 | from test.support.script_helper import make_script | 
| @@ -90,10 +91,10 @@ def foo(): | 
| 90 | 91 | 
 | 
| 91 | 92 | 
 | 
| 92 | 93 |             expected_stack_trace = [ | 
| 93 |  | -                'foo', | 
| 94 |  | -                'baz', | 
| 95 |  | -                'bar', | 
| 96 |  | -                '<module>' | 
|  | 94 | +                ('foo', script_name, 15), | 
|  | 95 | +                ('baz', script_name, 11), | 
|  | 96 | +                ('bar', script_name, 9), | 
|  | 97 | +                ('<module>', script_name, 17), | 
| 97 | 98 |             ] | 
| 98 | 99 |             self.assertEqual(stack_trace, expected_stack_trace) | 
| 99 | 100 | 
 | 
| @@ -185,7 +186,12 @@ def new_eager_loop(): | 
| 185 | 186 | 
 | 
| 186 | 187 |                 root_task = "Task-1" | 
| 187 | 188 |                 expected_stack_trace = [ | 
| 188 |  | -                    ['c5', 'c4', 'c3', 'c2'], | 
|  | 189 | +                    [ | 
|  | 190 | +                        ('c5', script_name, 11), | 
|  | 191 | +                        ('c4', script_name, 15), | 
|  | 192 | +                        ('c3', script_name, 18), | 
|  | 193 | +                        ('c2', script_name, 21), | 
|  | 194 | +                    ], | 
| 189 | 195 |                     'c2_root', | 
| 190 | 196 |                     [ | 
| 191 | 197 |                         [['_aexit', '__aexit__', 'main'], root_task, []], | 
| @@ -258,7 +264,11 @@ async def main(): | 
| 258 | 264 |             stack_trace[2].sort(key=lambda x: x[1]) | 
| 259 | 265 | 
 | 
| 260 | 266 |             expected_stack_trace = [ | 
| 261 |  | -                ['gen_nested_call', 'gen', 'main'], 'Task-1', [] | 
|  | 267 | +                [('gen_nested_call', script_name, 11), | 
|  | 268 | +                ('gen', script_name, 17), | 
|  | 269 | +                ('main', script_name, 20)], | 
|  | 270 | +                'Task-1', | 
|  | 271 | +                [] | 
| 262 | 272 |             ] | 
| 263 | 273 |             self.assertEqual(stack_trace, expected_stack_trace) | 
| 264 | 274 | 
 | 
| @@ -326,9 +336,10 @@ async def main(): | 
| 326 | 336 |             # sets are unordered, so we want to sort "awaited_by"s | 
| 327 | 337 |             stack_trace[2].sort(key=lambda x: x[1]) | 
| 328 | 338 | 
 | 
| 329 |  | -            expected_stack_trace =  [ | 
| 330 |  | -                ['deep', 'c1'], 'Task-2', [[['main'], 'Task-1', []]] | 
| 331 |  | -            ] | 
|  | 339 | +            expected_stack_trace = [[('deep', script_name, 12), | 
|  | 340 | +                                     ('c1', script_name, 16)], | 
|  | 341 | +                                    'Task-2', | 
|  | 342 | +                                    [[['main'], 'Task-1', []]]] | 
| 332 | 343 |             self.assertEqual(stack_trace, expected_stack_trace) | 
| 333 | 344 | 
 | 
| 334 | 345 |     @skip_if_not_supported | 
| @@ -398,10 +409,13 @@ async def main(): | 
| 398 | 409 |             # sets are unordered, so we want to sort "awaited_by"s | 
| 399 | 410 |             stack_trace[2].sort(key=lambda x: x[1]) | 
| 400 | 411 | 
 | 
| 401 |  | -            expected_stack_trace = [ | 
| 402 |  | -                ['deep', 'c1', 'run_one_coro'], | 
| 403 |  | -                    'Task-2', | 
| 404 |  | -                    [[['staggered_race', 'main'], 'Task-1', []]] | 
|  | 412 | +            expected_stack_trace = [[ | 
|  | 413 | +                    ('deep', script_name, 12), | 
|  | 414 | +                    ('c1', script_name, 16), | 
|  | 415 | +                    ('staggered_race.<locals>.run_one_coro', staggered.__file__, 127) | 
|  | 416 | +                ], | 
|  | 417 | +                'Task-2', | 
|  | 418 | +                [[['staggered_race', 'main'], 'Task-1', []]] | 
| 405 | 419 |             ] | 
| 406 | 420 |             self.assertEqual(stack_trace, expected_stack_trace) | 
| 407 | 421 | 
 | 
| @@ -548,7 +562,7 @@ async def main(): | 
| 548 | 562 |                      "Test only runs on Linux with process_vm_readv support") | 
| 549 | 563 |     def test_self_trace(self): | 
| 550 | 564 |         stack_trace = get_stack_trace(os.getpid()) | 
| 551 |  | -        self.assertEqual(stack_trace[0], "test_self_trace") | 
|  | 565 | +        self.assertEqual(stack_trace[0], ('TestGetStackTrace.test_self_trace', __file__, 564)) | 
| 552 | 566 | 
 | 
| 553 | 567 | if __name__ == "__main__": | 
| 554 | 568 |     unittest.main() | 
0 commit comments