Parent: #209
Context
The existing CI has broad deterministic unit/contract/integration/sanitizer coverage, but the pre-v1 audit found no dedicated fuzz/property or long-running soak campaign.
A stable infrastructure library should have evidence for malformed-input resilience and repeated lifecycle/ownership/reconnect behavior beyond short deterministic fixtures.
Fuzz/property candidates
Prioritize bounded parsers/state machines with externally influenced input:
- VSPW-TP header/frame decode and validation;
- fragmentation/reassembly including overlap/duplicate/conflict cases;
- VSPD protocol codec/record validation;
- CUSE record codec where useful;
- configuration validation/state-machine invariants.
The fuzz targets must remain bounded and suitable for sanitizers. Corpus/regression inputs from discovered failures should be committed where appropriate.
Soak/stress candidates
Add a repeatable long-running campaign for representative virtual paths:
- repeated simulator open/start/traffic/reset/close/reopen;
- sustained full-duplex copied traffic;
- zero-copy acquire/submit/reclaim/release cycling and pool exhaustion/recovery;
- UDP peer restart/reconnect/session rollover under sustained traffic;
- DEVICE/vspwd daemon/client restart cycles on Linux;
- bounded queue pressure without leaks or ownership corruption.
This need not run at maximum duration on every PR. Use a short CI smoke plus a longer scheduled/manual mode if appropriate.
Acceptance
- sanitizer-enabled fuzz/property targets exist for the selected protocol/parser boundaries;
- a committed regression corpus covers any failures discovered;
- short deterministic stress smoke runs in ordinary CI;
- longer soak mode is reproducible and documents duration/seed/configuration;
- repeated runs show no leaks, sanitizer failures, stale ownership, deadlocks or unbounded resource growth;
- results are software robustness evidence, not physical SpaceWire qualification.
Parent: #209
Context
The existing CI has broad deterministic unit/contract/integration/sanitizer coverage, but the pre-v1 audit found no dedicated fuzz/property or long-running soak campaign.
A stable infrastructure library should have evidence for malformed-input resilience and repeated lifecycle/ownership/reconnect behavior beyond short deterministic fixtures.
Fuzz/property candidates
Prioritize bounded parsers/state machines with externally influenced input:
The fuzz targets must remain bounded and suitable for sanitizers. Corpus/regression inputs from discovered failures should be committed where appropriate.
Soak/stress candidates
Add a repeatable long-running campaign for representative virtual paths:
This need not run at maximum duration on every PR. Use a short CI smoke plus a longer scheduled/manual mode if appropriate.
Acceptance