Test infrastructure

PRPriorityReviewabilityReviewsAgreementSize
(+)#35000 ismaelsadeeq test: Add block validation unit tests
  • Add fast unit test coverage for block validation consensus rules
  • Catch consensus regressions earlier during validation modularization refactors
P2 · test coverage
  • P3 because unit tests on high-risk consensus paths provide faster test feedback than functional tests
  • Provides reusable test utilities for constructing mutated blocks and checking outcomes
Author silent 103 days
  • Author has been inactive for over three months
  • CI is passing and earlier review threads have been addressed
0 (+1)
Strong
  • Strong support for adding structured block validity unit tests
  • Approach approval because the comprehensive test cases are valuable (sedited)
  • Full approval after earlier nits and helper assertions were addressed (w0xlt)
  • Suggested removing the redundant fuzz target to keep the focus on unit tests (marcofleon)
0 + 1,384 tests
  • 0 lines added or modified outside tests
  • 1,384 lines added or modified in tests
  • 0 lines removed in total
  • 8 files, 3 commits
(+)#35774 willcl-ark ci: test cross-built macos arm64 binaries
  • Run unit tests on native macOS arm64 hardware using release-like cross-built binaries
  • Catch platform-specific regressions and silent toolchain breakages before release
P3 · test coverage
  • P3 because it expands coverage by running unit tests on native macOS hardware
  • CI test orchestration provides lower leverage than core test framework improvements
Ready
  • Ready for review
  • Branch is rebased, CI is passing, and previous questions have been addressed
0
Strong
  • Strong concept support citing the need to test cross-built binaries natively (fanquake)
  • Nonblocking inquiry about caching strategy was resolved (maflcko)
127
  • 127 lines added or modified outside tests
  • 0 lines added or modified in tests
  • 6 lines removed in total
  • 3 files, 3 commits
(+)#32554 l0rinc bench: replace embedded raw block with configurable block generator
  • Make block benchmarks representative of modern traffic using configurable runtime block generation
  • Avoids repository bloat from committing large raw block fixtures into the source tree
P3 · test coverage
  • P2 because benchmarks test 2016 data and fail to capture modern SegWit and Taproot execution costs
  • Provides an extensible framework for modern benchmarks without checking in large raw block fixtures
Needs rebase
  • Needs rebase due to merge conflicts with master
0Strong
  • Broad support for replacing outdated pre-SegWit test fixtures and avoiding repo bloat
  • Strong support because modern workloads are needed and generator avoids repo bloat (hodlinator, 0xB10C)
  • Concept approval without stated reasons (laanwj, yuvicc, Raimo33)
  • Suggested also generating block undo data for future undo benchmarks (0xB10C)
0 + 460 tests
  • 0 lines added or modified outside tests
  • 460 lines added or modified in tests
  • 45 lines removed in total
  • 10 files, 3 commits
(+)#36098 HowHsu fuzz: add corpus reachability checks
  • Detect when fuzz targets running against static corpora silently lose coverage of critical paths
  • Enable fuzz runs to fail explicitly if registered reachability goals are never triggered
P3 · test coverage
  • P3 because it detects silent loss of coverage on critical paths like mempool acceptance or P2P handshakes
  • Helps maintainers ensure static corpora remain effective across harness changes
Ready
  • Ready for review, core infrastructure is in place and passing CI
0
Mild
  • Strong support for adding reachability checks to fuzz testing
  • Approved, noting it provides value while wondering about higher-level formulations (maflcko)
  • Believes what is in the PR already provides value (dergoegge)
  • Concept approval after testing application to coinselection fuzzing (brunoerg)
  • Concept approval without stated reasons (nervana21)
0 + 274 tests
  • 0 lines added or modified outside tests
  • 274 lines added or modified in tests
  • 18 lines removed in total
  • 14 files, 13 commits
(+)#35713 rustaceanrob Remove boost as a unit test runner
  • Eliminate Boost.Test to improve failure diagnostics and reduce build maintenance overhead for developers
  • Unblock future test runner concurrency and tailored testing tools for the project
P3 · cleanup
  • P2 because it fixes chronic developer pain with test assertion macros and diagnostics
  • It unblocks future test infrastructure enhancements including harness parallelization
Ready
  • Ready to review
  • CI is passing and recent pushes have resolved prior review comments
0
Strong
  • Strong sentiment favoring the removal of Boost.Test for maintainability
  • Strong support citing customizability and future concurrent test execution needs (josibake)
  • Concept approval with extensive testing of runner flags, signals, and seed reproduction (jeanpablojp)
  • Feedback on stringification fallbacks and static assertions incorporated cleanly (maflcko)
3 + 1,693 tests
  • 3 lines added or modified outside tests
  • 1,693 lines added or modified in tests
  • 264 lines removed in total
  • 163 files, 12 commits
(+)#36129 HowHsu fuzz: reset chainman after external block imports
  • Prevent fuzz state contamination across iterations in external block file loading
  • Eliminate order-dependent coverage and non-reproducible fuzz crashes
P3 · bug fix
  • P3 because it fixes state leakage across fuzz iterations for a single fuzz harness
  • Improves determinism and crash reproducibility without affecting production code
  • Ranking pass: Moved up: order-dependent, non-reproducible fuzz state is a signal/trust problem, which this category ranks ahead of new coverage.
