Repository navigation
docs(bench): map failure paths to correctness tests (Refs #843) - #866
Merged
Merged
Conversation
Adds the X08 report for core revision a95e51f on v3. It maps the failure paths excluded from latency timing (invalid size bounds, valid-time windows and write order, prepared binds, callback errors, memory and rule exhaustion, validation codes, corrupt pages and trees, failed-handle retry, v1-v6 refusal and heavy single-entry WAL replay) to 138 curated correctness tests in 35 cells, with the error-code and data invariants each checks. A standard-library script verifies every target against the pinned plain and test-hooks inventories and reproduces a lexical index of all 2,079 Rust tests byte for byte. The C08 repair and C30 rollback claims are limited to their exact fixtures; both keep their integrity checks before timing. Gaps: no test replays one heavy WAL entry through Minigraf::open (filed as #865), and the fixed 1,000-round recursion bound is untested (already planned in #861). X08 stays excluded; no nightly ID changes. No production code, public API, test or nightly-route change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H2a7QoYX6tc5G3sKVzvLjD
4 tasks done
8438
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related #843 (X08 of the #776 close-out).
What this adds
docs/benchmarks/843-failure-correctness/README.md: the X08 report pinned to v3a95e51ffe506cb83d60a48da1622ab2e6b35340f.targets.csv: 138 curated correctness tests in 35 cells, each with the error-code and data invariants it checks. Families: size bounds, windows and write order, binds, callback errors, exhaustion and validation codes, corrupt pages and trees, failed-handle retry, v1–v6 refusal, heavy WAL replay.map.py(standard library, adapted from Bench: document semantic permutations and natural-plan control limits #842's): checks every target against the pinned plain andtest-hooksinventories, and writes a lexical index of all 2,079 Rust tests. Its output reproduces byte for byte from the committed lists inevidence/.bench-coverage-v3.md, plus CLAUDE, README, ROADMAP, CHANGELOG, TEST_COVERAGE and BENCHMARKS.No production code, public API, test or nightly-route change. Nothing was timed: the inventory is a build plus
--list, run on an idle secondary host.Findings
test_wal_entry_of_more_than_a_million_facts_replaysdrivesWalWriter/WalReaderdirectly. No test opens a database whose WAL holds one heavy entry. On v3, a statement of exactlytransaction_chunk_factsfacts (up to 1,000,000) stays small and is written as one entry, so this shape is reachable. Filed as Test: reopen and replay one heavy WAL entry through Minigraf::open #865.(reach :n0 ?b)returnsINT-020"Max iterations". It fails loudly, with no partial rows. Make the recursion round limit (max_iterations) configurable per query and in OpenOptions #861 (v3.0.0) already makes the bound configurable and lists the tests, so no new issue was filed.API-011on every iteration and checks the rollback once at setup. C08 checks once at setup that the damage is detected and the repair is clean. Neither is failure-latency timing.Verification
map.pyreruns on the committed evidence and reproducestests.csv,summary.jsonandtargets.jsonbyte for byte.🤖 Generated with Claude Code
https://claude.ai/code/session_01H2a7QoYX6tc5G3sKVzvLjD