@@ -19,7 +19,7 @@ The development loop is:
1919cargo test --workspace
2020
2121# Run proof-focused tests while iterating.
22- cargo test --workspace proof
22+ cargo test --workspace --test files ' proofs/ '
2323
2424# Run lint checks across the workspace.
2525cargo clippy --workspace --all-targets
@@ -35,6 +35,15 @@ The root workspace includes both `egglog` and `egglog-experimental`.
3535` egglog-experimental ` depends on the workspace ` egglog ` crate, which keeps proof
3636changes and downstream experimental behavior in the same reviewable unit.
3737
38+ Proof-specific file tests use one filter prefix:
39+
40+ - ` proofs/ ` : explicit ` (prove ...) ` fixtures under ` tests/proofs ` plus every
41+ proof-compatible file under proof-testing mode. Checks are treated as prove
42+ commands and generated proofs are saved as snapshots.
43+
44+ This filter is a subset of the full workspace test run. Use it for fast proof
45+ iteration and reserve ` cargo test --workspace ` for the final compatibility gate.
46+
3847## Benchmarking
3948
4049The public benchmark entrypoint is an executable Python script:
@@ -120,10 +129,12 @@ If no files are provided, the default target benchmark suite is:
120129- ` egglog/tests/web-demo/rw-analysis.egg `
121130- ` egglog/tests/integer_math.egg `
122131- ` egglog/tests/web-demo/resolution.egg `
132+ - ` egglog-experimental/tests/fixtures/eggcc-2mm-pass1-merge-old.egg `
123133
124- These four files are proof-compatible representative examples under the current
134+ These five files are proof-compatible representative examples under the current
125135` egglog-experimental ` CLI and run under the default ` off ` , ` term ` , and ` proofs `
126- treatment matrix.
136+ treatment matrix. The eggcc fixture is the heavy container/proof benchmark in
137+ the default suite.
127138Relative file paths are resolved relative to the directory where ` ./bench.py `
128139was invoked, not relative to each target checkout. The same file contents are
129140used for every target, and ` file.sha256 ` records the exact benchmark input.
@@ -513,17 +524,19 @@ Each benchmark report row records the binary hash used for that observation.
513524
514525## CI
515526
516- CI runs on pull requests, manual dispatch, and pushes to ` main ` . It runs four
517- jobs :
527+ CI runs on pull requests, manual dispatch, and pushes to ` main ` . It runs these
528+ job groups :
518529
519- - ` python ` : ` uv lock --check ` , ruff formatting, ruff linting, mypy, and pytest.
530+ - ` python ` : ` uv lock --check ` , ruff/mypy checks for the top-level benchmark
531+ runner files, and pytest.
520532- ` rust ` : workspace tests, proof-focused tests, and clippy.
521533- ` benchmark-smoke ` : a one-round ` ./bench.py ` run on
522534 ` egglog/tests/integer_math.egg ` .
523535- ` codspeed ` : an in-process, proofs-only ` egglog-experimental ` benchmark
524- harness over a smaller representative file set. CodSpeed tracks proof-mode
525- movement without invoking ` ./bench.py ` ; the CLI benchmark report remains the
526- source for the full off/term/proofs comparison.
536+ harness over a smaller representative file set, run through CodSpeed in both
537+ simulation and memory modes. CodSpeed tracks proof-mode movement without
538+ invoking ` ./bench.py ` ; the CLI benchmark report remains the source for the
539+ full off/term/proofs comparison.
527540
528541Python checks are run as separate commands:
529542
0 commit comments