Ready
  • Ready to review now, cleanly merges and passes CI
0
  • No review verdicts recorded
Positive
  • Collaborative discussion with no objections raised
  • Inquired whether a dirty-guard optimization would improve speed (maflcko)
  • Author explained unconditional resets are necessary to catch all internal mutations
0 + 23 tests
  • 0 lines added or modified outside tests
  • 23 lines added or modified in tests
  • 2 lines removed in total
  • 1 files, 1 commits
(+)#36254 0xB10C bench: add and use undo-data for BlockToJsonVerbosity3 bench
  • Make the block-to-JSON verbosity 3 benchmark test its intended code path
  • Provide accurate performance measurements for serializing block fee and prevout data
P3 · test coverage
  • P3 because it fixes a misleading benchmark that failed to exercise its target code path
  • Provides an accurate performance baseline for profiling high-verbosity block RPC logic
  • Ranking pass: Moved up: a benchmark that silently measures the wrong code path is a misleading test, ranked ahead of added coverage here.
Ready
  • Ready for review with passing CI and a small code diff
1Strong
  • Strong support with no open objections
  • Verified by reproducing benchmark numbers and validating raw undo data (ismaelsadeeq)
0 + 21 tests
  • 0 lines added or modified outside tests
  • 21 lines added or modified in tests
  • 0 lines removed in total
  • 3 files, 1 commits
(+)#36091 rustaceanrob test: Add debug output to common tested types
  • Print mismatched values in unit test failure messages instead of only reporting boolean failures
  • Speed up debugging for developers investigating test regressions
P3 · test coverage
  • P3 because it improves failure diagnostics across unit test suites
  • Provides formatting infrastructure required by follow-up test work
  • Does not fix test flakiness or expand coverage into high-risk code
  • Ranking pass: Moved up: supplies the printer/diagnostic infrastructure the #35713 runner overhaul builds on, so it inherits some of that work's leverage.
Ready
  • Ready for review
  • Clean CI, no merge conflicts, and review feedback has been addressed
0 (+2)
Strong
  • Strong consensus across multiple reviewers
  • Support for the overall approach and test utility cleanup (maflcko)
  • Verified by testing failure output and crash guards (jeanpablojp)
  • Code approval after suggested callsite and formatting fixes were applied (ismaelsadeeq)
  • Concept approval without detailed remarks (sedited, brunoerg)
0 + 394 tests
  • 0 lines added or modified outside tests
  • 394 lines added or modified in tests
  • 166 lines removed in total
  • 18 files, 2 commits
(+)#31349 vasild ci: detect outbound internet traffic generated while running tests
  • Detect unexpected outbound network traffic and DNS lookups generated while running tests in CI
  • Prevent tests from violating test isolation and leaking developer IP addresses
P3 · test coverage
  • P3 because it verifies that test suites remain strictly hermetic without contacting external servers
  • Protects developer privacy during test runs, though it does not resolve test framework blockers
  • Ranking pass: Slightly lower than its own score placed it: hermeticity/privacy check is valuable but no in-tree test is known to be leaking today.
Author silent
  • Author has been silent for over 90 days with an unanswered technical comment
0 (+3)Mild
  • Broad concept agreement on catching unexpected network traffic in CI (laanwj, jonatack, sipa, Sjors)
  • Approvals on earlier revisions (ryanofsky, 0xB10C, fjahr)
  • Unaddressed technical comment: tcpdump direction flag is a no-op when reading capture files (fjahr)
  • Concern about false positives and failures when running CI scripts locally under Podman (fanquake, maflcko)
0 + 77 tests
  • 0 lines added or modified outside tests
  • 77 lines added or modified in tests
  • 2 lines removed in total
  • 6 files, 1 commits
(+)#36068 brunoerg fuzz: reuse one fuzzed wallet across inputs
  • Speed up wallet fuzz testing by reusing a single wallet instance across inputs
  • Avoid repeated overhead from descriptor imports, BIP32 derivations, and database setups
P3 · speedup
  • P3 because a 4x to 6x speedup meaningfully increases fuzz testing throughput
  • Accelerates test coverage rate for wallet transaction creation
  • Ranking pass: Placed after the signal fixes; throughput gains rank below trust-in-CI fixes in this category.
Ready
  • Ready to review
  • Clean patch, passing CI, and initial review questions answered
0
Strong
  • Approach approval confirming a roughly 4x fuzz execution speedup (jeanpablojp)
  • Concerns about index drift and container clearing order were addressed (jeanpablojp)
19 + 127 tests
  • 19 lines added or modified outside tests
  • 127 lines added or modified in tests
  • 17 lines removed in total
  • 4 files, 2 commits
(+)#34969 brunoerg fuzz: several improvements to scriptpubkeyman harness
  • Speed up fuzz testing for scriptpubkeyman so automated testing can find bugs faster
  • Fix a harness bug that prematurely aborted test iterations when descriptor updates failed
P3 · speedup
  • P3 because it speeds up a single fuzz harness up to threefold under sanitizers
  • Deeper fuzz exploration benefits overall fuzzing coverage for wallet descriptors
Ready
  • Ready to review
  • CI is passing and the author addressed all inline reviewer comments
