diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0476aed..e9eb01f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,3 +63,18 @@ jobs: rustup component add clippy - name: "Check linting" 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 diff --git a/Makefile b/Makefile index f8fc966..0054e16 100644 --- a/Makefile +++ b/Makefile @@ -68,6 +68,13 @@ afl: trap - EXIT;\ 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: set +e; \ for f in $$(find tests/afl/out -path '*/${AFL_TARGET_CRASH}/id*'); do \