Skip to content

feat: add signal handling integration tests (US-110)#101

Merged
tervezo-ai[bot] merged 3 commits intomainfrom
feat/add-signal-handling-integration-tests-for-us-110-ez0j5nzv298zvqutxsoasuf4
Mar 13, 2026
Merged

feat: add signal handling integration tests (US-110)#101
tervezo-ai[bot] merged 3 commits intomainfrom
feat/add-signal-handling-integration-tests-for-us-110-ez0j5nzv298zvqutxsoasuf4

Conversation

@tervezo-ai
Copy link
Copy Markdown
Contributor

@tervezo-ai tervezo-ai bot commented Mar 13, 2026

Summary

Test plan

  • cargo check passes for warpgrid-host and warp-runtime
  • 344 unit tests pass (warpgrid-host)
  • 5 new integration tests pass (integration_signals)
  • 13 warp-runtime tests pass (field rename regression)
  • cargo clippy --no-deps -- -D warnings clean for warpgrid-host

🤖 Generated with Claude Code


View implementation in Tervezo

nadilas and others added 3 commits March 13, 2026 18:53
Replace the naive Vec<SignalType> signal queue in HostState with the
proper SignalsHost implementation from US-109. This enables interest
registration, bounded queueing (capacity 16), and signal filtering
through the WIT boundary.

Update all unit tests and integration tests across warpgrid-host and
warp-runtime to use the new `signals: SignalsHost::new()` field.
Fix pre-existing `wat` workspace dependency issue.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Create a no_std guest component that exercises the signals WIT interface:
- register-terminate/hangup/interrupt: register interest via on-signal
- poll: dequeue signals and return their name as a string

The fixture follows the same pattern as fs-shim-guest, using wit-bindgen
0.42 and targeting wasm32-unknown-unknown.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add 5 integration tests exercising the full WIT boundary for signal
handling through a real Wasmtime engine:

- AC #1: register → deliver → poll round-trip
- AC #2: empty queue returns None
- AC #3: queue bounding (20 delivered, 16 retrievable)
- AC #4: signal filtering (unregistered types ignored)
- Extra: multi-type FIFO ordering

Each test compiles and instantiates the signal-shim-guest Wasm
component, calls exported functions through the component model,
and verifies host-side SignalsHost behavior end-to-end.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tervezo-ai tervezo-ai bot merged commit ed521e9 into main Mar 13, 2026
3 of 10 checks passed
tervezo-ai bot pushed a commit that referenced this pull request Mar 13, 2026
Reviewed and merged 6 PRs, closed 1 as superseded:
- PR #103: fix schedule script URL prefix and non-JSON responses
- PR #1: wasmtime 41.0.3 → 41.0.4 security bump
- PR #99: Postgres database proxy integration tests (US-114)
- PR #101: signal handling integration tests (US-110)
- PR #104: threading model declaration host function (US-118)
- PR #102: MySQL and Redis Wasm integration tests (US-117)
- PR #100: closed as superseded by #103

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
tervezo-ai bot pushed a commit that referenced this pull request Mar 13, 2026
PRs #101 (signals) and #104 (threading) introduced a merge conflict that
GitHub's auto-merge didn't catch: HostState's `signal_queue: Vec<_>` field
was renamed to `signals: SignalsHost` by #101, but #104's tests still used
the old field name, preventing compilation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant