forked from goodboy/tractor
1
0
Fork 0
tractor/tests
Tyler Goodlet 3ed309f019 Add test for `modden` sub-spawner-server hangs on cancel
As per a lot of the recent refinements to `Context` cancellation, add
a new test case to replicate the original hang-on-cancel found with
`modden` when using a client actor to spawn a subactor in some other
tree where despite `Context.cancel()` being called the requesting client
would hang on the opened context with the server.

The specific scenario added here is to have,
- root actor spawns 2 children: a client and a spawn server.
- the spawn server opens with a spawn-request serve loop and begins to
  wait for the client.
- client spawns and connects to the sibling spawn server, requests to
  spawn a sub-actor, the "little bro", connects to it then does some
  echo streaming, cancels the request with it's sibling (the spawn
  server) which should in turn cancel the root's-grandchild and result
  in a cancel-ack back to the client's `.open_context()`.
- root ensures that it can also connect to the grandchild (little bro),
  do the same echo streaming, then ensure everything tears down
  correctly after cancelling all the children.

More refinements to come here obvi in the specific cancellation
semantics and possibly causes.

Also tweaks the other tests in suite to use the new `Context` properties
recently introduced and similarly updated in the previous patch to the
ctx-semantics suite.
2024-02-29 15:45:55 -05:00
..
conftest.py Add a `debug_mode: bool` fixture via `--tpdb` flag 2024-02-20 08:53:37 -05:00
test_2way.py Move context-streaming operational tests into one mod 2021-12-06 16:45:44 -05:00
test_advanced_faults.py Add a simplified zombie lord specific process reaping test 2023-01-29 14:55:02 -05:00
test_advanced_streaming.py Call `actor.cancel(None)` from root to avoid mismatch with (any future) meth sig changes 2024-02-22 14:45:08 -05:00
test_cancellation.py Make `@context`-cancelled tests more pedantic 2024-02-28 19:25:27 -05:00
test_child_manages_service_nursery.py Port all tests to new `reg_addr` fixture name 2023-10-18 15:39:20 -04:00
test_clustering.py Fix cluster test to use `allow_overruns` 2023-05-15 10:00:45 -04:00
test_context_stream_semantics.py Make `@context`-cancelled tests more pedantic 2024-02-28 19:25:27 -05:00
test_debugger.py Get remaining suites passing.. 2023-10-19 11:51:47 -04:00
test_discovery.py Port all tests to new `reg_addr` fixture name 2023-10-18 15:39:20 -04:00
test_docs_examples.py Get remaining suites passing.. 2023-10-19 11:51:47 -04:00
test_infected_asyncio.py Fix `Context.result()` call to be in runtime scope 2023-10-23 17:48:34 -04:00
test_inter_peer_cancellation.py Add test for `modden` sub-spawner-server hangs on cancel 2024-02-29 15:45:55 -05:00
test_legacy_one_way_streaming.py Port all tests to new `reg_addr` fixture name 2023-10-18 15:39:20 -04:00
test_local.py Port all tests to new `reg_addr` fixture name 2023-10-18 15:39:20 -04:00
test_multi_program.py Port all tests to new `reg_addr` fixture name 2023-10-18 15:39:20 -04:00
test_pubsub.py Port all tests to new `reg_addr` fixture name 2023-10-18 15:39:20 -04:00
test_resource_cache.py Bump timeout on resource cache test a bitty bit. 2024-01-03 22:27:05 -05:00
test_rpc.py Get remaining suites passing.. 2023-10-19 11:51:47 -04:00
test_runtime.py Tolerate eg in runtime test teardown 2022-10-14 19:42:23 -04:00
test_shm.py Pass `str` dtype for `use_str` case 2023-06-15 12:20:20 -04:00
test_spawning.py Get remaining suites passing.. 2023-10-19 11:51:47 -04:00
test_task_broadcasting.py Port all tests to new `reg_addr` fixture name 2023-10-18 15:39:20 -04:00
test_trioisms.py Add a new "trioisms" test mod for tracking `trio` wishlist behaviour 2022-04-12 13:05:56 -04:00