Skip to content

test: isolate flakes; fewer store opens; cheaper coverage - #136

Merged
reardencode merged 5 commits into
masterfrom
test/journey-reliability
Aug 18, 2026
Merged

test: isolate flakes; fewer store opens; cheaper coverage#136
reardencode merged 5 commits into
masterfrom
test/journey-reliability

Conversation

@rearden-grok

@rearden-grok rearden-grok Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Why

Recent test / coverage flakes were all rbitcoin-consensus --lib under the parallel harness. Process-global HOLD hooks in confirm_scripts_phase and swap(0) on confirm meters clobber sibling tests. Coverage also re-runs the P2P IBDs that the dedicated multinode job already pays for.

What

  1. Feed-ahead — test-local start/hold. No HOLD_FIRST in the shipped scripts phase. scripts_feed_test_sync is gone.
  2. Meters — pin/layout and a pure stamp-reject formatter; no ENSURE_COLD_N / sample_and_reset / last-writer union miss as oracles.
  3. Pin/ensure journey — one /tmp store covers the former skinny pin/ensure twins.
  4. Timecoverage.sh --skips two_node_header_and_block_sync, serve_after_restart_via_reconstruct, and ibd_skips_dead_peer. Reconstruct and slim dead-peer are #[ignore] in the default suite.

Human push needed: d2c5615b updates .github/workflows/ci.yml so the required multinode job runs reconstruct + ibd_skips_dead_peer with --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

cargo test -p rbitcoin-consensus --lib scripts_
cargo test -p rbitcoin-consensus --lib pin_and_ensure_journey
cargo test -p rbitcoin-net --lib thr_stats
cargo test -p rbitcoin-net --lib stamp_reject
cargo test -p rbitcoin-test --test integration_multinode ibd_skips_dead_peer -- --ignored

Do not merge unless asked.

rearden-grok Bot added 5 commits August 18, 2026 13:04
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.
@reardencode
reardencode merged commit a56f4fb into master Aug 18, 2026
13 checks passed
@rearden-grok
rearden-grok Bot deleted the test/journey-reliability branch August 19, 2026 18:58
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