Files
CMake/Tests/README.rst
T
Leslie P. Polzer 8535a7963c Tests/Fuzzing: Add CMake_BUILD_FUZZING option and build infrastructure
Add infrastructure for building fuzz testing targets with libFuzzer or
other fuzzing engines (e.g., OSS-Fuzz's LIB_FUZZING_ENGINE).

Features:
- CMake_BUILD_FUZZING option in root CMakeLists.txt
- Fuzzing/CMakeLists.txt with add_fuzzer() macro
- Support for libFuzzer and external fuzzing engines
- Documentation in Tests/Fuzzing/README.rst

The infrastructure is opt-in and requires a compatible fuzzing engine.
If CMake_BUILD_FUZZING is enabled but no engine is found, configuration
fails with a clear error message.

See Tests/Fuzzing/README.rst for build instructions.
2026-01-20 14:06:25 -05:00

43 lines
1.3 KiB
ReStructuredText

CMake Tests Directory
*********************
This directory contains the CMake test suite.
See also the `CMake Testing Guide`_ and the `CMake Source Code Guide`_.
.. _`CMake Testing Guide`: ../Help/dev/testing.rst
.. _`CMake Source Code Guide`: ../Help/dev/source.rst
Many tests exist as immediate subdirectories, but some tests
are organized as follows.
* ``CMakeLib/``:
Source code, used for tests, that links to the ``CMakeLib`` library
defined over in ``Source/``.
* ``CMakeOnly/``:
Deprecated. Tests that run CMake to generate a project but not build it.
Superseded by ``Tests/RunCMake/``.
* ``Find*/``:
Tests for specific find modules that can only be run on machines with
the corresponding packages installed. They are enabled in
``CMakeLists.txt`` by undocumented options used on CI builds.
* ``Module/``:
Tests for specific CMake modules.
* ``RunCMake/``:
Tests that run CMake and/or other tools while precisely checking
their return code and stdout/stderr content. Useful for testing
error cases and diagnostic output.
See `RunCMake/README.rst`_.
* ``Fuzzing/``:
Fuzz testing targets using libFuzzer, integrated with OSS-Fuzz.
See `Fuzzing/README.rst`_.
.. _`RunCMake/README.rst`: RunCMake/README.rst
.. _`Fuzzing/README.rst`: Fuzzing/README.rst