Dongjia "toka" Zhang 62d9485f10
Use symlink instead to get the corpus (#3177)
* a

* add real symlink

* tmate

* corpus

* detmate

---------

Co-authored-by: Skynet 2 <name@domain.example>
2025-04-28 18:47:10 +02:00

66 lines
1.6 KiB
Makefile

import "../../../just/libafl-qemu-libpng.just"
FUZZER_NAME := "qemu_coverage"
HARNESS := TARGET_DIR / ("libpng-harness-" + PROFILE)
[unix]
build:
cargo build \
--profile {{ PROFILE }} \
--features {{ ARCH }} \
--target-dir {{ TARGET_DIR }}
[unix]
harness: libpng
#!/bin/bash
source {{ DOTENV }}
$CROSS_CXX \
./harness.cc \
$CROSS_CFLAGS \
"{{TARGET_DIR}}/build-png/.libs/libpng16.a" \
"{{TARGET_DIR}}/build-zlib/libz.a" \
-I"{{TARGET_DIR}}/build-png" \
-I"{{TARGET_DIR}}/build-zlib/zlib/lib" \
-L"{{TARGET_DIR}}/build-zlib/zlib/lib" \
-o"{{ HARNESS }}" \
-lm -static
[unix]
run: harness build
{{ FUZZER }} \
--coverage-path {{ TARGET_DIR }}/cov.drcov \
--input-dir ./corpus \
--verbose \
-- {{ HARNESS }}
[unix]
test_inner: run
#!/bin/bash
cargo run --manifest-path ../../../utils/drcov_utils/Cargo.toml --bin drcov_merge -- \
-i {{ TARGET_DIR }}/cov-000.drcov {{ TARGET_DIR }}/cov-001.drcov {{TARGET_DIR }}/cov-002.drcov {{ TARGET_DIR }}/cov-003.drcov \
--output {{ TARGET_DIR }}/cov-merged.drcov || exit 1
NB_BLOCKS=$(cargo run --manifest-path ../../../utils/drcov_utils/Cargo.toml --bin drcov_dump_addrs -- \
-i {{ TARGET_DIR }}/cov-merged.drcov -a | wc -l || exit 1)
echo "Nb blocks found: $NB_BLOCKS"
if [ $NB_BLOCKS -ge 1700 ]; then
echo "Test succeeded"
else
echo "Did not find more than 1700 blocks."
exit 1
fi
[unix]
test:
ARCH=x86_64 just test_inner
ARCH=arm just test_inner
[unix]
clean:
cargo clean