]> granicus.if.org Git - llvm/commitdiff
[libFuzzer] a bit more docs
authorKostya Serebryany <kcc@google.com>
Fri, 28 Oct 2016 16:55:29 +0000 (16:55 +0000)
committerKostya Serebryany <kcc@google.com>
Fri, 28 Oct 2016 16:55:29 +0000 (16:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285415 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LibFuzzer.rst

index a467e010d3dbeadf425c9b80b343aead82b2ea8c..ddabee476bc41acfadf04659ca99fe4aae70a36e 100644 (file)
@@ -80,7 +80,9 @@ Some important things to remember about fuzz targets:
 * The fuzzing engine will execute the fuzz target many times with different inputs in the same process.
 * It must tolerate any kind of input (empty, huge, malformed, etc).
 * It must not `exit()` on any input.
-* It may use multiple threads but ideally all threads should be joined at the end of the function.
+* It may use threads but ideally all threads should be joined at the end of the function.
+* It must be as deterministic as possible. Non-determinism (e.g. random decisions not based on the input byte) will make fuzzing inefficient.
+* It must be fast. Try avoiding cubic or greater complexity.
 * Ideally, it should not modify any global state (although that's not strict).