fix(ci): wire fuzz subdirectory into the build graph#713
Merged
Conversation
The Fuzzing workflow configured with -DBUILD_FUZZERS=ON, but the root build
never declared BUILD_FUZZERS nor added the fuzz/ subdirectory, so CMake
ignored the flag ("Manually-specified variables were not used") and the
fuzz/CMakeLists.txt early-return guard was never reached. The
result_error_fuzzer target was therefore absent and
'cmake --build --target result_error_fuzzer' failed with
"ninja: error: unknown target". The fuzz infrastructure entered main in the
v1.0.0 release (#696) without root build wiring.
Declare BUILD_FUZZERS (OFF by default, EXISTS-guarded) and add the fuzz
subdirectory in common-extras.cmake, matching the examples/benchmarks
opt-in pattern. The default build, tests, examples, and benchmarks are
unaffected. Also correct the workflow's stale option spellings
(COMMON_SYSTEM_BUILD_TESTS/EXAMPLES -> COMMON_BUILD_TESTS/EXAMPLES) so the
fuzz configure actually disables tests and examples.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Wire the
fuzz/subdirectory into the build graph so theFuzzingworkflow can build
result_error_fuzzer, and fix two stale CMake optionspellings in the workflow.
Change type: fix(ci) — build wiring + workflow config.
Why
The
Fuzzingscheduled workflow failed on its first (and only) run(2026-06-22) at the Build step with
ninja: error: unknown target 'result_error_fuzzer'.Root cause: the fuzz infrastructure (
fuzz/CMakeLists.txt,fuzzing.yml)landed in the v1.0.0 release (#696) without root build wiring. The root
CMake never declared
BUILD_FUZZERSnor calledadd_subdirectory(fuzz), so-DBUILD_FUZZERS=ONwas an unused variable,fuzz/CMakeLists.txt'sif(NOT BUILD_FUZZERS) return()guard was never reached, and the target wasnever created.
Where
cmake/common-extras.cmakeoption(BUILD_FUZZERS ... OFF)andadd_subdirectory(fuzz)(EXISTS-guarded), matching the examples/benchmarks opt-in pattern.github/workflows/fuzzing.ymlCOMMON_SYSTEM_BUILD_TESTS/EXAMPLES->COMMON_BUILD_TESTS/EXAMPLES(real option names)How (verification)
BUILD_FUZZERSdefaults OFF and isEXISTS-guarded, so
add_subdirectory(fuzz)runs only when explicitlyenabled with a Clang toolchain.
Fuzzingworkflow on this branch(
gh workflow run, shortmax_total_time): Configure no longer warnsabout an unused
BUILD_FUZZERS, Build producesresult_error_fuzzer, andRun executes the fuzzer.
Relates to #639 (v1.0 readiness — restores CI green precondition).