Update README.md

This commit is contained in:
Kostya Serebryany 2017-05-15 15:22:14 -07:00 committed by GitHub
parent e02192dc42
commit cb496977be
1 changed files with 11 additions and 0 deletions

View File

@ -2,6 +2,9 @@ Example of [OSS-Fuzz ideal integration](../../../docs/ideal_integration.md).
This directory contains an example software project that has all the trais of [ideal](../../../docs/ideal_integration.md) support for fuzzing. This directory contains an example software project that has all the trais of [ideal](../../../docs/ideal_integration.md) support for fuzzing.
## Files in my-api-repo
Imagine that these files reside in your project's repository:
* [my_api.h](my_api.h) and [my_api.cpp](my_api.cpp) implement the API we want to test/fuzz. The function `DoStuff()` inside [my_api.cpp](my_api.cpp) contains a bug. (Find it!) * [my_api.h](my_api.h) and [my_api.cpp](my_api.cpp) implement the API 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()`. Unit tests are not necessary for fuzzing, but are generally a good practice. * [do_stuff_unittest.cpp](do_stuff_unittest.cpp) is a unit test for `DoStuff()`. Unit tests are not necessary for fuzzing, but are generally a good practice.
* [do_stuff_fuzzer.cpp](do_stuff_fuzzer.cpp) is a [fuzz target](http://libfuzzer.info/#fuzz-target) for `DoStuff()`. * [do_stuff_fuzzer.cpp](do_stuff_fuzzer.cpp) is a [fuzz target](http://libfuzzer.info/#fuzz-target) for `DoStuff()`.
@ -13,5 +16,13 @@ This directory contains an example software project that has all the trais of [i
* builds the fuzz target(s) and their corpus archive(s) * 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), thus ensures that the fuzz target is up to date and uses it as a regression test. * `make check` executes [do_stuff_fuzzer.cpp](do_stuff_fuzzer.cpp) on [`do_stuff_test_data/*`](do_stuff_test_data), thus ensures that the fuzz target is up to date and uses it as a regression test.
## Files on OSS-Fuzz repository
* [oss-fuzz/projects/example](..)
* [Dockerfile](../Dockerfile): sets up the build environment
* [build.sh](../build.sh): builds the fuzz target(s). The smaller this file the better, most of the logic should be inside the project's build system).
* [project.yaml](../project.yaml): short project description and contact info.
## Example bug
Example bug report filed automatically: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1562 Example bug report filed automatically: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1562