[libc][docs] Update the fuzzing doc to better reflect the current state.

Reviewed By: lntue

Differential Revision: https://reviews.llvm.org/D123923
This commit is contained in:
Siva Chandra Reddy 2022-04-18 07:29:17 +00:00
parent 7d644e1215
commit e6d56802f8
1 changed files with 15 additions and 12 deletions

View File

@ -1,15 +1,18 @@
Fuzzing for LLVM-libc
---------------------
Fuzzing for LLVM-libc functions
===============================
Fuzzing tests are used to ensure quality and security of LLVM-libc
implementations.
Fuzz tests are used to ensure quality and security of LLVM-libc implementations.
All fuzz tests live under the directory named ``fuzzing``. Within this
directory, the fuzz test for a libc function lives in the same nested directory
as its implementation in the toplevel ``src`` directory. The build target
``libc-fuzzer`` builds all of the enabled fuzz tests (but does not run them).
Each fuzzing test lives under the fuzzing directory in a subdirectory
corresponding with the src layout.
Types of fuzz tests
===================
Currently we use system libc for functions that have yet to be implemented,
however as they are implemented the fuzzers will be changed to use our
implementation to increase coverage for testing.
Fuzzers will be run on `oss-fuzz <https://github.com/google/oss-fuzz>`_ and the
check-libc target will ensure that they build correctly.
As of this writing, there are two different kinds of fuzz tests. One kind are
the traditional fuzz tests which test one function at a time and only that
particular function. The other kind of tests are what we call as the
differential fuzz tests. These tests compare the behavior of LLVM libc
implementations with the behavior of the corresponding functions from the system
libc.