ci: add afl fuzz stage
fuzz for 1 min to quickly detect e.g. incorrect asserts
This commit is contained in:
parent
fb663da761
commit
01d8c0015e
2 changed files with 22 additions and 0 deletions
15
.github/workflows/ci.yml
vendored
15
.github/workflows/ci.yml
vendored
|
@ -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
|
||||||
|
|
7
Makefile
7
Makefile
|
@ -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 \
|
||||||
|
|
Loading…
Reference in a new issue