You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: design-docs/balanced-call-stack-events-implementation-plan.status.md
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,12 +38,13 @@
38
38
- Verification: `just dev test` passes end-to-end.
39
39
40
40
### WS4 – Testing & Validation
41
-
-**Status:**_In progress_
42
-
- Added Python integration tests covering generator yield/resume sequences, `g.throw(...)` exception injection, coroutine awaits (`asyncio.run`) and plain exception unwinds to verify balanced call/return pairs and recorded payloads.
43
-
- The new coverage exercises the trace JSON to assert call counts, argument capture (including the synthetic `exception` arg), and recorded return values for unwind paths.
44
-
- TODO: extend coverage to async `send()`/`throw()` scenarios and consider rust-side assertions for the integration print tracer if further confidence is needed.
41
+
-**Status:**_Completed_
42
+
- Added Python integration tests covering generator yield/resume sequences, `g.throw(...)` exception injection, coroutine awaits (`asyncio.run`), and plain exception unwinds to verify balanced call/return pairs and recorded payloads.
43
+
- Added `test_coroutine_send_and_throw_events_capture_resume_and_exception` to exercise coroutine `send()` and `throw()` paths, asserting the additional call edges plus the encoded `exception` argument and final return payloads.
44
+
- Extended `tests/rust/print_tracer.rs` with a focused scenario (`tracer_counts_resume_throw_and_unwind_events`) to prove that `PY_RESUME`, `PY_THROW`, `PY_YIELD`, and `PY_UNWIND` fire the expected number of times for a simple generator/unwind script.
45
+
- Verification: `just dev test` (maturin develop + cargo nextest + pytest) now passes end-to-end.
45
46
46
47
## Next Checkpoints
47
-
1.Extend WS4 coverage to additional async edge cases (e.g., `send()`/`throw()` on coroutines) and consider verifying `print_tracer` output in Rust.
48
+
1.Monitor nightly runs for regressions around generator/coroutine call balancing and expand coverage again if new CPython events appear.
48
49
2. Document any telemetry/logging updates before shipping the feature.
49
-
3. Prepare release notes / changelog once WS4 closes out.
50
+
3. Prepare release notes / changelog entries summarising the balanced call-stack support once release packaging starts.
0 commit comments