From cecff55db6d4458f2b907f06f54c659a95705c17 Mon Sep 17 00:00:00 2001 From: Stephen Waits Date: Fri, 30 Oct 2026 20:07:14 -0600 Subject: [PATCH] test(just): mutation recipes for host, package, vault and cli (P12 step 1) Each recipe mutates one crate and runs its own tests plus ledger-cli's end-to-end suites without the viewer, as mutants-mcp does, so a mutant in a crate whose behavior is reached only through the one executable is still caught. Local runs only (D-59): no shard goes into scheduled.yml. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01HS8WZziDnyxunC23MUxrLp --- justfile | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/justfile b/justfile index f61ddc3..9d4b375 100644 --- a/justfile +++ b/justfile @@ -209,6 +209,38 @@ mutants-mcp shard="0/1": sweep-test-tmp MCP_CASES=16 PROPTEST_MAX_SHRINK_ITERS=0 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-mcp --test-package ledger-mcp --test-package ledger-cli --no-default-features -j 4 --timeout-multiplier 3 --minimum-test-timeout 600 --shard {{shard}} -o mutants-mcp @just sweep-test-tmp +# Mutation testing of the host (the books home, the lease, the update channel, the bridge): every mutant runs its own tests and the +# suites that drive a real books server (ledger-cli's, D-44), built without +# the viewer, as for the MCP server. A local run, never CI (D-59). +mutants-host shard="0/1": sweep-test-tmp + mkdir -p {{mutants_tmp}} + PROPTEST_MAX_SHRINK_ITERS=0 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-host --test-package ledger-host --test-package ledger-cli --no-default-features -j 4 --timeout-multiplier 3 --minimum-test-timeout 300 --shard {{shard}} -o mutants-host + @just sweep-test-tmp + +# Mutation testing of the CPA package and the 1099 worksheet: every mutant runs its own tests and the +# suites that drive a real books server (ledger-cli's, D-44), built without +# the viewer, as for the MCP server. A local run, never CI (D-59). +mutants-package shard="0/1": sweep-test-tmp + mkdir -p {{mutants_tmp}} + PROPTEST_MAX_SHRINK_ITERS=0 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-package --test-package ledger-package --test-package ledger-cli --no-default-features -j 4 --timeout-multiplier 3 --minimum-test-timeout 300 --shard {{shard}} -o mutants-package + @just sweep-test-tmp + +# Mutation testing of the TIN vault: every mutant runs its own tests and the +# suites that drive a real books server (ledger-cli's, D-44), built without +# the viewer, as for the MCP server. A local run, never CI (D-59). +mutants-vault shard="0/1": sweep-test-tmp + mkdir -p {{mutants_tmp}} + PROPTEST_MAX_SHRINK_ITERS=0 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-vault --test-package ledger-vault --test-package ledger-cli --no-default-features -j 4 --timeout-multiplier 3 --minimum-test-timeout 120 --shard {{shard}} -o mutants-vault + @just sweep-test-tmp + +# Mutation testing of the one executable (its argument handling, the server and bridge modes): every mutant runs its own tests and the +# suites that drive a real books server (ledger-cli's, D-44), built without +# the viewer, as for the MCP server. A local run, never CI (D-59). +mutants-cli shard="0/1": sweep-test-tmp + mkdir -p {{mutants_tmp}} + PROPTEST_MAX_SHRINK_ITERS=0 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-cli --test-package ledger-cli --no-default-features -j 4 --timeout-multiplier 3 --minimum-test-timeout 600 --shard {{shard}} -o mutants-cli + @just sweep-test-tmp + # No mutation runs on the viewer (owner, 2026-10-18: they crushed the # machine, and for the GUI it's "not as critical"). Its two musts are # tested directly instead: it never writes the books (tests/read_only.rs)