0
Strong
  • Strong support for the performance gains and harness bug fix
  • Concept approval citing the bug fix and hot-path optimizations (pablomartin4btc)
  • Verified by benchmarking substantial fuzzing speedup under sanitizers (andrewtoth)
  • Verified test corpus behavior and execution counts (ekzyis)
  • Concerns about weakened verification assertions were resolved in updates (maflcko)
0 + 71 tests
  • 0 lines added or modified outside tests
  • 71 lines added or modified in tests
  • 86 lines removed in total
  • 3 files, 7 commits
(+)#33954 mzumsande test: add functional test for outbound connection management
  • Make autonomous outbound peer connections straightforward to test in the functional framework
  • Help test writers cover peer discovery and connection logic without bespoke proxy hacks
P3 · test coverage
  • P3 because it adds reusable framework infrastructure to simplify future peer discovery tests
  • Eliminates duplicate connection redirection code across existing functional test suites
  • Ranking pass: Lowered a few places: real framework capability, but author states it is not ready and test intermittency is unresolved, so benefit is less certain than the speed/signal items above.
Author reworking
  • Wait because the author is currently reworking the branch to address feedback
  • CI is currently failing
0 (+2)
Strong
  • Strong concept and approach support across reviewers
  • Concept approval with constructive interface suggestions (vasild)
  • Verified by testing locally on Ubuntu (Bortlesboat)
+398/-102
  • 4 files
  • 3 commits
(+)#35139 maflcko test: Add thread-safe fast-failing test macros
  • Provide thread-safe test assertion macros that stop on first failure and can be shared with fuzz tests
  • Prevent silent signedness comparison bugs and reduce log noise that hides root causes in CI
P3 · cleanup
  • P3 because it fixes test edge cases like TSAN false positives and silent signedness comparison bugs
  • Enables sharing assertion macros with fuzz tests while existing Boost checks remain functional
Ready
  • Ready to review now
0
Positive
  • Concept approval after author showed how post-failure log spam truncates CI output (sedited)
  • Minor cleanups resolved (mercie-ux)
0 + 337 tests
  • 0 lines added or modified outside tests
  • 337 lines added or modified in tests
  • 162 lines removed in total
  • 4 files, 4 commits
(+)#32993 brunoerg fuzz: wallet: add target for tx scanning
  • Catch crashes and edge cases in wallet transaction scanning using fuzzed block inputs
  • Protect wallet rescan logic against complex state transitions missed by deterministic tests
P3 · test coverage
  • P3 because it expands fuzz coverage to discover crashes in wallet rescanning
  • It provides automated regression defense without resolving an active vulnerability
  • Ranking pass: Lowered: new wallet-rescan fuzz coverage, but paused in draft pending a harness rewrite, making it less certain than the framework/speed items above.
Author reworking
  • Author moved the PR to draft to refactor for execution speed and has been inactive
  • Hold review until the author pushes the updated harness and takes it out of draft
0 (+1)
Positive
  • General positive reception with no architectural objections
  • Verified the harness runs without crashing (Chand-ra)
  • Fixed a cleanup memory leak found during review (ekzyis)
  • Fixed an integer overflow in the mock time helper (fanquake)
0 + 111 tests
  • 0 lines added or modified outside tests
  • 111 lines added or modified in tests
  • 0 lines removed in total
  • 2 files, 1 commits
(+)#36135 frankomosh fuzz: test HTTPRequest state machine in http_request
  • Catch HTTP parsing and request framing divergence bugs across fragmented network inputs
  • Ensure incoming HTTP requests parse identically whether bytes arrive all at once or in arbitrary chunks
P3 · test coverage
  • P3 because it exercises previously unreachable resumable parsing logic in the HTTP server
  • Protects against request framing desynchronization bugs by verifying segmented network inputs
  • Ranking pass: Grouped with the other remote-input fuzz coverage; reviewers mutation-verified it, so it leads that group.
Ready
  • Ready to review
  • Small patch with passing CI and all previous reviewer feedback addressed
2Strong
  • Strong support for verifying segmented input parsing and client coverage (hodlinator)
  • Verified with ASan and UBSan fuzzing and artificial parser mutation testing (jeanpablojp)
0 + 171 tests
  • 0 lines added or modified outside tests
  • 171 lines added or modified in tests
  • 27 lines removed in total
  • 1 files, 4 commits
(+)#35964 laxmanacharya8 fuzz: add coverage for GetQueryParameterFromUri
  • Fuzz test untrusted query string parsing on the REST interface
  • Catches edge-case parser bugs with duplicate keys and fragment delimiters
P3 · test coverage
  • P3 because it expands fuzz coverage for remote input parsing on REST endpoints
  • Exercises parser boundaries and URL-encoding invariants without architectural changes
Ready
  • Ready for review
  • Small patch with prior reviewer feedback already incorporated
1Strong
  • Strong support after author addressed suggested edge cases (nervana21)
  • Verified by testing (nervana21)
0 + 27 tests
  • 0 lines added or modified outside tests
  • 27 lines added or modified in tests
  • 0 lines removed in total
  • 1 files, 1 commits
(+)#36128 ViniciusCestarii test: add script_tests cases covering more interpreter mutants
  • Pin consensus script interpreter edge cases uncovered by mutation testing
  • Prevents undetected regressions in Tapscript and P2WSH execution
