fluxa-core/fuzz/Cargo.toml
KhooLy 2439bb3ba6 test: add golden wire fixtures and a headless-engine dispatch fuzz target
Per the robustness plan's §8: a tests/wire/ directory holds one real
AppAction input per representative action family, each paired with a
checked-in golden DispatchResult captured from an actual dispatch (a
new #[cfg(test)] wire_fixtures_match_golden_dispatch_output test
compares against it, with UPDATE_WIRE_FIXTURES=1 to regenerate when a
change is intentional). Any future camelCase/field drift on the
dispatch/completeEffect wire now fails in this repo instead of surfacing
as a silent Android/desktop regression.

Also add fuzz/fuzz_targets/engine_dispatch.rs, feeding arbitrary bytes
into both headless_engine_dispatch_json and
headless_engine_complete_effect_json against one engine handle — this
is the one path in the crate that runs global engine-mutating logic
without a catch_unwind guard on the desktop call path, so it's the
highest-value fuzz target missing from fuzz/. Exposes the four
headless_engine entry points as `pub` (still unreachable outside the
crate except through the fuzzing-gated `fuzz_targets` re-export module)
following the same pattern already used for parse_manifest and the
content_identity helpers.
2026-07-07 14:28:48 +03:00

44 lines
703 B
TOML

[package]
name = "fluxa_core-fuzz"
version = "0.0.0"
publish = false
edition = "2021"
[package.metadata]
cargo-fuzz = true
[dependencies]
libfuzzer-sys = "0.4"
[dependencies.fluxa_core]
path = ".."
default-features = false
features = ["fuzzing"]
[[bin]]
name = "episode_matching"
path = "fuzz_targets/episode_matching.rs"
test = false
doc = false
bench = false
[[bin]]
name = "percent_decode"
path = "fuzz_targets/percent_decode.rs"
test = false
doc = false
bench = false
[[bin]]
name = "manifest_parse"
path = "fuzz_targets/manifest_parse.rs"
test = false
doc = false
bench = false
[[bin]]
name = "engine_dispatch"
path = "fuzz_targets/engine_dispatch.rs"
test = false
doc = false
bench = false