Conversation
|
@barakshani Added tests with tx staging. See |
|
Commit: 1ce1f16 SP1 Execution Results
|
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## main #1760 +/- ##
==========================================
+ Coverage 79.76% 80.01% +0.25%
==========================================
Files 674 674
Lines 74805 75685 +880
==========================================
+ Hits 59665 60559 +894
+ Misses 15140 15126 -14
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 10 files with indirect coverage changes 🚀 New features to boost your workflow:
|
|
@codex Please review this PR (This is a test being run by @sampkaALP (security)) |
|
Codex Review: Didn't find any major issues. Chef's kiss. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Merge conflict because of the limbo PR that just went in. |
|
This is good work, but there's still a lot of repeating patterns with tests. I would love it if we could think of some declaritive model for describing all the different test scenarios which would make it easier to write tests by handling the setup/asserts better, and when we make changes to how things work we don't have to change tons of tests that interact with it. I am not sure what that would look like at the moment. |
@delbonis Yes I am aware. I will try to come up with some ways to reduce repetition with AI help. |
c8c18a8 to
beec3cd
Compare
4990930 to
75017a3
Compare
|
wow I would have assumed this would have caused more conflicts |
delbonis
left a comment
There was a problem hiding this comment.
There's a lot of good things here to improve ergonomics, however there's also a lot of smelly problems (like "being too specific without reason") and unidiomatic/misleading names that should be improved.
Also in most of the tests we can probably just do use ...::test_utils::*; instead of importing each and every item, since that just creates more work to keep updated (either for humans or LLMs).
Description
Refactor, revise and harden OL STF tests. Add tests to fill existing gaps.
tests/stf.rsandtests/edge_cases.rsinto themed modules (verify_header,verify_body,staging_layers,sau_transfers,sau_messages,sau_limits,sau_sequences,sau_logs,chain_processing,asm_manifests,tx_constraints,partial_execution,stress,sau_validation).OLStfFixture::builder()+OLStfFixtureBuilderfor pre-genesis setup,FixtureBlockBuilderfor child-block sequencing and tx construction, SAU/GAM/manifest fixture builders,StateSnapshot::assert_unchangedfor state-unchanged pinning, andStateTestExt: IStateAccessorfor state-lookup ergonomics. Raw verifier/staging/tamper helpers stay as free functions over&mut impl IStateAccessorMut.transaction_processing.ExecError::ChainIntegritywith finer variants:AsmManifestHeightMismatch { expected, actual, index }inmanifest_processingandHeaderEpochMismatch/ContextEpochMismatchinchain_processing. Downstream callers updated.BitcoinAmount::MAX_MONEYandBitcoinAmount::MAXwith intent comments, limbo bookkeeping asserted in deposit/withdrawal and ASM manifest tests.TxConstraintsslot boundaries, ledger-reference proof rejection paths, multi-SAU same-block scenarios (distinct senders, sequential seqnos, duplicate seqno failure), staging-layer execution paths (WriteTrackingState,IndexerState), SAU and log boundary limits, SAU target-type and sequence-number bounds, block terminality verification, output message delivery to snark inboxes, SAU log emission contract, ignored stress tests for large inbox/tx batches.This PR was created with help from Claude Code and Codex.
Type of Change
Notes to Reviewers
Please review the doc below and the test added.
Is this PR addressing any specification, design doc or external reference document?
If yes, please add relevant links:
OL STF test cases
Checklist
Related Issues
STR-2066