diff --git a/justfile b/justfile index 1a8f61c..5af77de 100644 --- a/justfile +++ b/justfile @@ -62,6 +62,7 @@ miri: # Where cargo-mutants copies and builds the tree for each mutant (several # GB per job): the user's cache on disk, never /tmp, which is often RAM. +# A mutant only needs some test to fail, so proptest doesn't shrink. mutants_tmp := env_var_or_default("XDG_CACHE_HOME", env_var("HOME") + "/.cache") + "/wanderbooks/mutants" # Mutation testing of the core: do the tests catch planted bugs? @@ -69,35 +70,35 @@ mutants: # Core and store tests (the store's replay tests reach Ledger::replay_*); # the whole workspace would rebuild the viewer for every mutant. mkdir -p {{mutants_tmp}} - TMPDIR={{mutants_tmp}} cargo mutants -p ledger-core --exclude crates/ledger-core/src/proofs.rs --test-package ledger-core --test-package ledger-store -j 4 --timeout 120 + PROPTEST_MAX_SHRINK_ITERS=0 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-core --exclude crates/ledger-core/src/proofs.rs --test-package ledger-core --test-package ledger-store -j 4 --timeout 120 # Mutation testing of the store. Fewer random cases per mutant (each needs # a run that catches it, not the deep sweep). mutants-store: mkdir -p {{mutants_tmp}} - STORE_CASES=64 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-store --test-package ledger-store -j 3 --timeout 300 -o mutants-store + STORE_CASES=64 PROPTEST_MAX_SHRINK_ITERS=0 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-store --test-package ledger-store -j 3 --timeout 300 -o mutants-store # Mutation testing of the importers and report renderers. mutants-import: mkdir -p {{mutants_tmp}} - TMPDIR={{mutants_tmp}} cargo mutants -p ledger-import --test-package ledger-import -j 4 --timeout 300 -o mutants-import + PROPTEST_MAX_SHRINK_ITERS=0 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-import --test-package ledger-import -j 4 --timeout 300 -o mutants-import # Mutation testing of the settings parser and the receipt policy. mutants-config: mkdir -p {{mutants_tmp}} - TMPDIR={{mutants_tmp}} cargo mutants -p ledger-config --test-package ledger-config -j 4 --timeout 120 -o mutants-config + PROPTEST_MAX_SHRINK_ITERS=0 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-config --test-package ledger-config -j 4 --timeout 120 -o mutants-config # Mutation testing of the MCP server (every mutant runs the stdio suites; # fewer random cases each, as for the store). mutants-mcp: mkdir -p {{mutants_tmp}} - MCP_CASES=16 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-mcp --test-package ledger-mcp -j 4 --timeout 600 -o mutants-mcp + MCP_CASES=16 PROPTEST_MAX_SHRINK_ITERS=0 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-mcp --test-package ledger-mcp -j 4 --timeout 600 -o mutants-mcp # Mutation testing of the viewer's logic (formatting, file names, history, # search, ticks, the view model, the attention list; not the painting). mutants-gui: mkdir -p {{mutants_tmp}} - TMPDIR={{mutants_tmp}} cargo mutants -p ledger-gui --test-package ledger-gui -j 4 --timeout 300 -o mutants-gui -f crates/ledger-gui/src/fmt.rs -f crates/ledger-gui/src/export.rs -f crates/ledger-gui/src/nav.rs -f crates/ledger-gui/src/attention.rs -f crates/ledger-gui/src/books.rs -f crates/ledger-gui/src/palette.rs -f crates/ledger-gui/src/charts.rs + PROPTEST_MAX_SHRINK_ITERS=0 TMPDIR={{mutants_tmp}} cargo mutants -p ledger-gui --test-package ledger-gui -j 4 --timeout 60 -o mutants-gui -f crates/ledger-gui/src/fmt.rs -f crates/ledger-gui/src/export.rs -f crates/ledger-gui/src/nav.rs -f crates/ledger-gui/src/attention.rs -f crates/ledger-gui/src/books.rs -f crates/ledger-gui/src/palette.rs -f crates/ledger-gui/src/charts.rs # Benchmarks of the core's hot paths (no budget gates them yet) bench: