|
Some checks are pending
Fuzz Smoke / libFuzzer smoke (push) Waiting to run
Startup ordering defects were only observable by waiting minutes on a live daemon, and the one that aborted it took a live restart loop to find. Give the startup contracts a deterministic harness that runs in milliseconds. + startup_fuzz_support.h drives the real ServiceManagerFsm and the real DeferralGate with virtual time: legal phase advances, injected failure, shutdown and terminal reset, idle/busy, pressure/calm, starvation deadlines and cancellation + oracles fail closed on shutdown resurrection without reset, failure-to-ready, eligibility disagreeing with fsm.isReady(), admission outside the virtual deadline, and ineligible work touching the admission gate; fuzzed IEEE-754 components must never yield non-finite or out-of-range scores + catch2_startup_replay runs named regressions plus 1024 seeded traces per run and reports the root seed and action offset for replay + fuzz_startup builds the same harness for libFuzzer/AFL, with a seed generator that refuses to overwrite different existing files - the fuzzing lane no longer defaults to TSan: harnesses link -fsanitize=fuzzer,address,undefined and the two runtimes cannot share a process; combining them now fails with an explanation instead of producing a binary that cannot start - documented the lane invocation, target naming and the coverage limits, including that governor call ordering inside the poller is not covered Scope: contract-valid single-owner schedules. Executor interleavings, late callbacks, concurrent FSM instances and filesystem/model faults are not modeled. Signed-off-by: trvon <git@trevon.dev> |
||
|---|---|---|
| .. | ||
| dicts | ||
| .dockerignore | ||
| asan_cluster.py | ||
| Dockerfile | ||
| fuzz.sh | ||
| fuzz_abi_negotiation_plugin.c | ||
| fuzz_abi_test_plugin.c | ||
| fuzz_add_document.cpp | ||
| fuzz_compressed_block.cpp | ||
| fuzz_download_jobs.cpp | ||
| fuzz_fts5_query.cpp | ||
| fuzz_ipc_protocol.cpp | ||
| fuzz_ipc_roundtrip.cpp | ||
| fuzz_p2p_connstr.cpp | ||
| fuzz_p2p_delta.cpp | ||
| fuzz_p2p_delta_stream.cpp | ||
| fuzz_p2p_handshake.cpp | ||
| fuzz_p2p_inbound.cpp | ||
| fuzz_p2p_json.cpp | ||
| fuzz_p2p_protocol.cpp | ||
| fuzz_plugin_abi_mount.cpp | ||
| fuzz_plugin_abi_negotiation.cpp | ||
| fuzz_plugin_trust.cpp | ||
| fuzz_proto_serializer.cpp | ||
| fuzz_request_handler.cpp | ||
| fuzz_startup.cpp | ||
| fuzz_streaming_processor.cpp | ||
| fuzz_text_extractors.cpp | ||
| fuzz_topology_codec.cpp | ||
| fuzz_utf8.cpp | ||
| generate_corpus.sh | ||
| meson.build | ||
| p2p_fuzz_support.h | ||
| p2p_seeds.py | ||
| seedgen.cpp | ||
| startup_fuzz_support.h | ||
| startup_seeds.py | ||