aboutsummaryrefslogtreecommitdiffhomepage
path: root/projects/example
diff options
context:
space:
mode:
authorGravatar Kostya Serebryany <konstantin.s.serebryany@gmail.com>2017-05-15 15:10:30 -0700
committerGravatar GitHub <noreply@github.com>2017-05-15 15:10:30 -0700
commit4c83f493b0b35054dcab061ed064e8ceef3b06da (patch)
tree0951550db5ccd99e01b3f868ca2193520110f70b /projects/example
parentec3cc2aa38dff476e4a63f03eae04229d67a4356 (diff)
Update README.md
Diffstat (limited to 'projects/example')
-rw-r--r--projects/example/my-api-repo/README.md18
1 files changed, 15 insertions, 3 deletions
diff --git a/projects/example/my-api-repo/README.md b/projects/example/my-api-repo/README.md
index ba81cdd0..81913716 100644
--- a/projects/example/my-api-repo/README.md
+++ b/projects/example/my-api-repo/README.md
@@ -1,5 +1,17 @@
-An example for [OSS-Fuzz ideal integration](../../../docs/ideal_integration.md).
+Example of [OSS-Fuzz ideal integration](../../../docs/ideal_integration.md).
-TODO: add more words.
+This directory contains a example software project that has all the trais of [ideal](../../../docs/ideal_integration.md) support for fuzzing.
-Example bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1562
+* [my_api.h](my_api.h) and [my_api.cpp](my_api.cpp) implement the API that we want to test/fuzz. The function `DoStuff()` inside [my_api.cpp](my_api.cpp) contains a bug. (Find it!)
+* [do_stuff_unittest.cpp](do_stuff_unittest.cpp) is a unit test for `DoStuff()`.
+* [do_stuff_fuzzer.cpp](do_stuff_fuzzer.cpp) is a [fuzz target](http://libfuzzer.info/#fuzz-target) for `DoStuff()`.
+* [standalone_fuzz_taget_runner.cpp](standalone_fuzz_taget_runner.cpp) is a simple standalone runnner for fuzz targets. You may use it to execute a fuzz target on given files w/o having to link in libFuzzer or other fuzzing engine.
+* [do_stuff_test_data](do_stuff_test_data) corpus directory for [do_stuff_fuzzer.cpp](do_stuff_fuzzer.cpp).
+* [Makefile](Makefile) is a build file:
+ * accepts external compiler flags via `$CC`, `$CXX`, `$CFLAGS`, `$CXXFLAGS`
+ * accepts external fuzzing engine via `$LIB_FUZZING_ENGINE`, by default uses [standalone_fuzz_taget_runner.cpp](standalone_fuzz_taget_runner.cpp)
+ * builds the fuzz target(s) and their corpus archive(s)
+ * `make check` executes [do_stuff_fuzzer.cpp](do_stuff_fuzzer.cpp) on [`do_stuff_test_data/*`](do_stuff_test_data)
+
+
+Example bug report filed automatically: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1562