From 36abe079b79f2bee69d874d127c8c1e068e8d49c Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Sat, 30 May 2026 20:05:37 +0100 Subject: [PATCH] =?UTF-8?q?fix(cflite):=20correct=20fuzz=20binary=20path?= =?UTF-8?q?=20=E2=80=94=20fuzz/=20is=20workspace-excluded=20(refs=20#143)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `Cargo.toml:154-157` excludes `fuzz` from the workspace, so cargo-fuzz writes binaries to the fuzz crate's own `fuzz/target//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/`). --- .clusterfuzzlite/build.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.clusterfuzzlite/build.sh b/.clusterfuzzlite/build.sh index be3caaa1..5b801c6d 100755 --- a/.clusterfuzzlite/build.sh +++ b/.clusterfuzzlite/build.sh @@ -2,6 +2,12 @@ # SPDX-License-Identifier: MPL-2.0 cd "$SRC"/echidna cargo +nightly fuzz build +# `fuzz` is excluded from the workspace (`Cargo.toml:154-157`), so +# cargo-fuzz writes artefacts into the fuzz crate's own target dir +# (`fuzz/target//release/`) rather than the workspace +# `./target/`. cp from the correct path or every iteration of the +# loop fails with `cp: cannot stat …/target/x86_64-…/release/` +# and bash -eu exits on the first miss (echidna#143). for target in $(cargo +nightly fuzz list); do - cp ./target/x86_64-unknown-linux-gnu/release/$target $OUT/ + cp ./fuzz/target/x86_64-unknown-linux-gnu/release/$target $OUT/ done