.PHONY: test cover pbt pbt-cover fuzz fuzzing fuzzing-parallel fuzzing-list check clippy fmt clean bench bench-save bench-compare
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
bench:
ifdef BENCH
cargo bench --bench $(BENCH)
else
cargo bench --benches
endif
bench-save:
ifdef BENCH
cargo bench --bench $(BENCH) -- --save-baseline before
else
cargo bench --benches -- --save-baseline before
endif
bench-compare:
ifdef BENCH
cargo bench --bench $(BENCH) -- --baseline before
else
cargo bench --benches -- --baseline before
endif
clean:
cargo clean