Skip to content

fix(cflite): correct fuzz binary path — fuzz/ is workspace-excluded (refs #143)#147

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/clusterfuzzlite-fuzz-target-path-143
May 30, 2026
Merged

fix(cflite): correct fuzz binary path — fuzz/ is workspace-excluded (refs #143)#147
hyperpolymath merged 1 commit into
mainfrom
fix/clusterfuzzlite-fuzz-target-path-143

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

.clusterfuzzlite/build.sh was copying fuzz binaries from
./target/x86_64-unknown-linux-gnu/release/, but fuzz is excluded
from the workspace (Cargo.toml:154-157), so cargo-fuzz writes to
./fuzz/target/x86_64-unknown-linux-gnu/release/ instead. The cp
silently failed on the first iteration (alphabetically:
fuzz_axiom_tracker) and bash -eu exited the script.

This is why cflite_pr.yml has never had a green run on this repo
(gh run list --workflow cflite_pr.yml --status success returns
empty).

Closes #143.

What changed

  • .clusterfuzzlite/build.sh:8cp ./target/…/release/$targetcp ./fuzz/target/…/release/$target
  • Added a 5-line comment explaining the workspace-exclusion that
    forces this path so a future contributor doesn't "fix" it back.

Test plan

  • cflite_pr.yml on this PR completes the build step and either
    (a) goes green within the 5-minute fuzz budget, or (b) reaches
    the actual fuzz runtime and reports a real finding.
  • No other workflow regresses (the cp change is build-script-only;
    no behavioural change to the fuzz harness, no change to fuzz
    target source or Cargo manifest).

🤖 Generated with Claude Code

…refs #143)

`Cargo.toml:154-157` excludes `fuzz` from the workspace, so cargo-fuzz
writes binaries to the fuzz crate's own `fuzz/target/<TRIPLE>/release/`
target dir, not the workspace `./target/`. The build.sh's cp source
path was always wrong — `cargo +nightly fuzz build` reported `Finished`
and the for loop tried `cp ./target/x86_64-unknown-linux-gnu/release/
fuzz_axiom_tracker`, which never existed, and bash -eu exited.

ClusterFuzzLite has never had a green run on this repo
(`gh run list --workflow cflite_pr.yml --status success` is empty);
this is the actual reason.

Verification: 1-line cp source-path fix; no behavioural change to the
fuzz harness itself. Each `cargo +nightly fuzz list` target maps 1:1
to a `[[bin]]` in `fuzz/Cargo.toml` (fuzz_input, fuzz_proof_state,
fuzz_trust_pipeline, fuzz_axiom_tracker — all four sources present in
`fuzz/fuzz_targets/`).
@hyperpolymath hyperpolymath enabled auto-merge (squash) May 30, 2026 19:05
@hyperpolymath hyperpolymath merged commit 12108ac into main May 30, 2026
28 of 36 checks passed
@hyperpolymath hyperpolymath deleted the fix/clusterfuzzlite-fuzz-target-path-143 branch May 30, 2026 19:27
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.

ci(clusterfuzzlite): triage 'PR (address)' fuzzing job failures

1 participant