ci: don't run full fuzz corpora

Our corpora are too large to run in full on every pull request, they just take
too long. Instead, we sample some of them and make sure that running our fuzzers
over the sampled inputs still works OK.
This commit is contained in:
Nick Fitzgerald
2019-12-19 16:39:32 -08:00
parent 086ff63e6b
commit 4d83cc347f

View File

@@ -79,15 +79,33 @@ jobs:
- uses: ./.github/actions/install-rust - uses: ./.github/actions/install-rust
with: with:
toolchain: nightly toolchain: nightly
- run: cargo install cargo-fuzz - run: cargo install cargo-fuzz --vers "^0.6"
- run: cargo fetch - run: cargo fetch
working-directory: ./fuzz working-directory: ./fuzz
# NB: the `-runs=0` means that libFuzzer won't generate new inputs, only run - run: cargo fuzz build --release --debug-assertions
# the seeds from the corpus. # Our corpora are too large to run in full on every pull request, they just
- run: cargo fuzz run compile --release --debug-assertions -- -runs=0 # take too long. Instead, we sample some of them and make sure that running
- run: cargo fuzz run instantiate --release --debug-assertions -- -runs=0 # our fuzzers over the sampled inputs still works OK.
- run: cargo fuzz run instantiate_translated --release --debug-assertions -- -runs=0 - run: |
- run: cargo fuzz run api_calls --release --debug-assertions -- -runs=0 find fuzz/corpus/compile -type f \
| shuf \
| head -n 3000 \
| xargs cargo fuzz run compile --release --debug-assertions
- run: |
find fuzz/corpus/instantiate -type f \
| shuf \
| head -n 2000 \
| xargs cargo fuzz run instantiate --release --debug-assertions
- run: |
find fuzz/corpus/instantiate_translated -type f \
| shuf \
| head -n 1000 \
| xargs cargo fuzz run instantiate_translated --release --debug-assertions
- run: |
find fuzz/corpus/api_calls -type f \
| shuf \
| head -n 100 \
| xargs cargo fuzz run api_calls --release --debug-assertions
# Install wasm32-unknown-emscripten target, and ensure `crates/wasi-common` # Install wasm32-unknown-emscripten target, and ensure `crates/wasi-common`
# compiles to Emscripten. # compiles to Emscripten.