P3 · test coverage
  • P3 because it hardens consensus-critical script interpreter code against regressions
  • Pins three surviving mutants, though routine and deferrable
Ready
  • Ready to review
  • Small and self-contained test addition with passing CI
1
Positive
  • Smooth review with no objections raised
  • Approval with no concerns noted (sedited)
0 + 34 tests
  • 0 lines added or modified outside tests
  • 34 lines added or modified in tests
  • 0 lines removed in total
  • 2 files, 3 commits
(+)#35835 jeanpablojp test: add CONST_SCRIPTCODE failure-path vectors to script_tests.json
  • Verify script interpreter failure paths for the CONST_SCRIPTCODE flag
  • Add test vectors for previously unexercised error codes in script_tests.json
P3 · test coverage
  • P3 because it improves coverage of consensus script evaluation edge cases
  • Directly exercises error codes that had no tests or only functional mempool checks
Ready
  • Ready to review
  • Small self-contained test changes with passing CI
0
Positive
  • Concept approval without objections (darosior)
  • Clarified related edge case will be addressed in a separate PR (darosior)
0 + 11 tests
  • 0 lines added or modified outside tests
  • 11 lines added or modified in tests
  • 0 lines removed in total
  • 1 files, 1 commits
(+)#35957 hebasto ci: Enable Boost.MultiIndex invariant-checking mode
  • Catch subtle corruptions and container inconsistencies early during CI test runs
  • Helps developers detect indexing and memory pool bugs before changes merge
P3 · test coverage
  • P3 because it turns hidden container inconsistencies into explicit CI test failures
  • Improves regression detection for core data structures while remaining deferrable
Ready
  • Ready to review
  • Clean small change with all reviewer questions addressed
0
Strong
  • Positive feedback with earlier CI timeout concerns resolved
  • Excluding the slow fuzz job resolved runtime timeout concerns (fanquake)
  • Approach approval after independently reproducing job execution times (jeanpablojp)
0 + 5 tests
  • 0 lines added or modified outside tests
  • 5 lines added or modified in tests
  • 2 lines removed in total
  • 3 files, 1 commits
(+)#36121 maflcko fuzz: Corpus sharding in parallel runs
  • Parallelize individual fuzz targets across workers by splitting their corpora
  • Prevent single long-running fuzz targets from bottlenecking multi-core test runs
P3 · speedup
  • P3 because it speeds up fuzz test runs by eliminating the bottleneck from the slowest target
  • Breaks aggregated libFuzzer coverage metrics and adds target setup overhead
Ready
  • Ready for review, CI passing and author addressed initial feedback
0
Strong
  • Concept approval and verified speedups on MSan and Windows (jeanpablojp)
  • Concern that sharding fragments libFuzzer output so coverage cannot be compared across runs (jeanpablojp)
  • Concern about storage thrashing and target instantiation overhead on slower disks (jeanpablojp)
0 + 70 tests
  • 0 lines added or modified outside tests
  • 70 lines added or modified in tests
  • 29 lines removed in total
  • 2 files, 2 commits
(+)#35827 arejula27 bench: add index benchmarks
  • Measure realistic block index sync and query performance without requiring a full initial block download
  • Add benchmarks for indexes using blocks with multi-input and multi-output transactions
P3 · test coverage
  • P3 because index benchmarks only test coinbase-only blocks and fail to show scaling behavior
  • Adds shared benchmark coverage for realistic transaction loads
Ready
  • Ready for review
  • All review feedback addressed and CI is clean
0
Strong
  • Concept approval of the overall structure (l0rinc)
  • All inline reviewer questions and feedback resolved by the author
38 + 414 tests
  • 38 lines added or modified outside tests
  • 414 lines added or modified in tests
  • 0 lines removed in total
  • 7 files, 3 commits
(+)#33973 billymcbip test: Improve STRICTENC/DERSIG unit tests in script_tests.json
  • Verify consensus-enforced signature encoding rules independently from standardness policy rules
  • Add negative test cases and clearer documentation for script verification test vectors
P3 · test coverage
  • P3 because testing consensus rules independently from policy rules improves verification granularity
  • Adds useful edge-case coverage to test vectors without fixing an active bug or unblocking broader work
  • Ranking pass: Grouped with the other script_tests.json vector additions of equal consequence.
Author silent
  • Stale because the author has been silent for months with the pull request left in draft status
0
Strong
  • Concept and approach approval to test consensus rules separately from standardness policy (darosior)
  • Retained existing policy tests to preserve coverage per review feedback (darosior)
+48/-9
  • 1 files
  • 1 commits
(+)#32229 Christewart tests: Add unix timestamp tests for OP_CLTV and max mediantimepast tests
  • Ensure consensus locktime rules are validated against median-time-past during block connection
  • Add functional test coverage for boundary conditions near maximum timestamp values
P3 · test coverage
  • P3 because it adds functional regression coverage for existing consensus rules without fixing a bug
  • Unit tests already cover script verification so the safety gain is modest
Ready
  • Ready for review with passing tests
0
Positive
  • Concept approval for adding the test coverage (sedited)
  • Helped clarify the scope of existing unit tests versus functional tests (mabu44)
  • Suggested expanding edge-case coverage and questioned minor parameter edits (sedited)
