44 lines
907 B
Makefile
44 lines
907 B
Makefile
FUZZER_NAME := 'unicorn'
|
|
PROJECT_DIR := absolute_path(".")
|
|
PROFILE := 'release'
|
|
PROFILE_DIR := 'release'
|
|
CARGO_TARGET_DIR := env("CARGO_TARGET_DIR", "target")
|
|
FUZZER := CARGO_TARGET_DIR / PROFILE_DIR / FUZZER_NAME
|
|
|
|
|
|
alias build := fuzzer
|
|
|
|
fuzzer:
|
|
cargo build --profile={{PROFILE}}
|
|
|
|
run: fuzzer
|
|
RUST_LOG="debug" {{FUZZER}} arm
|
|
|
|
build_bin:
|
|
cd bin && just all
|
|
|
|
|
|
[linux]
|
|
[macos]
|
|
test: fuzzer build_bin (test_single "arm") (test_single "arm64") (test_single "riscv64") (test_single "x86")
|
|
echo "Done"
|
|
|
|
test_single arch="arm":
|
|
#!/bin/bash
|
|
echo "Testing {{arch}}"
|
|
|
|
RUST_LOG="debug" timeout 30s {{FUZZER}} {{arch}} 2>&1 | tee fuzz_stdout.log || true
|
|
if grep -qa "objectives: 1" fuzz_stdout.log; then
|
|
echo "Fuzzer is working"
|
|
else
|
|
echo "Fuzzer does not generate any testcases or any crashes"
|
|
exit 1
|
|
fi
|
|
|
|
[windows]
|
|
test: fuzzer
|
|
echo "Unsupported on this platform"
|
|
|
|
clean:
|
|
cargo clean
|