FuzzTest#
The $dir_pw_third_party/fuzztest/
module provides build files to allow
optionally including upstream FuzzTest.
Using upstream FuzzTest#
If you want to use FuzzTest, you must do the following:
Submodule#
Add FuzzTest to your workspace with the following command.
git submodule add https://github.com/google/fuzztest.git \
third_party/fuzztest
Set the GN following GN bauild args:
Set
dir_pw_third_party_fuzztest
to the location of the FuzzTest source. If you used the command above, this will be//third_party/fuzztest
.Set
dir_pw_third_party_abseil_cpp
to the location of the Abseil C++ source.Set
dir_pw_third_party_googletest
to the location of the GoogleTest source.Set
dir_pw_third_party_re2
to the location of the RE2 source.
This can be set in your args.gn
or .gn
file. For example:
# Set build arguments here. See `gn help buildargs`.
dir_pw_third_party_abseil_cpp="//third_party/abseil-cpp"
dir_pw_third_party_fuzztest="//third_party/fuzztest"
dir_pw_third_party_googletest="//third_party/googletest"
dir_pw_third_party_re2="//third_party/re2"
Set the following CMake variables:
Set
dir_pw_third_party_fuzztest
to the location of the FuzzTest source.Set
dir_pw_third_party_googletest
to the location of the GoogleTest source.Set
pw_unit_test_BACKEND
topw_third_party.fuzztest
.
Set the following label flags, either in your target config or on the command line:
pw_fuzzer_fuzztest_backend
to@com_google_fuzztest//fuzztest
.
For example:
bazel test //... \
--@pigweed//targets:pw_fuzzer_fuzztest_backend=@com_google_fuzztest//fuzztest
Updating#
The GN build files are generated from the third-party Bazel build files using $dir_pw_build/py/pw_build/bazel_to_gn.py.
The script uses data taken from a bazel_to_gn.json
file for this module and
for each third party module that this module depends on, e.g.
$PW_ROOT/third_party/fuzztest/bazel_to_gn.json
.
The script should be re-run whenever the submodule is updated or the JSON file
is modified. Specify the location of the Bazel repository using gn args
,
then run:
python pw_build/py/pw_build/bazel_to_gn.py fuzztest
Additionally, the fuzztest.bazelrc
file should regenerated. From this
directory, run:
bazel run @com_google_fuzztest//bazel:setup_configs > fuzztest.bazelrc
Version#
The update script was last run for revision b7257a64.