diff options
Diffstat (limited to 'third_party/fuzztest/docs.rst')
-rw-r--r-- | third_party/fuzztest/docs.rst | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/third_party/fuzztest/docs.rst b/third_party/fuzztest/docs.rst new file mode 100644 index 000000000..44e3892ad --- /dev/null +++ b/third_party/fuzztest/docs.rst @@ -0,0 +1,105 @@ +.. _module-pw_third_party_fuzztest: + +======== +FuzzTest +======== +The ``$dir_pw_third_party/fuzztest/`` module provides build files to allow +optionally including upstream FuzzTest. + +.. _module-pw_third_party_fuzztest-using_upstream: + +----------------------- +Using upstream FuzzTest +----------------------- +If you want to use FuzzTest, you must do the following: + +Submodule +========= +Add FuzzTest to your workspace with the following command. + +.. code-block:: sh + + git submodule add https://github.com/google/fuzztest.git \ + third_party/fuzztest + +.. tab-set:: + + .. tab-item:: GN + + 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 + :ref:`module-pw_third_party_abseil_cpp` source. + + * Set ``dir_pw_third_party_googletest`` to the location of the + :ref:`module-pw_third_party_googletest` source. + + * Set ``dir_pw_third_party_re2`` to the location of the + :ref:`module-pw_third_party_re2` source. + + This can be set in your ``args.gn`` or ``.gn`` file. For example: + + .. code-block:: + + # 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" + + .. tab-item:: CMake + + 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 + :ref:`module-pw_third_party_googletest` source. + + * Set ``pw_unit_test_GOOGLETEST_BACKEND`` to ``pw_third_party.fuzztest``. + + .. tab-item:: Bazel + + 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: + + .. code-block:: sh + + bazel test //... \ + --@pigweed//targets:pw_fuzzer_fuzztest_backend=@com_google_fuzztest//fuzztest + +.. _target config: :ref:`_docs-build_system-bazel_configuration` +.. _label flags: :ref:`_docs-build_system-bazel_flags` + +Updating +======== +The GN build files are generated from the third-party Bazel build files using +$dir_pw_build/py/pw_build/generate_3p_gn.py. + +The script uses data taken from ``$dir_pw_third_party/fuzztest/repo.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 can be specified using +the ``-w`` option, e.g. + +.. code-block:: sh + + python pw_build/py/pw_build/generate_3p_gn.py \ + -w third_party/fuzztest/src + +.. DO NOT EDIT BELOW THIS LINE. Generated section. + +Version +======= +The update script was last run for revision `3c77f971`_. + +.. _3c77f971: https://github.com/google/fuzztes/tree/3c77f97183a1270796d25db1a8956706a25af238 |