| (fuzzing)= |
| |
| # Fuzzing for LLVM-libc functions |
| |
| 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). |
| |
| # Types of fuzz tests |
| |
| 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. |
| |