Tyler Goodlet
c5c7e694ec
Better early timeout handling, continue on child re-lock
2021-08-01 13:10:51 -04:00
Tyler Goodlet
674fbbc6b3
Docs and comments tidying
2021-08-01 10:44:13 -04:00
Tyler Goodlet
f173012fea
Handle repeat child tty-acquires race
2021-07-31 15:01:26 -04:00
Tyler Goodlet
13b76c9439
Add fast fail test using the context api
2021-07-31 12:46:40 -04:00
Tyler Goodlet
632c666a7d
Adjust debug tests to accomodate no more root clobbering
...
We may get multiple re-entries to debugger by `bp_forever` sub-actor
now since the root will incrementally try to cancel it only when the tty
lock is not held.
2021-07-31 12:46:40 -04:00
Tyler Goodlet
240f591234
Add 2-way streaming example to readme and scripts
2021-07-31 12:10:25 -04:00
Tyler Goodlet
929b6dcc83
Skip debugger tests on windows at module level
2021-07-06 13:26:30 -04:00
Tyler Goodlet
a134bc490f
Avoid mutate during interate error
2021-07-06 08:23:30 -04:00
Tyler Goodlet
0623de0b47
Expect context cancelled when we cancel
2021-07-06 08:23:30 -04:00
Tyler Goodlet
8eb889a745
Modernize streaming tests
2021-07-06 08:23:29 -04:00
Tyler Goodlet
349d82d182
Speedup the dynamic pubsub test
2021-07-06 08:23:29 -04:00
Tyler Goodlet
7c5fd8ce9f
Add detailed ``@tractor.context`` cancellation/termination tests
2021-07-06 08:23:29 -04:00
Tyler Goodlet
3999849b03
Add a multi-task streaming test
2021-07-06 08:23:29 -04:00
Tyler Goodlet
5b8b7d374a
Add error case
2021-07-06 08:23:29 -04:00
Tyler Goodlet
e5bc07f355
Add dynamic pubsub test using new bidir stream apis
2021-07-06 08:23:29 -04:00
Tyler Goodlet
98133a984e
Parametrize with async for style tests
2021-07-06 08:23:29 -04:00
Tyler Goodlet
4240efc7e3
Add basic test set
2021-07-06 08:23:29 -04:00
Tyler Goodlet
4846c6d498
Cancel scope on stream consumer completion
2021-07-06 08:23:29 -04:00
Tyler Goodlet
55760b3fe0
Only expect further message in non-name-error first case
2021-07-04 12:55:36 -04:00
Tyler Goodlet
9c9309faf8
Handle race for tty by child actors
2021-07-04 10:25:41 -04:00
Tyler Goodlet
b372f4c92b
Handle top level multierror that presents now?
2021-07-02 11:55:16 -04:00
Tyler Goodlet
2b4cf59ee1
Drop sleep
2021-05-07 11:21:40 -04:00
Tyler Goodlet
5ca963148e
Disable leftover debug mode
2021-05-07 11:21:40 -04:00
Tyler Goodlet
4798d3b5db
Drop lingering rpc_module_paths refs
2021-05-07 11:21:40 -04:00
Tyler Goodlet
247483ee93
Drop run and rpc_module_paths from streaming tests
2021-05-07 11:21:40 -04:00
Tyler Goodlet
9e64161538
Drop run and rpc_module_paths from rpc tests
2021-05-07 11:21:40 -04:00
Tyler Goodlet
3bddf9a94b
Drop run and rpc_module_paths from spawning tests
2021-05-07 11:21:40 -04:00
Tyler Goodlet
1eedd463cb
Drop run and rpc_module_paths from pubsub tests
2021-05-07 11:21:40 -04:00
Tyler Goodlet
b46e60ab9d
Drop run from multi prog tests
2021-05-07 11:21:40 -04:00
Tyler Goodlet
cb527c2562
Mostly drop run from local tests
2021-05-07 11:21:40 -04:00
Tyler Goodlet
1584c547cd
Drop run and rpc_module_paths from discovery tests
2021-05-07 11:21:40 -04:00
Tyler Goodlet
2efd8ed167
Drop run and rpc_module_paths from cancel tests
2021-05-07 11:21:40 -04:00
Tyler Goodlet
b1f657e246
De-compact async with tuple on 3.8-
...
Turns out can't use the nicer syntax before python 3.9 (even though it
doesn't seem documented anywhere?).
Relates to #207
2021-04-28 16:35:15 -04:00
Tyler Goodlet
2498a4963b
Update all tests to new streaming API
2021-04-28 12:23:14 -04:00
Tyler Goodlet
1f1619c730
Convert all test suite sync funcs
2021-04-27 12:08:30 -04:00
Tyler Goodlet
47565cfbf3
Use root as default name from `tractor.run()`
2021-02-25 08:51:28 -05:00
Tyler Goodlet
cd636b270e
Update debug tests to expect 'root' actor name
2021-02-24 13:38:20 -05:00
Tyler Goodlet
8fabd27dbe
Lint fixes
2021-02-24 13:13:51 -05:00
Tyler Goodlet
a93321e48e
Don't run stdlib example as part of test set
2021-02-21 15:41:21 -05:00
Tyler Goodlet
07653bc02e
Run parallel examples
2021-02-21 14:08:23 -05:00
Tyler Goodlet
59421d9f3a
Fix some borked tests
2021-01-08 20:55:11 -05:00
Tyler Goodlet
5127effd88
Drop warning level logging assert(s)
2020-12-26 15:45:55 -05:00
Tyler Goodlet
4bf9b27f57
Drop all .statespace refs; it was a silly idea
2020-12-22 19:33:16 -05:00
Tyler Goodlet
0eba5f4708
Port remaining tests to pass func refs
2020-12-22 10:39:47 -05:00
Tyler Goodlet
493f2efb50
Port tests to `Portal.run_from_ns()`
2020-12-22 10:39:47 -05:00
Tyler Goodlet
a668f714d5
Allow passing function refs to `Portal.run()`
...
This resolves and completes #69 allowing all RPC invocation APIs to pass
function references directly instead of explicit `str` names for the
target namespace and function (this is still done implicitly
underneath). This brings us closer to `trio`'s task running API as well
as acknowledges that any inter-host RPC system (and API) will likely
need to be implemented on top of local RPC primitives anyway. Even if
this ends up **not** being true we can always go to "function stubs" as
part of our IAC protocol or, add a new method to do explicit namespace
calls: `.run_from_module()` or whatever everyone votes on.
Resolves #69
Further, this commit drops `Actor.statespace` from the entire system
since a user can easily get this same functionality using module
level variables. Fix docs to match all these changes (luckily mostly
already done due to example scripts referencing).
2020-12-21 09:09:55 -05:00
Tyler Goodlet
dc475b54ab
More obnoxious CI timeout handling
2020-12-18 19:26:29 -05:00
Tyler Goodlet
a95488ad2f
Handle pexpect's internal timeout
2020-12-18 17:57:44 -05:00
Tyler Goodlet
47f68a0532
Skip debugger tests on non-trio backends
2020-12-17 16:37:05 -05:00
Tyler Goodlet
797bcc1df2
Handle early timeouts on last debugger test
2020-12-17 13:35:45 -05:00
Tyler Goodlet
201771a521
'Fix mypy, change interal type name to `ReceiveStream`, settle on `.shield()`'
2020-12-17 12:01:49 -05:00
Tyler Goodlet
15ead6b561
Add a way to shield a stream's underlying channel
...
Add a ``tractor._portal.StreamReceiveChannel.shield_channel()`` context
manager which allows for avoiding the closing of an IPC stream's
underlying channel for the purposes of task re-spawning. Sometimes you
might want to cancel a task consuming a stream but not tear down the IPC
between actors (the default). A common use can might be where the task's
"setup" work might need to be redone but you want to keep the
established portal / channel in tact despite the task restart.
Includes a test.
2020-12-16 21:42:28 -05:00
Tyler Goodlet
0118589875
Add race case handling for mp backend
2020-12-12 13:30:14 -05:00
Tyler Goodlet
a8406c8626
Toss in another tests with daemon subactors
2020-10-15 23:16:56 -04:00
Tyler Goodlet
61a8df358c
Comments tweak
2020-10-14 09:06:40 -04:00
Tyler Goodlet
1b6ee2ecf6
Skip sync sleep test on windows
2020-10-13 15:26:46 -04:00
Tyler Goodlet
15edcc622d
Skip it on windows too
2020-10-13 15:13:46 -04:00
Tyler Goodlet
fd59f4ad16
On windows .spawn dne?
2020-10-13 14:56:26 -04:00
Tyler Goodlet
a934eb063c
Factor `repodir()` helper into conftest.py
2020-10-13 14:49:31 -04:00
Tyler Goodlet
a49deb46f1
Revert "Make tests a package (for relative imports)"
...
This reverts commit 1710b642a5
.
2020-10-13 14:42:16 -04:00
Tyler Goodlet
666966097a
Revert "Change to relative conftest.py imports"
...
This reverts commit 2b53c74b1c
.
2020-10-13 14:42:02 -04:00
Tyler Goodlet
ba52de79e1
Skip quad ex on local mp tests as well
2020-10-13 14:20:19 -04:00
Tyler Goodlet
24ef919334
Skip sync sleep test on mp backend
2020-10-13 14:16:20 -04:00
Tyler Goodlet
1710b642a5
Make tests a package (for relative imports)
2020-10-13 10:50:21 -04:00
Tyler Goodlet
a88a6ba7a3
Add pattern matching to test
2020-10-13 00:36:34 -04:00
Tyler Goodlet
0e344eead8
Add a "cancel arrives during a sync sleep in child" test
...
This appears to demonstrate the same bug found in #156 . It looks like
cancelling a subactor with a child, while that child is running sync code,
can result in the child never getting cancelled due to some strange
condition where the internal nurseries aren't being torn down as
expected when a `trio.Cancelled` is raised.
2020-10-12 23:25:22 -04:00
Tyler Goodlet
acb4cb0b2b
Add test showing issue with child in tty lock when cancelled
2020-10-07 06:08:31 -04:00
Tyler Goodlet
abf8bb2813
Add a deep nested error propagation test
2020-10-06 09:21:53 -04:00
Tyler Goodlet
2b53c74b1c
Change to relative conftest.py imports
2020-10-05 11:58:58 -04:00
Tyler Goodlet
371025947a
Add a multi-subactor test where the root errors
2020-10-05 11:58:58 -04:00
Tyler Goodlet
31c1a32d58
Add re-entrant root breakpoint test; demonstrates a bug..
2020-10-05 11:58:58 -04:00
Tyler Goodlet
e387e8b322
Add a multi-subactor test with nesting
2020-10-05 11:58:58 -04:00
Tyler Goodlet
73a32f7d9c
Add initial subactor debug tests
2020-10-05 11:58:58 -04:00
Tyler Goodlet
0a2a94fee0
Add initial root actor debugger tests
2020-10-05 11:58:58 -04:00
Tyler Goodlet
e7ee0fec34
Pass a copy of the expected exposed modules
2020-09-24 10:12:10 -04:00
Guillermo Rodriguez
5e3ce765dd
Drop mac support, will continue the experiment on another branch
2020-09-03 10:41:09 -03:00
Guillermo Rodriguez
ad68ff665f
Missing a platform.system() check
2020-09-03 09:57:04 -03:00
Guillermo Rodriguez
c993e36e95
Simplified CI detection
2020-09-03 09:44:24 -03:00
Guillermo Rodriguez
03e5852acf
Added some missing CI integration pieces
2020-09-02 13:19:42 -03:00
Tyler Goodlet
451170bb63
Pass explicit kwargs to new discovery test funcs
2020-08-13 13:26:08 -04:00
Tyler Goodlet
0c8dcd0ec5
Use allocated arbiter port in local reg test
2020-08-13 11:54:37 -04:00
Tyler Goodlet
1ae0efb033
Make rpc_module_paths a list
2020-08-13 11:53:45 -04:00
Tyler Goodlet
acd5b80f4c
Add close channel test with remote arbiter
2020-08-08 15:17:04 -04:00
Tyler Goodlet
c821690834
Actor cancellation is now more latent; loosen timeing
2020-08-08 15:16:10 -04:00
Tyler Goodlet
7f74182a8a
Never allow more then info logging in daemon; causes blocking
2020-08-08 15:15:43 -04:00
Tyler Goodlet
3a868fec30
Cancel root nursery to trigger failure
...
The real issue is if the root nursery gets cancelled prior to
de-registration with the arbiter. This doesn't seem easy to
reproduce by side effect of a KBI however that is how it was
discovered in practise.
2020-08-07 11:34:17 -04:00
Tyler Goodlet
d2d8860dad
Add test for dereg failure on manual stream close
...
There was code from the last de-registration fix PR that I had commented
(to do with shielding arbiter dereg steps in `Actor._async_main()`) because
the block didn't seem to make a difference under infinite streaming
tests. Turns out it **for sure** is needed under certain conditions (likely
if the actor's root nursery is cancelled prior to actor nursery exit).
This was an attempt to simulate the failure mode if you manually close the
stream **before** cancelling the containing **actor**.
More tests to come I guess.
2020-08-07 09:16:01 -04:00
Tyler Goodlet
a5279f80a7
Actually reproduce the de-registration problem
...
This truly reproduces #141 . It turns out the problem only occurs when
we're cancelled in the middle of consuming "infinite streams".
Good news is this tests a lot of edge cases :)
2020-08-03 18:28:09 -04:00
Tyler Goodlet
699bfd1857
Run unreg on cancel tests with remote arbiter as well
2020-08-03 15:41:41 -04:00
Tyler Goodlet
2ccaa94c60
Move daemon fixture up to conftest
2020-08-03 15:39:54 -04:00
Tyler Goodlet
0d9483376d
Test cancel with SIGINT on non-windows as well
2020-08-03 13:01:56 -04:00
Tyler Goodlet
cd2d8c217a
Test that subactors deregister on cancel
2020-08-03 12:53:03 -04:00
Tyler Goodlet
da56d0f043
Add slight delays to SIGINT tests on mp
2020-07-29 13:27:15 -04:00
Tyler Goodlet
8f17c89cf9
Skip **every** quad test for mp on ci
2020-07-29 10:26:19 -04:00
Tyler Goodlet
5715fd4599
Skip streaming tests
2020-07-27 12:20:46 -04:00
Tyler Goodlet
e8a38e4d15
Fix cancelled type handling
2020-07-27 11:15:05 -04:00
Tyler Goodlet
3c7ec72f8e
Fix SIGINT test names
2020-07-26 23:37:44 -04:00
Tyler Goodlet
5a27065a10
Finally tame the super flaky tests
...
- ease up on first stream test run deadline
- skip streaming tests in CI for mp backend, period
- give up on > 1 depth nested spawning with mp
- completely give up on slow spawning on windows
2020-07-26 22:53:40 -04:00
Tyler Goodlet
891edbab5f
Run the trio spawner in nested tests
2020-07-25 18:19:17 -04:00
Tyler Goodlet
dddbeb0e71
Run Windows on trio and mp backends
...
The new pure trio spawning backend uses `subprocess` internally which is
also supported on windows so let's run it in CI.
2020-07-25 13:41:48 -04:00