Tyler Goodlet
8896ba2bf8
Use `assert_before` more extensively
2022-08-02 12:17:28 -04:00
Tyler Goodlet
87b2ccb86a
Try less times for EOF
2022-08-02 12:17:28 -04:00
Tyler Goodlet
937ed99e39
Factor sigint overriding into lock methods
2022-08-02 12:17:28 -04:00
Tyler Goodlet
91f034a136
Move all module vars into a `Lock` type
2022-08-02 12:17:28 -04:00
Tyler Goodlet
08cf03cd9e
Handle missing prompt render case?
2022-08-02 12:17:28 -04:00
Tyler Goodlet
5e23b3ca0d
Drop pytest full-tracing in CI again
2022-08-02 12:17:28 -04:00
Tyler Goodlet
6f01c78122
Disable `pygments` highlighting on ctlc tests
2022-08-02 12:17:28 -04:00
Tyler Goodlet
457499bc2e
Avoid infinite wait for EOF
2022-08-02 12:17:28 -04:00
Tyler Goodlet
a4bac135d9
Use `pytest-timeout` plug to try and prevent CI hang
2022-08-02 12:17:28 -04:00
Tyler Goodlet
20c660faa7
Add timeout on spawn error msg check
2022-08-02 12:17:28 -04:00
Tyler Goodlet
1d4d55f5cd
Increase verbosity in ci tests for now
2022-08-02 12:17:28 -04:00
Tyler Goodlet
c0cd99e374
Timeout on arbiter ping, avoid TCP SYN hangs in CI?
2022-08-02 12:17:28 -04:00
Tyler Goodlet
a4538a3d84
Drop ctlc tests on Py3.9...
...
After many tries I just don't think it's worth it to make the tests work
since the repl UX in `pdbpp` is so unreliable in the latest release and
honestly we're trying to go 3.10+ ASAP.
Further,
- entirely drop the pattern matching inside the `do_ctlc()` for now.
- add a `subactor_error` parametrization that catches a case that
previously caused a hang (when you use 'next' immediately after the
first crash/debug lock (the fix was pushed just before this commit).
2022-08-02 12:17:28 -04:00
Tyler Goodlet
b01daa5319
Factor lock-state release logic into helper
...
The common logic to both remove our custom SIGINT handler as well
as signal the actor global event that pdb is complete. Call this
whenever we exit a post mortem call and thus any time some rpc task
get's debugged inside `._actor._invoke()`.
Further, we have to manually print the REPL prompt on 3.9 for some wack
reason, so stick a version guard in the sigint handler for that..
2022-08-02 12:17:28 -04:00
Tyler Goodlet
bd362a05f0
Run release hook around `next` repl commands as well
2022-08-02 12:17:28 -04:00
Tyler Goodlet
cb0c47c42a
Try disabling prompt expect in ctrlc cases
2022-08-02 12:17:28 -04:00
Tyler Goodlet
808d7ae2c6
Add timeout guard around caller side context open
2022-08-02 12:17:28 -04:00
Tyler Goodlet
b21f2e16ad
Always consider the debugger when exiting contexts
...
When in an uncertain teardown state and in debug mode a context can be
popped from actor runtime before a child finished debugging (the case
when the parent is tearing down but the child hasn't closed/completed
its tty lock IPC exit phase) and the child sends the "stop" message to
unlock the debugger but it's ignored bc the parent has already dropped
the ctx. Instead we call `._debug.maybe_wait_for_deugger()` before these
context removals to avoid the root getting stuck thinking the lock was
never released.
Further, add special `Actor._cancel_task()` handling code inside
`_invoke()` which continues to execute the method despite the IPC
channel to the caller being broken and thus avoiding potential hangs due
to a target (child) actor task remaining alive.
2022-08-02 12:17:28 -04:00
Tyler Goodlet
4779badd96
Add before assert helper and print console bytes on fail
2022-08-02 12:17:28 -04:00
Tyler Goodlet
6bdcbdb96f
Do child decode on `do_ctlc` exit?
2022-08-02 12:17:28 -04:00
Tyler Goodlet
adbebd3f06
Add ctl-c to remaining tests, only expect prompt in non-CI
2022-08-02 12:17:28 -04:00
Tyler Goodlet
a2e90194bc
Add ctl-c case to `subactor_breakpoint` example test
2022-08-02 12:17:28 -04:00
Tyler Goodlet
ba7b355d9c
Add note about default behaviour of `fancycompleter`
2022-08-02 12:17:28 -04:00
Tyler Goodlet
617d57dc35
Disable ctl-c prompt checks again
2022-08-02 12:17:28 -04:00
Tyler Goodlet
dadd5e6148
Add back prompt expect via flag
2022-08-02 12:17:28 -04:00
Tyler Goodlet
a72350118c
Test: drop expect prompt
2022-08-02 12:17:28 -04:00
Tyler Goodlet
ef8dc0204c
Just drop all longlisting for now and leave comments
2022-08-02 12:17:28 -04:00
Tyler Goodlet
a101971027
Go back to original longlist code
2022-08-02 12:17:28 -04:00
Tyler Goodlet
835836123b
Just don't call longlist on 3.10+ for now
2022-08-02 12:17:28 -04:00
Tyler Goodlet
70ad0f6b8e
Add longer delays around ctl-c loop, don't expect longlist
2022-08-02 12:17:28 -04:00
Tyler Goodlet
56b30a9a53
Add sleep around ctl-c iteration loop
2022-08-02 12:17:27 -04:00
Tyler Goodlet
925d5c1ceb
Pin to specific `pdbppp` master commit
2022-08-02 12:17:27 -04:00
Tyler Goodlet
b9eb601265
General typing fixes for `mypy`
2022-08-02 12:17:27 -04:00
Tyler Goodlet
4dcc21234e
Only call `.poll()` if a method on the spawn backend
2022-08-02 12:17:27 -04:00
Tyler Goodlet
64909e676e
Fix loglevel in subactor test; actually pass the level XD
2022-08-02 12:17:27 -04:00
Tyler Goodlet
19fb77f698
Pin to `trio >= 0.20`
2022-08-02 12:17:27 -04:00
Tyler Goodlet
8b9f342eef
Port to new `.lowlevel.open_process()` API
2022-08-02 12:17:27 -04:00
Tyler Goodlet
bd7d507153
Guard against `asyncio` cancelled logged to console
2022-08-02 12:17:16 -04:00
Tyler Goodlet
9bc38cbf04
Add slight delay 2nd ctlc round..
2022-08-02 12:17:06 -04:00
Tyler Goodlet
a90ca4b384
Call longlist normally when on py < 3.10
2022-08-02 12:17:06 -04:00
Tyler Goodlet
d0dcd55f47
Only report disconnected actors if proc is still alive?
2022-08-02 12:17:06 -04:00
Tyler Goodlet
4e08605b0d
Only do `pdbpp` from `git` install on 3.10+
2022-08-02 12:17:06 -04:00
Tyler Goodlet
519f4c300b
I dunno, seems like `breakpoint()` needs this?
2022-08-02 12:17:06 -04:00
Tyler Goodlet
56c19093bb
Add basic module-not-found when opening a ctx eg.
2022-08-02 12:17:06 -04:00
Tyler Goodlet
ff3f5959e9
Always enable debug level logging if mode enabled
2022-08-02 12:16:58 -04:00
Tyler Goodlet
abb00531d3
Add help msg for non `__main__` modules as well
2022-08-02 12:16:58 -04:00
Tyler Goodlet
439d320a25
Add basic ctl-c testing cases to suite
2022-08-02 12:16:58 -04:00
Tyler Goodlet
18c525d2f1
Hack around double long list print issue..
...
See https://github.com/pdbpp/pdbpp/issues/496
2022-08-02 12:16:58 -04:00
Tyler Goodlet
201c026284
Show full KBI trace for help with CI hangs
2022-08-02 12:16:58 -04:00
Tyler Goodlet
2a61aa099b
Move pydantic-click hang example to new dir, skip in test suite
2022-08-02 12:16:58 -04:00