Skip to content

Extract shared test fixtures and convergence observations - #2535

Draft
a-shannon wants to merge 1 commit into
ergoplatform:masterfrom
a-shannon:fix/shared-test-support
Draft

Extract shared test fixtures and convergence observations#2535
a-shannon wants to merge 1 commit into
ergoplatform:masterfrom
a-shannon:fix/shared-test-support

Conversation

@a-shannon

@a-shannon a-shannon commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

This extracts the common test support previously carried in #2511 and #2525, so it can be reviewed and merged once before the dependent corrections.

The eight-file increment contains funded transaction, candidate, transaction and ViewHolder fixtures; the standalone ConvergenceObservations helper with nine pure contracts; and the existing ErgoMemPoolSpec sorting fixture extracted unchanged from #2480 at ac0eff36. The extraction does not depend on #2480's production dependency graph changes. Candidate and header identity assertions are preserved. The force-refresh fixture combines the existing candidate setup with a fixed reader snapshot. There are no production or build-configuration changes.

The DeepRollBackSpec and UtxoStateNodesSyncSpec scenario changes are in #2511, with all assertions and timeouts preserved. This prerequisite retains the reusable observation helper and its pure contracts.

Dependent branches use this same prerequisite commit, 7c753910bf28b7c69f69228e120e101de2d83bb7. Their descriptions link the incremental changes; GitHub's upstream-master diff remains cumulative until the prerequisite merges.

Validation:

  • 79 tests passed: 41 across FundedBoxHolderGeneratorsSpec, CandidateGeneratorSpec and ErgoNodeTransactionSpec, 29 in ErgoMemPoolSpec, and 9 pure ConvergenceObservationsSpec contracts.
  • Integration sources compile on this prerequisite and on the dependent synchronization branch.
  • The local ErgoNodeViewHolderSpec run did not finish because of a native LevelDB C++ exception on Windows. Hosted CI is required before integration; the local run is not counted as passing.

This PR remains a draft. Current-head CI has seven of eight successful checks; integration passed 21 of 22 tests and failed when ForkResolutionSpec hit its 15-minute timeout. The cause is not established. A maintainer integration-job rerun is needed. The previous-head run ended with six of eight successful checks; the node and integration jobs failed. The node suite passed 804 of 805 tests, with one sorting-fixture failure. Those results do not apply to this head.

The related changes in #2312 and closed #2340 concern the previous-candidate block-application messages. This extraction preserves those assertions and focuses its reader-snapshot change on forced candidate refresh. Review order and dependent PRs are tracked in #2533.

Keep synchronization scenarios with their correction in ergoplatform#2511. Reuse the spendable sorting fixture already present in ergoplatform#2480.
@a-shannon
a-shannon force-pushed the fix/shared-test-support branch from 460d0a1 to 7c75391 Compare September 8, 2026 10:32
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