.PHONY: test cover pbt pbt-cover fuzz fuzzing fuzzing-parallel fuzzing-list check clippy fmt clean
test:
cargo test --workspace
cover:
cargo llvm-cov --tests --workspace
pbt-with-cover:
cargo llvm-cov -p pbt --tests
fuzzing:
@FORKS=$$(( $$(nproc) - 2 )); \
if [ $$FORKS -lt 1 ]; then FORKS=1; fi; \
echo "Using fork=$$FORKS on $$(nproc) cores"; \
for target in $$(cargo fuzz list); do \
echo "=== Fuzzing $$target ==="; \
cargo +nightly fuzz run $$target -- -max_total_time=30 -fork=$$FORKS -max_len=4096 || exit 1; \
done
fuzzing-parallel:
@mkdir -p fuzz/logs
@FORKS=$$(( $$(nproc) - 2 )); \
if [ $$FORKS -lt 1 ]; then FORKS=1; fi; \
echo "Using fork=$$FORKS on $$(nproc) cores"; \
cargo fuzz list | xargs -P $$(cargo fuzz list | wc -l) -I {} \
sh -c 'cargo +nightly fuzz run {} -- -max_total_time=30 -fork=1 -max_len=4096 > fuzz/logs/{}.log 2>&1'
@echo "=== Fuzzing Report ==="
@for f in fuzz/logs/*.log; do \
target=$$(basename $$f .log); \
last=$$(grep -E '^#[0-9]+:' $$f | tail -1); \
echo "$$target: $$last"; \
done
fuzzing-list:
cargo fuzz list
check:
cargo check --workspace
clippy:
cargo clippy --workspace -- -D warnings
fmt:
cargo fmt --all
clean:
cargo clean