ci: add afl fuzz stage

fuzz for 1 min to quickly detect e.g. incorrect asserts
This commit is contained in:
Noah Hellman 2023-02-13 17:44:50 +01:00
parent fb663da761
commit 01d8c0015e
2 changed files with 22 additions and 0 deletions

View file

@ -63,3 +63,18 @@ jobs:
rustup component add clippy rustup component add clippy
- name: "Check linting" - name: "Check linting"
run: make lint run: make lint
fuzz:
name: Fuzz
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v3
- name: "Setup toolchain"
run: |
rustup update nightly
rustup default nightly
cargo install afl
- name: "Fuzz"
run: |
echo core | sudo tee /proc/sys/kernel/core_pattern
make afl_quick

View file

@ -68,6 +68,13 @@ afl:
trap - EXIT;\ trap - EXIT;\
cat) # keep process alive for trap cat) # keep process alive for trap
afl_quick:
rm -rf tests/afl/out
(cd tests/afl && \
cargo afl build --release --config profile.release.debug-assertions=true && \
AFL_NO_UI=1 AFL_BENCH_UNTIL_CRASH=1 \
cargo afl fuzz -i in -o out -V 60 target/release/${AFL_TARGET})
afl_crash: afl_crash:
set +e; \ set +e; \
for f in $$(find tests/afl/out -path '*/${AFL_TARGET_CRASH}/id*'); do \ for f in $$(find tests/afl/out -path '*/${AFL_TARGET_CRASH}/id*'); do \