0 + 107 tests
  • 0 lines added or modified outside tests
  • 107 lines added or modified in tests
  • 7 lines removed in total
  • 2 files, 1 commits
(+)#36073 nervana21 fuzz: Add musig harness
  • Add fuzz testing for MuSig2 cryptographic APIs to exercise error handling and corner cases
  • Protects against regressions in routines that currently lack dedicated unit tests
P3 · test coverage
  • P3 because it adds fuzz coverage for MuSig2 routines that currently lack unit tests
  • MuSig2 is not yet on critical consensus or peer-to-peer hot paths
Ready
  • Ready for review
  • Clean CI and author addressed initial review feedback
0
Strong
  • Strong concept support because it covers MuSig2 signing routines that have no unit tests (jeanpablojp)
  • Technical suggestions to improve reachability were adopted by the author
0 + 211 tests
  • 0 lines added or modified outside tests
  • 211 lines added or modified in tests
  • 0 lines removed in total
  • 2 files, 1 commits
(+)#35762 willcl-ark test: optionally run functional tests via CTest
  • Allow developers to run functional tests alongside unit tests using standard CTest commands
  • Enables test filtering, rerun flags, and native IDE integration for functional test workflows
P3 · new feature
  • P3 because it improves test runner convenience rather than adding critical test coverage
  • Enhances test execution workflows locally without addressing test suite reliability
  • Ranking pass: Lowered: workflow ergonomics only, and reviewers dispute whether the added runner logic is warranted.
Ready
  • Ready to review: CI is passing and the branch is up to date with feedback
0
  • No review verdicts recorded
Mild
  • No approvals yet with reservations about the added complexity (maflcko)
  • Questioned whether adding CMake orchestration is justified over a Python alternative (maflcko)
  • Drawback: CTest execution does not support win64 cross-testing workflows (maflcko)
18 + 431 tests
  • 18 lines added or modified outside tests
  • 431 lines added or modified in tests
  • 45 lines removed in total
  • 9 files, 6 commits
(+)#34360 w0xlt bench: add WalletBalanceManySpent for high-history wallet scenario
  • Benchmark wallet balance calculation performance on wallets with heavy spent output histories
  • Help developers profile and measure optimizations for high-activity wallets like Lightning nodes
