Skip to content

feat: Expand fuzz testing suite and enhance diagnostics#8

Merged
JacobBorden merged 2 commits intodevelopmentfrom
feature/expand-fuzz-testing
May 29, 2025
Merged

feat: Expand fuzz testing suite and enhance diagnostics#8
JacobBorden merged 2 commits intodevelopmentfrom
feature/expand-fuzz-testing

Conversation

@JacobBorden
Copy link
Owner

This commit significantly expands the fuzz testing capabilities of the project.

Key changes include:

  • Added UndefinedBehaviorSanitizer (UBSan) to the fuzzing configuration alongside AddressSanitizer (ASan) for more comprehensive bug detection.
  • Introduced four new fuzz targets:
    • fuzz_bmp_tool_save: Targets the BmpTool::save functionality.
    • fuzz_bitmap_file: Targets Bitmap::File class operations.
    • fuzz_image_operations: Targets various image manipulation functions.
    • fuzz_matrix: Targets Matrix class operations.
  • Updated the existing fuzz_bitmap target to use the new sanitizer configuration.
  • Modified the CMake build system (tests/CMakeLists.txt) to correctly build all five fuzz targets when ENABLE_FUZZING is ON.
  • Enhanced the GitHub Actions fuzzing workflow (.github/workflows/fuzzing.yml):
    • Builds all available fuzz targets.
    • Runs each of the five fuzzers independently.
    • Creates separate corpus directories for each fuzzer.
    • Added -print_pcs=1 libFuzzer option for better call stack information on new coverage.
  • Updated README.md with a new "Fuzz Testing" section, detailing the available targets and how to enable/run them.

These changes aim to improve code robustness by systematically testing more parts of the codebase against a wider range of inputs and conditions.

google-labs-jules bot and others added 2 commits May 29, 2025 16:09
This commit significantly expands the fuzz testing capabilities of the project.

Key changes include:
- Added UndefinedBehaviorSanitizer (UBSan) to the fuzzing configuration alongside AddressSanitizer (ASan) for more comprehensive bug detection.
- Introduced four new fuzz targets:
    - fuzz_bmp_tool_save: Targets the BmpTool::save functionality.
    - fuzz_bitmap_file: Targets Bitmap::File class operations.
    - fuzz_image_operations: Targets various image manipulation functions.
    - fuzz_matrix: Targets Matrix class operations.
- Updated the existing fuzz_bitmap target to use the new sanitizer configuration.
- Modified the CMake build system (tests/CMakeLists.txt) to correctly build all five fuzz targets when ENABLE_FUZZING is ON.
- Enhanced the GitHub Actions fuzzing workflow (.github/workflows/fuzzing.yml):
    - Builds all available fuzz targets.
    - Runs each of the five fuzzers independently.
    - Creates separate corpus directories for each fuzzer.
    - Added -print_pcs=1 libFuzzer option for better call stack information on new coverage.
- Updated README.md with a new "Fuzz Testing" section, detailing the available targets and how to enable/run them.

These changes aim to improve code robustness by systematically testing more parts of the codebase against a wider range of inputs and conditions.
@JacobBorden JacobBorden merged commit 6afb33f into development May 29, 2025
1 of 2 checks passed
@JacobBorden JacobBorden deleted the feature/expand-fuzz-testing branch May 29, 2025 21:25
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.

1 participant