8000 test: add replayable storage schedule coverage (#760) by adityamukho · Pull Request #786 · project-minigraf/minigraf · GitHub
[go: up one dir, main page]

Skip to content

test: add replayable storage schedule coverage (#760) - #786

Merged
adityamukho merged 1 commit into
v3from
test/760-deterministic-schedules
Oct 29, 2026
Merged

adityamukho merged 1 commit into
v3from
test/760-deterministic-schedules

Conversation

@adityamukho
@adityamukho adityamukho commented Oct 29, 2026 •
Copy link
Copy Markdown
Collaborator

Queries must see whole transactions and a stable snapshot while commits and checkpoints run. This adds three bounded schedule tests of the real FactStorage, Snapshot and Pins code, with test-only synchronization substitutions and an immutable committed-reader fixture. It covers batch visibility, snapshot cutoffs, atomic publication, late appends and pin retention; it does not simulate disk durability or replace real-thread/SIGKILL tests.

The focused workflow runs 1,000 schedules per workload on relevant v3 PRs (Linux/macOS/Windows stable plus Linux Rust 1.89). Nightly/manual runs use 10,000 executions per workload for three seeds. Test selection and completed budgets are checked explicitly. Every job preserves logs, failure schedules, Cargo.lock, compiler details and a source archive. The identical workflow-only companion #787 activates the schedule from main after this lands, because GitHub schedules originate from the default branch.

Validation:

  • Bench: 90,000 extended schedule executions passed; all three injected faults detected and replayed 10/10 each. A 3,000-execution suite took a median 1.06 seconds excluding compilation.
  • Rust 1.89: fresh compatible dependency resolution; actual CI shell block passed PR and nightly budgets, rejected a zero-test build, and propagated/logged an injected failure through tee.
  • Ordinary library tests: 1,156 passed, five ignored; all eight snapshot concurrency tests passed. Standard strict Clippy, browser/WASI compilation and dependency policy passed. Default test counts and production dependencies are unchanged.
  • Workflow passed actionlint 1.7.12. Hosted schedule matrix: Linux/macOS/Windows stable and Linux Rust 1.89 all passed; all four replay artifacts uploaded. The Linux bundle was inspected for source, lockfile, compiler/configuration details and completed-budget logs.

docs/testing/deterministic-schedules.md contains the boundary audit, alternatives, measured evidence, replay commands and limitations. The deliberate-fault patches and their checker remain manual harness-validation tools. A broader all-test Clippy invocation flagged existing test-code lints, with no diagnostic in the new tests; the normal repository lint gate passed. The complete integration/doc suite was not rerun locally; normal PR CI remains in place.

Closes #760. Part of #383.

@codecov
codecov Bot commented Oct 29, 2026
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@adityamukho
adityamukho marked this pull request as ready for review October 29, 2026 03:23
@adityamukho
adityamukho merged commit bee2af0 into v3 Oct 29, 2026
24 checks passed
@adityamukho
adityamukho deleted the test/760-deterministic-schedules branch October 29, 2026 03:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0