test: isolate flakes; fewer store opens; cheaper coverage - #136
Merged
Conversation
Depth-1 feed-ahead tests set HOLD_FIRST on confirm_scripts_phase, which stalled every sibling phase in the same crate under cargo llvm-cov. Inject a test-local start instead. Join after lookahead is one recv_blocking. scripts_feed_test_sync is gone. Also stop swapping ENSURE_COLD_N / SCRIPT_SKIP_MEMPOOL as oracles in the same pin/ensure tests (process-global, same flake class).
confirm_thr_stats::sample_and_reset and last-writer union miss are shared across cargo test threads. Contracts are a local add() AtomicU64, a pure stamp-reject formatter, and pin/layout outcomes.
Nine skinny Query::open_or_create tests each remade a tiny head to assert pin/ensure error strings and denserels/abs. One journey now covers missing parent, ensure/post_commit invariants, freeze, empty stamp, spent-range ensure, and same-batch create. Cold-range adopt keeps pin/layout asserts and drops process-global COLD_RANGE_N.
coverage.sh --skips two_node, reconstruct, and ibd_skips_dead_peer so llvm-cov does not re-pay P2P. Reconstruct stays in default + the existing multinode job (the App token cannot patch ci.yml). ibd_skips_dead_peer is un-ignored (~0.5s). TESTING.md records the parallel-clobber rules. A 101-block P2P spend pad rate-limits; coinbase-maturity spends stay on confirm_engine_pins_spend_of_just_written_pack. Tip-follow after IBD still hangs and stays ignored.
The App token cannot update workflow files; this commit is for a human push. Reconstruct and ibd_skips_dead_peer are #[ignore] in the default suite. The required job passes --ignored so they still run in isolation. coverage.sh already skips those names.
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.
Why
Recent
test/coverageflakes were allrbitcoin-consensus --libunder the parallel harness. Process-global HOLD hooks inconfirm_scripts_phaseandswap(0)on confirm meters clobber sibling tests. Coverage also re-runs the P2P IBDs that the dedicated multinode job already pays for.What
HOLD_FIRSTin the shipped scripts phase.scripts_feed_test_syncis gone.ENSURE_COLD_N/sample_and_reset/ last-writer union miss as oracles./tmpstore covers the former skinny pin/ensure twins.coverage.sh--skipstwo_node_header_and_block_sync,serve_after_restart_via_reconstruct, andibd_skips_dead_peer. Reconstruct and slim dead-peer are#[ignore]in the default suite.Human push needed:
d2c5615bupdates.github/workflows/ci.ymlso the required multinode job runs reconstruct +ibd_skips_dead_peerwith--ignored. The App token cannot update workflow files.A 101-block P2P spend pad rate-limits; coinbase-maturity spends stay on
confirm_engine_pins_spend_of_just_written_pack. Tip-follow after IBD still hangs and stays ignored.Test
Do not merge unless asked.