-
Notifications
You must be signed in to change notification settings - Fork 46
Modify: Workflows & CMake for Toolchains, Add WASM, CFL & LibFuzzer #589
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR integrates a fuzzing/ClusterFuzzLite workflow and related seed corpora into iccDEV, while updating parts of the CMake build to better support Emscripten/WASM constraints and static-only target consumption.
Changes:
- Add libFuzzer harnesses, dictionaries/options, and seed corpus setup/testing scripts under
Testing/Fuzzing/. - Add ClusterFuzzLite configuration (
.clusterfuzzlite/*) and a GitHub Actions fuzzer smoke-test workflow. - Update CMake to generate version headers into the build directory and to improve portability for static-only builds / Emscripten.
Reviewed changes
Copilot reviewed 71 out of 159 changed files in this pull request and generated 19 comments.
Show a summary per file
| File | Description |
|---|---|
| Testing/mcs/Flexo-CMYKOGP/OMYK-SelectMID.icc | Adds ICC profile asset for testing/corpus. |
| Testing/mcs/Flexo-CMYKOGP/CMYKOGP-MVIS-Smooth.icc | Adds ICC profile asset for testing/corpus. |
| Testing/mcs/Flexo-CMYKOGP/CMYK-SelectMID.icc | Adds ICC profile asset for testing/corpus. |
| Testing/mcs/Flexo-CMYKOGP/CMPK-SelectMID.icc | Adds ICC profile asset for testing/corpus. |
| Testing/mcs/Flexo-CMYKOGP/CGYK-SelectMID.icc | Adds ICC profile asset for testing/corpus. |
| Testing/mcs/Flexo-CMYKOGP/7ChanSelect-MID.icc | Adds ICC profile asset for testing/corpus. |
| Testing/mcs/Flexo-CMYKOGP/4ChanSelect-MID.icc | Adds ICC profile asset for testing/corpus. |
| Testing/Fuzzing/CMakeLists.txt | Adds CMake targets/flags to build fuzzers when ENABLE_FUZZING=ON and using Clang. |
| Testing/Fuzzing/test-seed-corpus.sh | Adds a script to validate fuzzer binaries/dicts/corpora presence. |
| Testing/Fuzzing/seed-corpus-setup.sh | Adds a script to populate per-fuzzer seed corpora from an external fuzz directory. |
| Testing/Fuzzing/icc_*_fuzzer.cpp | Adds multiple libFuzzer harnesses for key tools/codepaths (profile parsing, XML, CMM apply, etc.). |
| Testing/Fuzzing/icc_*.dict | Adds/updates dictionaries used by fuzzers. |
| Testing/Fuzzing/icc_*.options | Adds per-fuzzer runtime options files. |
| Testing/Fuzzing/_seed_corpus/ | Adds seed corpus inputs for fuzzers. |
| Testing/Fuzzing/build-fuzzers.sh | Adds a helper script to build selected fuzzers from existing build outputs. |
| Testing/CMakeLists.txt | Adds a Testing CMake entry that conditionally includes fuzzing subdir when enabled. |
| Build/Cmake/Tools/IccPngDump/CMakeLists.txt | Avoids adding system include dirs under Emscripten. |
| Build/Cmake/IccXML/CMakeLists.txt | Generates version header in build dir and adds static-only alias target for consistent linking. |
| Build/Cmake/IccProfLib/CMakeLists.txt | Generates version header in build dir and adds static-only alias target for consistent linking. |
| .github/workflows/ci-fuzzer-smoke-test.yml | Adds a CI workflow to build and smoke-test fuzzers in a matrix. |
| .clusterfuzzlite/project.yaml | Adds CFL project definition. |
| .clusterfuzzlite/fuzzer.options | Adds CFL global fuzzer/ASan/UBSan/MSan options. |
| .clusterfuzzlite/build.sh | Adds CFL build script for a smoke-test style build. |
| .clusterfuzzlite/build-minimal.sh | Adds a minimal CFL build script for local/CFL validation. |
| .clusterfuzzlite/build-production.sh | Adds a production CFL build script intended to build all fuzzers. |
| .clusterfuzzlite/Dockerfile | Adds CFL builder image definition. |
| .clusterfuzzlite/corpus/* | Adds CFL seed corpus inputs. |
| .clusterfuzzlite/corpus-xml/* | Adds CFL XML seed corpus inputs. |
0f5214a to
972a65f
Compare
Cross Check2026-02-08 18:04:30 UTC Workflow Summary |
Updated ci-latest-release2026-02-11 01:38:56 UTC Updated the Windows Zip Bundle into single Testing/ Directory with all .exe, dll, pdb etc.. to be more developer friendly.
Job https://github.com/InternationalColorConsortium/iccDEV/actions/runs/21905632491 Let me know if any changes. |
Added a step to stage bundle contents into the Testing directory, including copying files and generating helper scripts.
Updated paths for copying dynamic libraries and executables in CI workflow. Adjusted comments and improved script for generating path helpers.
Pull Request Checklist
(#203)