From 7b0d2d84d3698ecca1ba546130680e7f622e277f Mon Sep 17 00:00:00 2001 From: Frank O'Hara Date: Wed, 26 Aug 2026 17:40:57 -0600 Subject: [PATCH] chore(flawd): bring config current and pin coverage to the image tree - [coverage.per_test] auto block per current flawd defaults (flawd auto-disables it here anyway: the assert_cmd suite is subprocess-shaped and per-test attribution can't see into spawned binaries) - [test] build_command for schemata batches (compile-once; prevents batch compile failures scoring as kills) - [pare] batch-split caps per the Rust playbook - [docker] coverage_source = "image": this Dockerfile embeds the source and warm caches at /app; bind-mount coverage delivered the host target/ into the container (wrong-arch binaries on PATH broke the subprocess tests, and container builds wrote into the host cargo cache) Part of the flawd-CI dogfooding effort; the mutation gate lands separately, report-only, once rehearsed. --- flawd.toml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/flawd.toml b/flawd.toml index cb917ba..e781179 100644 --- a/flawd.toml +++ b/flawd.toml @@ -8,8 +8,21 @@ inputs = [ command = "mkdir -p coverage && cargo llvm-cov --workspace --lcov --output-path coverage/lcov.info" timeout_seconds = 300 +[coverage.per_test] +# auto mode: flawd collects per-test coverage on first run +mode = "auto" +granularity = "test_function" +# coverage.command above is a compound shell command; declare how to COLLECT +# per-test coverage directly (execution still uses [test] command). +collect_language = "rust" +collect_command = "cargo test --workspace" + [test] command = "cargo test" +# Compile-once step for schemata batches (gets a 3x timeout allowance); +# without it the first run of each batch pays the rebuild inside its own +# timeout — and historically, batch compile failures scored as fake kills. +build_command = "cargo test --no-run" timeout_seconds = 600 baseline_required = true @@ -23,8 +36,15 @@ risky_operators = false dedupe = true sampling = "weighted" cache = true +max_batch_seconds = 300 +max_batch_mutants = 25 [docker] dockerfile = "Dockerfile" workdir = "/app" network = "bridge" +# The Dockerfile embeds the source tree (and warm cargo caches) at /app. +# Bind-mount coverage would deliver the host target/ into the container — +# wrong-architecture binaries on PATH for subprocess tests, and container +# builds writing into the host cargo cache. +coverage_source = "image"