P3 · test coverage
  • P3 because it adds dedicated benchmark coverage to profile balance calculation under heavy output load
  • Helps quantify performance improvements for high-activity wallet use cases without touching production code
  • Ranking pass: Lowered substantially: a single wallet benchmark serving one candidate optimization (#27865) is narrower than the other P3 work here.
Needs rebase
  • Review is blocked by merge conflicts and failing CI
0 (+1)
Strong
  • Strong support with no open objections after review suggestions were addressed
  • Formal approval after collaborative refactoring of benchmark utilities (l0rinc)
  • Noted as relevant to evaluating wallet balance improvements in #27865 (fanquake)
+237/-64
  • 3 files
  • 2 commits
(+)#35177 AgusR7 test: use MiniWallet for getblockstats test data generation
  • Allow regenerating getblockstats test data on builds configured without wallet support
  • Fixes test data generation failure when the wallet is disabled
P3 · bug fix
  • P3 because it repairs a test maintenance script rather than normal test execution
  • Unblocks developers regenerating test fixtures when compiling without the wallet
  • Ranking pass: Lowered: real fix (#31838) but only affects the --gen-test-data maintenance path on no-wallet builds, not normal test runs.
Ready
  • Ready to review
  • Cleanly applies with passing CI and all reviewer questions answered
1 (+1)
Strong
  • Verified by testing fixture generation on wallet-disabled builds (theStack)
  • Question about segwit format in the regenerated data addressed by author (sedited)
0 + 188 tests
  • 0 lines added or modified outside tests
  • 188 lines added or modified in tests
  • 179 lines removed in total
  • 2 files, 1 commits
(+)#35417 willcl-ark ci: isolate container test networks
  • Allow developers to run multiple local CI container jobs simultaneously without network address collisions
P3 · test coverage
  • P3 because functional bind tests no longer rely on hardcoded static host IP addresses
  • Enables test execution across non-default network environments without adding new test cases
CI failing
  • CI is failing and the author has been inactive for months
0
Strong
  • Strong overall approval across concept and code
  • Concept approval without detailed technical justification (fanquake)
  • Approved after nits on subnet command and environment variables were addressed (maflcko)
0 + 37 tests
  • 0 lines added or modified outside tests
  • 37 lines added or modified in tests
  • 8 lines removed in total
  • 3 files, 2 commits
(+)#33959 yuvicc test: deduplicate reorg test code
  • Deduplicate reorg test helpers across functional tests into a shared utility
  • Exercise realistic competing-chain reorg code paths instead of artificial block invalidations
P3 · cleanup
  • P3 because it consolidates test utilities and cleans up reorg mechanics without fixing active bugs
  • Makes reorg testing more realistic across several functional test suites
Ready
  • Ready to review
  • Previous reviewer feedback has been addressed and CI is passing cleanly
0
  • No review verdicts recorded
Neutral
  • Advised dropping the separate generator abstraction to keep only the helper (instagibbs)
  • Author simplified the PR accordingly and is awaiting re-review (instagibbs)
+104/-90
  • 13 files
  • 2 commits
(+)#36109 l0rinc test: harden arbitrary-parent block creation
  • Ensure test utilities safely construct valid blocks when building on arbitrary parent blocks
  • Prevent future fork tests from silently generating invalid blocks at low heights or across halvings
P3 · cleanup
  • P3 because it is internal hardening for test utilities rather than a fix for broken tests
  • Benefit is preventative leverage for developers writing new fork-block test scenarios
  • Existing test callers already worked around these edge cases locally
Waiting on author
  • Reviewable now to weigh in on open design questions while waiting on an author reply
0
Positive
  • Overall positive sentiment with testing and improvement suggestions
  • Concept approval after testing each commit locally against master (jeanpablojp)
  • Suggested disabling mempool on template calls to avoid dropping transaction fees (jeanpablojp)
  • Provided test fixtures to cover target recalculation and coinbase padding (jeanpablojp)
0 + 32 tests
  • 0 lines added or modified outside tests
  • 32 lines added or modified in tests
  • 15 lines removed in total
  • 3 files, 4 commits
(+)#36024 hebasto ci: Make `test_bitcoin-qt.exe` output visible
  • Make Qt unit test output and failure messages visible in Windows CI runs
  • Helps developers diagnose GUI test failures that are currently suppressed by the runner
P3 · test coverage
  • P3 because it makes unit test execution and error reporting observable in CI
  • Impact is limited to test observability on Windows runners without adding new coverage
Ready
  • Ready for review
  • Small patch with passing CI
0
  • No review verdicts recorded
Crickets
  • No reviews or feedback yet
2
  • 2 lines added or modified outside tests
  • 0 lines added or modified in tests
  • 0 lines removed in total
  • 2 files, 1 commits
(+)#36087 maflcko util: Add and use AssertUnreachable
  • Provide a dedicated unreachable assertion to resolve assertion ambiguity and silence compiler warnings
  • Prevent undefined behavior across the codebase from future std::unreachable usage
P4 · test coverage
  • P4 because the added linters only enforce the new macro and block std::unreachable
  • Minor internal test checks with no broader testing leverage
Needs rebase
  • Needs rebase and CI is failing
  • Author is reworking to fix consensus library decoupling before taking out of draft
0
  • No review verdicts recorded
Mild
  • No reviewers have formally approved the concept yet
  • Unaddressed objection: breaks standalone consensus library build (jeanpablojp)
  • Author agreed to fix the consensus library dependency before readying the PR (maflcko)
368 + 422 tests
  • 368 lines added or modified outside tests
  • 422 lines added or modified in tests
  • 546 lines removed in total
  • 312 files, 7 commits
(+)#35686 Sjors lint: have git-subtree-check check for backportability
  • Check that subtree updates stack cleanly on previous subtree merges
  • Let maintainers backport subtree fixes verbatim without redundant reviews
P4 · cleanup
  • P4 because it is a narrow workflow enhancement for subtree updates
  • Affects only maintainers updating external subtrees rather than general CI runs
  • Ranking pass: Top of P4: the linter prevents a concrete recurring maintainer cost on subtree backports, unlike the purely cosmetic items below.
Ready
  • Ready to review
  • CI is passing and earlier review comments are addressed
2Strong
  • Strong support with earlier questions about backport necessity resolved
  • Approved because documenting and enforcing this saves reviewer effort (ryanofsky)
  • Verified by testing passing and failing test cases (BrandonOdiwuor)
9 + 66 tests
  • 9 lines added or modified outside tests
  • 66 lines added or modified in tests
  • 20 lines removed in total
  • 4 files, 2 commits
(+)#35619 rkrux test: ExtendedPrivateKey follow-ups
  • Make functional tests more consistent and easier to maintain by unifying test setup patterns
  • Replace manual key derivations in descriptor tests with a shared test helper
P4 · cleanup
  • P4 because it is a routine cleanup that does not fix flaky tests or improve CI signal
  • Standardizing boilerplate and reusing existing test helpers provides minor maintenance benefit
Ready
  • Ready for review
  • Small change with passing CI and addressed feedback
1Strong
  • Strong support with previous feedback addressed
  • Supported standardizing the pattern for suppressing default wallet creation (maflcko)
  • Approved after review comments were addressed (davidgumberg)
0 + 18 tests
  • 0 lines added or modified outside tests
  • 18 lines added or modified in tests
  • 24 lines removed in total
  • 4 files, 2 commits
(+)#36185 fametrano test: add BIP32 vectors 3 and 4 to the extendedkey self-test
  • Verify BIP32 extended key derivation with leading zeros in functional test helpers
  • Ensure test framework code handles derivation corner cases properly
P4 · test coverage
  • P4 because it adds standard BIP32 test vectors to an internal test helper
  • Adds marginal coverage for edge cases without fixing an active bug or enabling new work
Ready
  • Ready for review
  • Small self-contained test addition with passing checks
0
  • No review verdicts recorded
Crickets
  • No reviews or comments yet
  • Awaiting initial review
0 + 15 tests
  • 0 lines added or modified outside tests
  • 15 lines added or modified in tests
  • 0 lines removed in total
  • 1 files, 1 commits
(+)#36224 nebula-21 test: Add test coverage for `PartiallySignedTransaction::Merge()`
  • Pins down edge-case PSBT merging behavior with unit tests to prevent silent regressions
P4 · test coverage
  • P4 because adding coverage for PSBT merging logic does not touch consensus, mempool, or network relay
  • Protects an isolated data structure against mutants without addressing high-risk failure modes
Ready
  • Ready for review: the change is small, self-contained, and passes CI cleanly
0
  • No review verdicts recorded
Crickets
  • No reviews or comments have been posted yet
  • Author raised an open question on whether conflicting fallback locktimes should fail explicitly
0 + 86 tests
  • 0 lines added or modified outside tests
  • 86 lines added or modified in tests
  • 0 lines removed in total
  • 1 files, 3 commits
(+)#35342 kevkevinpal test: fuzz wallet_rpc target
  • Fuzz wallet RPC commands with randomized arguments to catch crashes and assertions from malformed input
  • Adds automated fuzz testing where wallet RPC methods currently have zero coverage on OSS-Fuzz
P4 · test coverage
  • P4 after comparing with the other PRs here (assessed alone as P3): Lowered to P4: reviewers state fuzzing wallet RPCs without chain state or UTXOs has very low efficacy, so the coverage claim is weakly supported compared with the P3 fuzz harnesses here.
  • P3 because fuzzing RPCs without simulated chain state or UTXOs yields limited meaningful coverage
  • Adds automated fuzz coverage for wallet RPCs but provides marginal depth without context
Author silent
  • Reviewing now is unlikely to be worthwhile while the author is silent following approach objections
0 -1
Blocked
  • Approach NACK because stateless fuzzing without context yields minimal test value (brunoerg)
  • Concerns that chaining RPCs harms performance and creates an intractable search space (maflcko, brunoerg)
  • Author has been silent after asking about alternative approaches
0 + 530 tests
  • 0 lines added or modified outside tests
  • 530 lines added or modified in tests
  • 176 lines removed in total
  • 6 files, 2 commits
(+)#36257 hodlinator qa: assert_equals -> assert_true/assert_false
  • Make boolean checks in functional tests clearer and more readable for developers
P4 · cleanup
  • P4 because it is a cosmetic cleanup with no change to test coverage or behavior
  • Provides only a minor readability gain when reading test assertions
  • Does not fix flakes or improve test execution speed
Ready
  • Ready to review; changes are clean and CI is passing
0
  • No review verdicts recorded
Neutral
  • Neutral overall with no explicit approvals
  • Resolved a correctness issue around strict boolean checking (l0rinc)
  • Unconvinced the motivation warrants the change, but has no objection (maflcko)
0 + 637 tests
  • 0 lines added or modified outside tests
  • 637 lines added or modified in tests
  • 511 lines removed in total
  • 93 files, 5 commits
(+)#35994 purpleKarrot Primitives: Combine assignments
  • Help developers replace procedural member mutation with declarative constructors across tests and tools
  • Paves the way toward making core transaction primitives immutable
P4 · cleanup
  • P4 because cleanup across test files is speculative and introduced bugs like dropped witness data
  • Author prefers doing manual test rewrites rather than relying on this automated cleanup
Needs rebase
  • Needs rebase, CI is failing, and author expressed preference to abandon rather than merge
0Mild
  • General support for declarative setup in principle, but implementation has bugs and unwanted annotations
  • Concept approval without stated reasons, noting unclear naming (l0rinc)
  • Concerned intrusive macro annotations pollute core headers (maflcko)
  • Automated rewrite erroneously dropped witness data in test helpers (alexanderwiederin)
  • Author leans toward manual rewrites instead of merging this PR (purpleKarrot)
22 + 372 tests
  • 22 lines added or modified outside tests
  • 372 lines added or modified in tests
  • 366 lines removed in total
  • 42 files, 8 commits
(+)#35395 hebasto doc: Improve test suite dependencies documentation
  • Consolidate functional test dependency instructions into a central reference to fix discrepancies across OS docs
  • Helps contributors set up test suite dependencies reliably across different platforms
P4 · cleanup
  • P4 because it only updates test prerequisite documentation
  • Does not modify test execution, harnesses, or test framework scripts
Ready
  • Ready to review: merges cleanly, CI passes, and previous feedback has been addressed
0 (+1)
Mild
  • General support for unifying optional test dependency instructions
  • Resolved objection about lost package names by adding a cross-platform package table (fanquake, maflcko)
  • Concept approval without stated reasons (l0rinc)
10 + 30 tests
  • 10 lines added or modified outside tests
  • 30 lines added or modified in tests
  • 67 lines removed in total
  • 7 files, 3 commits
(+)#35997 yancyribbens refactor: bench: make_hard_case to find a solution
  • Make the coin selection exhaustion benchmark use realistic target and UTXO amounts
  • Ensure the benchmark verifies a valid solution is found when reaching the search limit
P4 · cleanup
  • P4 because it only adjusts parameters and assertions in an isolated microbenchmark
  • Does not fix test flakiness or improve shared test framework infrastructure
Ready
  • Ready to review
  • Small, self-contained change with passing CI
0
Positive
  • Verified that benchmark reaches evaluation limits with proper assertions (Dontbyshai)
  • Minor follow-up adjustment to parameter realism has no objections
0 + 11 tests
  • 0 lines added or modified outside tests
  • 11 lines added or modified in tests
  • 6 lines removed in total
  • 1 files, 1 commits
(+)#36074 maflcko scripted-diff: [test] Add util/check.h includes for assertions
  • Clarify assertion header usage across test and fuzz harnesses to prevent ambiguity around disabled checks
  • Make automated header analysis tooling easier to run across tests
P4 · cleanup
  • P4 because this is a mechanical header cleanup across test files with no change to logic or coverage
  • Benefits maintainers running automated header analysis tools like Include What You Use
Needs rebase
  • Needs rebase across many conflicting PRs, and author noted merge friction may prevent landing
0
  • No review verdicts recorded
Positive
  • General support for systematically cleaning up assertion headers in test files (l0rinc)
  • Assisted with scripted-diff regex matching and test runner paths (jeanpablojp)
12 + 329 tests
  • 12 lines added or modified outside tests
  • 329 lines added or modified in tests
  • 225 lines removed in total
  • 155 files, 3 commits
(+)#36184 fametrano test: fix TaprootSignatureMsg default codeseparator_pos
  • Stop a taproot test helper from raising an exception when callers omit optional arguments
  • Prevents errors for developers writing new functional tests that rely on helper defaults
P4 · bug fix
  • P4 because it fixes a broken default argument in a test helper that has no in-tree callers
  • Only affects future test authors writing new script-path test cases
Ready
  • Ready to review
0
  • No review verdicts recorded
Mild
  • Questioned whether enforcing explicit parameters with an exception or None is preferable (maflcko)
  • Suggests using None or closing the PR (maflcko)
  • Author has not yet responded to the latest objection
0 + 1 tests
  • 0 lines added or modified outside tests
  • 1 lines added or modified in tests
  • 1 lines removed in total
  • 1 files, 1 commits
(+)#35442 rkrux test: remove usages of MAX_BIP125_RBF_SEQUENCE constant from functional tests
  • Align test framework helpers with current mempool policies as opt-in RBF signaling is phased out
  • Cleans up outdated BIP 125 sequence constants across functional tests for test maintainers
P4 · cleanup
  • P4 because this is a minor test cleanup removing an unused test framework constant
  • Does not fix test flakiness or expand test coverage
  • Ranking pass: Lowered: only two of thirteen commits belong to it, it depends on unmerged base PRs, and reviewers question whether it should exist separately.
Needs rebase
  • Review #35405 and #35433 first
  • Needs rebase due to merge conflicts and author has been inactive for over 90 days
0
  • No review verdicts recorded
Crickets
  • No reviews or approvals yet
  • Suggested folding this small test fixup directly into the parent pull request (maflcko)
73 + 327 tests
  • 73 lines added or modified outside tests
  • 327 lines added or modified in tests
  • 310 lines removed in total
  • 18 files, 13 commits
(+)#32409 hebasto test: Introduce `SUPPRESS_ABORT_MESSAGE` environment variable
  • Prevent MSVC debug test runs from hanging on assertion popup dialogs in automated setups
  • Helps developers and external automation running unattended Windows debug builds
P4 · test coverage
  • P4 because the suppression variable is never enabled within the repository
  • Offers no benefit to in-tree test runs unless external environments set the variable
  • Ranking pass: Placed last: the variable is set nowhere in-tree, MSVC debug builds are not used in CI, and the change is NACKed as unused code.
Author silent
  • Author has been silent for months with questions unanswered on whether the change is obsolete
0 -1
Blocked
  • Objection because the environment variable is undocumented and unused in the repository (fanquake)
  • Suggested suppressing aborts unconditionally rather than adding an unused variable (hodlinator, sedited)
  • Questioned if runtime transitions already made this obsolete, with no author reply (fanquake)
0 + 17 tests
  • 0 lines added or modified outside tests
  • 17 lines added or modified in tests
  • 0 lines removed in total
  • 1 files, 1 commits
Reviewability: ReadyStalePaused
Agreement: StrongPositivePositive w/ caveatsNeutralMildDisputedBlockedCrickets
Reviews: current code-review ACKs, then (+stale ACKs) and -NACKs; greener = more ACKs.
Size: lines added or modified outside tests, then in tests; greener = smaller.
Ranking pass (2026-09-17): all PRs here were compared with each other; 23 notes on review order, overlaps, and band changes.

Covers

The machinery of testing rather than tests of a particular area: the functional test framework and runner, unit test utilities, the fuzzing harnesses and corpora, benchmarks, linters, sanitizer configuration, and fixes for flaky tests whose cause is in the framework. A test that pins the behavior of one area (a wallet migration test, a p2p relay test) belongs to that area, not here. The Tests and Fuzzing labels are a prior, but a labeled PR whose tests are about one area goes to that area instead.

What matters here

Signal first: fixes for flaky or misleading tests, since a red CI that nobody trusts hides real failures. Then coverage of high-risk code paths that the fuzzers or functional tests do not reach, especially consensus, mempool policy, and p2p message handling. Then framework capabilities that unblock tests other areas need. Then test speed, which every contributor pays for on every run. Then cleanliness of the test code.

Adding tests for their own sake ranks low; adding a test that catches a realistic regression ranks high.

generated 2026-09-17 21:55 UTC