(+) #36437 instagibbs orphanage: Fix orphan reconsideration disconnect hole, add 1p1c invariant harness P1 · test coverage Ready 1 Strong 21 + 619 tests Prevent orphan transactions from getting stranded when an announcing peer disconnects or is evicted Ensure CPFP child transactions relay reliably instead of being stalled out of the mempool P1 after comparing with the other PRs here (assessed alone as P2): Raised to P1: the harness found a real relay liveness bug from an empty corpus and unblocks follow-up hole fixes in #36506 — end-to-end p2p+validation fuzzing is the highest-value coverage gap here. P2 because it adds an end-to-end fuzz target driving P2P message handling with real validation Finds the orphan liveness bug from an empty corpus within an hour and unblocks follow-up testing Ready to review; nothing known that would invalidate a review Serves as the base for follow-up PR #36506 Strong support with no open objections Verified by reproducing the disconnect hole end-to-end and checking iterator safety (fametrano) Concept approval without stated reasons (w0xlt) 21 lines added or modified outside tests 619 lines added or modified in tests 10 lines removed in total 6 files, 2 commits (+) #36618 maflcko test: Wait for index sync in all tests P2 · bug fix Ready 1 Strong 0 + 41 tests Prevent intermittent test flakes caused by races between background indices and test operations Automatically wait for enabled indices on node startup and sync instead of requiring manual waits P2 because it fixes intermittent test failures caused by races with unsynced background indices Centralizing index synchronization improves functional test reliability and eliminates boilerplate Substantive support with no open objections Concept approval because it cleans up tests with no performance impact (ViniciusCestarii) Coverage objection withdrawn after author clarified test behavior (ViniciusCestarii) Confirmed the test failure reproducer and asked whether the first commit is needed (hebasto) 0 lines added or modified outside tests 41 lines added or modified in tests 71 lines removed in total 18 files, 2 commits (+) #36408 fametrano test: allow 3 bytes of fee overestimate in assert_fee_amount P2 · bug fix Ready 1 Strong 0 + 3 tests Prevent intermittent CI failures in wallet functional tests Avoid false test failures when rare short signatures cause three bytes of fee overestimation P2 because it fixes a recurring source of intermittent CI test failures Resolves false-positive failures in wallet tests without weakening assertions beyond rare signature variance Strong support with no open objections Verified by artificially forcing a three-byte overestimate to confirm tests pass (Ayoazeez26) 0 lines added or modified outside tests 3 lines added or modified in tests 2 lines removed in total 1 files, 1 commits (+) #36635 fametrano fuzz: Add a target that feeds arbitrary bytes to V2Transport P2 · test coverage Ready 0 Crickets 0 + 102 tests Fuzz test BIP 324 transport message reception with arbitrary and malformed byte streams Ensure post-handshake receive state transitions and error handling withstand hostile peer traffic P2 because it adds fuzz coverage for high-risk P2P message handling paths fuzzers currently miss Exercises BIP 324 receive states and error handling against hostile peer traffic past the handshake No review verdicts recorded No substantive comments either way yet Addressed suggestions to assert session ID and test the rekey interval with decoys (uqlidi) Awaiting follow-up review on the updated changes (uqlidi) 0 lines added or modified outside tests 102 lines added or modified in tests 0 lines removed in total 1 files, 1 commits (+) #36587 hebasto qa: Fix `interface_ipc*.py` on NetBSD and prevent future regressions P2 · bug fix Ready 0 Blocked 0 + 59 tests Fix interface IPC functional test failures on NetBSD Catch file descriptor budget regressions in per-PR CI rather than waiting for nightly runs P2 after comparing with the other PRs here (assessed alone as P3): Raised to P2 for consistency with #36408 : both fix recurring real test failures, and this one also adds CI enforcement so the FD-budget regression is caught per-PR. P3 because it fixes recurring functional test failures under NetBSD's low FD limits Restores clean test runs on NetBSD by adjusting IPC test connection overhead Concept approval without stated reasons (Sjors) Unaddressed objection: wrapper script loses coverage for infinite file descriptors (Sjors) Suggested setting pipefail and nounset in the wrapper script (maflcko) 0 lines added or modified outside tests 59 lines added or modified in tests 14 lines removed in total 5 files, 3 commits (+) #35000 ismaelsadeeq test: Add block validation unit tests P2 · test coverage Ready 0 (+1) Strong 0 + 1,384 tests Catch consensus validation regressions by adding unit tests for block validation failure modes Help developers safely refactor validation logic with reusable test fixtures across entry points P2 because it adds unit coverage for consensus failure modes across multiple validation entry points Prevents subtle validation regressions from slipping through during validation refactoring Reviewing now is worthwhile with nothing known that would invalidate a review Strong support for covering consensus failure modes across validation entry points (sedited) Approval of the unit test suite and concept (w0xlt) Supported the unit tests after redundant fuzz harness was removed (marcofleon) Open suggestions on declarative test structuring and extra test cases (sedited) 0 lines added or modified outside tests 1,384 lines added or modified in tests 0 lines removed in total 8 files, 3 commits (+) #35713 rustaceanrob Remove boost as a unit test runner P2 · cleanup Ready 0 Mild 3 + 1,433 tests Eliminate external Boost.Test dependencies and packaging overhead for unit tests Provide clearer failure diagnostics for test authors via automatic expression decomposition Make unit tests easier to run, maintain, and integrate with development tooling P2 because replacing Boost.Test with an in-tree runner fulfills a long-standing project goal Expression decomposition automatically reports operand values during assertion failures An in-house framework removes friction for test authors and enables future test concurrency Ready for review The latest push addressing string formatting and macros is ready for reviewer feedback Concept approval because an in-house runner lowers test barriers and enables CI concurrency (josibake) Concept approval after verifying the test suite passes and scripted diffs reproduce (jeanpablojp) Answered objection regarding static assertions for unprintable optionals awaits reviewer reply (jeanpablojp) Open question on whether failure-path tests for the framework belong in a follow-up (jeanpablojp) 3 lines added or modified outside tests 1,433 lines added or modified in tests 218 lines removed in total 167 files, 9 commits (+) #35774 willcl-ark ci: test cross-built macos arm64 binaries P2 · test coverage Ready 0 Strong 127 Catch platform-specific runtime defects before release by testing cross-built macOS arm64 binaries in CI P2 because it extends unit test execution to native macOS arm64 hardware Provides test coverage to catch realistic platform-specific runtime crashes Ready for review following recent rebase Concept support to test release-like cross-built macOS binaries natively in CI (fanquake) Resolved prior questions regarding determinism, environment setup, and cache usage (maflcko) 127 lines added or modified outside tests 0 lines added or modified in tests 6 lines removed in total 3 files, 3 commits (+) #36082 willcl-ark ci: add Guix builds to CI P2 · test coverage Ready 0 Strong 399 + 11 tests Test Guix release binaries continuously in CI instead of waiting for manual builds or release time Catch broken build manifests, codesign dependencies, and toolchain bugs before changes merge P2 after comparing with the other PRs here (assessed alone as P3): Raised to P2 to match #35774 : both close the gap of release-like binaries never being exercised by CI, and this one covers all three platforms plus codesign environments. P3 because running the existing test suite on Guix binaries verifies release package behavior Drives existing test machinery on release archives rather than expanding test framework capabilities Reviewing now is worthwhile with no blocking issues Strong support for catching build and release issues early in CI (fanquake) Concept approval without stated reasons (sedited) Withdrew objections after author agreed to drop the problematic commit (hebasto) Confirmed no objection after suggesting running tests on the binaries (maflcko) 399 lines added or modified outside tests 11 lines added or modified in tests 2 lines removed in total 7 files, 6 commits (+) #36129 HowHsu fuzz: reset chainman after external block imports P3 · bug fix Ready 0 Crickets 0 + 23 tests Prevent fuzz iteration state contamination in external block file fuzzing Fixes non-reproducible fuzz crashes and order-dependent test coverage P3 because it fixes state contamination causing non-reproducible fuzz crashes Benefit is isolated to a single fuzz target No review verdicts recorded No substantive reviews or comments yet Question asked about using a dirty-guard for performance (maflcko) 0 lines added or modified outside tests 23 lines added or modified in tests 2 lines removed in total 1 files, 1 commits (+) #31349 vasild ci: detect outbound internet traffic generated while running tests P3 · test coverage Author silent 136d 1 (+2) Mild 0 + 77 tests Prevent tests in CI from making unexpected outbound internet connections or leaking DNS queries Keep test runs hermetic to avoid leaking environment data or causing flakiness P3 because it ensures isolation across all test suites by catching leaked packets and DNS requests Adds valuable leak detection but is non-critical and deferrable Author has been inactive for 98 days Review may wait on the author to address open feedback Broad concept approval with multiple tested ACKs for blocking network leaks (0xB10C, Sjors, fjahr) Code review approval on the latest revision (ryanofsky) Unaddressed objection: packet direction flag is a no-op when reading capture files (fjahr) Thinks the direction flag bug is harmless and would be good to address (ryanofsky) 0 lines added or modified outside tests 77 lines added or modified in tests 2 lines removed in total 6 files, 1 commits (+) #36699 azuchi test: strengthen the tapscript CHECKMULTISIG asset tests and dump the expected error P3 · test coverage Ready 0 Crickets 0 + 19 tests Ensure tapscript test vectors fail specifically from banned opcodes rather than signature errors Require script asset tests to verify the exact expected failure reason instead of generic failure P3 because it closes a blind spot where broken tapscript implementations passed test vectors Ensures test suites catch consensus violations that were previously masked by unrelated errors Ranking pass: Moved up: this is a misleading-test fix (asset tests passed for an implementation that runs CHECKMULTISIG in tapscript), which the category ranks above plain added coverage. No review verdicts recorded No substantive discussion or review comments yet A reviewer was pinged to take a look (fanquake) 0 lines added or modified outside tests 19 lines added or modified in tests 1 lines removed in total 2 files, 1 commits (+) #33954 mzumsande test: add functional test for outbound connection management P3 · test coverage Waiting on author 0 (+2) Strong 0 + 398 tests Add functional test coverage for autonomous outbound connection decisions made by bitcoind Enable end-to-end testing of stale tip peers, block-relay rotations, and network diversification P3 because it generalizes proxy redirection in the test framework for autonomous outbound connections Deduplicates custom proxy logic across tests and provides a reusable harness for P2P testing Ready to review now because rebase conflicts with master are mechanical Substantive support after running functional tests locally without failures (vasild, Bortlesboat) Concept approval without stated reasons (0xB10C) Unresolved question on whether network connection timing could cause test timeouts (vasild) Open suggestions to pass address data to the factory and clarify a magic number (vasild, Bortlesboat) 0 lines added or modified outside tests 398 lines added or modified in tests 102 lines removed in total 4 files, 3 commits (+) #36068 brunoerg fuzz: reuse one fuzzed wallet across inputs P3 · speedup Ready 2 Strong 19 + 124 tests Speed up wallet fuzz testing by avoiding repetitive wallet construction across iterations Eliminates heavy key derivation and descriptor setup overhead during fuzz runs P3 because it speeds up wallet fuzzing throughput by 4x to 6x Wallet fuzzers can test more inputs in less time by avoiding repeated setup Verified speedup with qa-assets corpus showing roughly a 4x improvement (jeanpablojp) Confirmed harness performance improvement through testing (frankomosh) Approves noting that stability impact is acceptable (maflcko) Earlier concerns about descriptor drift and leak reporting were fixed (jeanpablojp, frankomosh) 19 lines added or modified outside tests 124 lines added or modified in tests 17 lines removed in total 4 files, 2 commits (+) #34969 brunoerg fuzz: several improvements to scriptpubkeyman harness P3 · speedup Author silent 74d 0 Strong 0 + 71 tests Speed up the scriptpubkeyman fuzz harness to improve test throughput and coverage Prevent fuzz runs from aborting prematurely when wallet descriptor updates fail P3 because it delivers a three to ten times speedup for an existing slow fuzz harness Fixes premature execution termination to enable deeper fuzz exploration Strong support with verified benchmark speedups and no remaining objections Verified benchmark speedup from roughly 39 to 385 executions per second (andrewtoth) Concept approval for fixing the early return and moving heavy work out of hot paths (pablomartin4btc) Resolved concerns about weakened assertions by restoring checks outside the loop (maflcko, pablomartin4btc) 0 lines added or modified outside tests 71 lines added or modified in tests 86 lines removed in total 3 files, 7 commits (+) #35139 maflcko test: Add thread-safe fast-failing test macros P3 · cleanup Author silent 73d 0 Positive 0 + 337 tests Add thread-safe and fail-fast test assertion macros that can be reused across unit and fuzz tests Catch mixed-signedness comparisons at compile time and reduce cascading failure log noise in CI P3 because this improves test infrastructure with thread safety under TSAN and compile-time checks Modernizes assertions and reduces CI log noise rather than fixing an urgent failure Ranking pass: Placed below the fuzz-throughput and signal fixes; it is framework capability whose payoff mostly lands with the Boost-runner migration. Concept approval without stated reasons (sedited) Withdrew concern about losing debug context after CI log truncation examples were shown (sedited) 0 lines added or modified outside tests 337 lines added or modified in tests 162 lines removed in total 4 files, 4 commits (+) #36091 rustaceanrob test: Add debug output to common tested types P3 · cleanup Waiting on author 1 (+2) Strong 0 + 384 tests Make unit test failures print mismatched values instead of bare booleans Speed up debugging for developers when test assertions fail on common types P3 because it improves failure diagnostics for developers across 15 unit test suites P3 because it enables a test framework migration without fixing flaky tests or coverage gaps Ranking pass: Moved up: failure diagnostics plus preparation for the #35713 runner migration give it more leverage than standalone coverage additions. Strong support with multiple substantive reviews and test verification Verified by rebuilding and running the unit test suite (jeanpablojp) Supports test cleanup and framework replacement effort (ismaelsadeeq) Prior objections on missing fields, recompilations, and aborts resolved (jeanpablojp) Open suggestion to convert newly added assertion call sites (sedited) 0 lines added or modified outside tests 384 lines added or modified in tests 169 lines removed in total 18 files, 2 commits (+) #36627 willcl-ark tracing: run USDT tests without BPF privileges P3 · cleanup Ready 0 Strong 18 + 395 tests Run USDT tracepoint functional tests without requiring root permissions, BCC, or matching kernel headers Make tracepoint tests easier for developers to run locally while dropping privileged mode in CI P3 because running USDT tests locally without root or kernel headers is a clear developer improvement It eliminates heavy tracing dependencies and removes over 600 lines of test code USDT testing remains a specialized developer workflow, so the cleanup is deferrable Substantive support for simplifying USDT testing by testing Core directly instead of BCC (0xB10C) Concept approval without stated reasons (fanquake) Questions on aarch64 compatibility and relation to broader tracing issues (0xB10C, maflcko) Minor suggestions on CI comments and test configurations (maflcko) 18 lines added or modified outside tests 395 lines added or modified in tests 1,073 lines removed in total 12 files, 2 commits (+) #35762 willcl-ark test: optionally run functional tests via CTest P3 · new feature Waiting on author 1 Strong 14 + 233 tests Run Python functional tests directly through CTest alongside unit tests Enable fine-grained test filtering, parallel scheduling, and CDash dashboard reporting for developers P3 because it expands runner execution options without changing test coverage or assertions Helps developers schedule unit and functional suites together and prevents concurrent temp dir collisions Ready to review now Needs rebase due to conflicts with master, but the rebase is mechanical Strong support for CMake integration and fine-grained test control (BrandonOdiwuor) Verified test discovery, execution, fixtures, and CDash submission on Ubuntu (BrandonOdiwuor) Concerns about CMake complexity, CI duplication, and win64 cross testing answered (maflcko) Unanswered suggestion to rebase on PR 35846 for improved error handling (maflcko) 14 lines added or modified outside tests 233 lines added or modified in tests 36 lines removed in total 8 files, 6 commits (+) #35356 maflcko ci: Test build dir with spaces P3 · test coverage Author silent 76d 0 Mild 13 Catch path-quoting and subprocess bugs on Windows by testing builds in directory paths with spaces P3 because it expands test harness coverage on Windows to paths with spaces Directly catches subprocess invocation issues across functional tests CI is failing, check whether the failure is caused by this PR before conducting a deep review Concept approval without stated reasons (hebasto) Objection: wallet_signer functional test fails on Windows paths with spaces (fanquake) Author noted the failure is an expected reproduction of an existing bug, awaiting objector reply 13 lines added or modified outside tests 0 lines added or modified in tests 4 lines removed in total 1 files, 2 commits (+) #36631 brunoerg fuzz: add a custom mutator for PSBT P3 · test coverage Ready 0 Blocked 11 + 559 tests Help fuzz testing explore deeper PSBT deserialization paths instead of failing on early checks Prevents byte-level mutations from being rejected before reaching complex per-field parsing logic P3 because it improves fuzz coverage for PSBT parsing rather than critical consensus or P2P surfaces Deep parser exploration improves robustness against malformed data but is reasonably deferrable Ranking pass: Moved up: a reusable custom-mutator hook is framework capability, not just one more target. No review verdicts recorded Blocking objection: breaks afl++ fuzzing in OSS-Fuzz due to an assertion failure (ekzyis) Resolved question: confirmed intended key erasure behavior when the default mutator returns zero (ekzyis) 11 lines added or modified outside tests 559 lines added or modified in tests 3 lines removed in total 7 files, 2 commits (+) #35964 laxmanacharya8 fuzz: add coverage for GetQueryParameterFromUri P3 · test coverage Ready 0 (+1) Positive 0 + 25 tests Add fuzz coverage for parsing remote unauthenticated REST query parameters Detects parsing anomalies and crashes on malformed URI inputs P3 because it adds fuzz coverage for parsing unauthenticated remote REST query strings It improves parser robustness but does not touch consensus, mempool, or P2P logic Concept approval without stated reasons (nervana21) Verified by testing the updated fuzz target (nervana21) Resolved objection: harness did not prove keys after fragment delimiters are ignored (nervana21) 0 lines added or modified outside tests 25 lines added or modified in tests 0 lines removed in total 1 files, 1 commits (+) #36073 nervana21 fuzz: Add musig harness P3 · test coverage Ready 0 Strong 0 + 227 tests Add dedicated fuzz testing coverage for MuSig module wrapper APIs Exercises key aggregation, nonce generation, and signing fail paths against malformed inputs P3 because it adds fuzz coverage for MuSig signing and aggregation APIs that lacked unit tests Exercises input validation and edge cases against malformed inputs in cryptographic wrappers Ready for review Nothing known that would invalidate a review now Substantive support with no open objections Concept approval because the signing functions currently have no unit tests (jeanpablojp) Concept approval without stated reasons (brunoerg) Resolved an abort on random secnonces that broke oss-fuzz runs (jeanpablojp) 0 lines added or modified outside tests 227 lines added or modified in tests 0 lines removed in total 2 files, 1 commits (+) #36254 0xB10C bench: add and use undo-data for BlockToJsonVerbosity3 bench P3 · test coverage Ready 1 Strong 0 + 21 tests Make the blockToJSON verbosity 3 benchmark accurately measure performance by including block undo data Prevents verbosity 3 benchmarks from performing identical work to verbosity 2 without exercising prevouts P3 because it fixes an inaccurate benchmark harness to reflect true runtime performance Ensures the benchmark actually exercises undo data reading, fee calculation, and prevout serialization Strong support with no open objections Verified by reproducing benchmark results and checking the undo data blob (ismaelsadeeq) 0 lines added or modified outside tests 21 lines added or modified in tests 0 lines removed in total 3 files, 1 commits (+) #32554 l0rinc bench: replace embedded raw block with configurable block generator P3 · test coverage Ready 0 Strong 0 + 579 tests Allow benchmarks to test modern SegWit and Taproot workloads instead of an outdated 2016 pre-SegWit block Enable block-to-JSON serialization benchmarks to exercise input fee and prevout paths with synthetic undo data P3 because it enables benchmarking modern SegWit and Taproot workloads instead of an obsolete 2016 block Valuable and extensible improvement to benchmark infrastructure, but reasonably deferrable Ranking pass: Moved down to sit just after #36254 , which fixes the same misleading verbosity-3 benchmark with far less machinery; the generator is the broader but more deferrable option. Strong support for replacing the obsolete pre-SegWit block fixture (hodlinator, Raimo33, 0xB10C) Support because it enables testing modern workloads and saves repository space (yuvicc, 0xB10C) Resolved concern: block generator exceeding size limits on large scripts was fixed with sanity tests (hodlinator) Concept approval without stated reasons (laanwj) 0 lines added or modified outside tests 579 lines added or modified in tests 53 lines removed in total 10 files, 4 commits (+) #33959 yuvicc test: deduplicate reorg test code P3 · cleanup Ready 0 Crickets 0 + 104 tests Deduplicate reorg helper code across functional tests into the shared test framework Switch reorg tests from using invalidateblock to realistic competing-chain reorgs P3 because it consolidates copy-pasted reorg helpers across functional tests Exercises realistic reorg code paths instead of bypassing them via invalidateblock Ranking pass: Moved down: de-duplication plus more realistic reorg paths is valuable but ranks below coverage of high-risk code and framework capability. No review verdicts recorded No substantive support or objection yet Author simplified changes to avoid overengineering per reviewer feedback (instagibbs) Minor open suggestions on stale comments and subscript cleanup (instagibbs) 0 lines added or modified outside tests 104 lines added or modified in tests 90 lines removed in total 13 files, 2 commits (+) #36109 l0rinc test: fix coinbases built on arbitrary parents P3 · cleanup Ready 0 Strong 0 + 63 tests Prevent future unit tests from creating invalid fork blocks when attaching templates to arbitrary parents Ensure rebuilt test blocks correctly set work targets, subsidies, and minimum coinbase script lengths P3 because it hardens test block creation utilities against edge cases rather than fixing active failures Existing callers work around these boundary conditions, so no tests currently fail on master Concept approval after building commits and running before-and-after unit test comparisons (jeanpablojp) Resolved objections on dropped mempool transaction fees and missing test coverage (jeanpablojp) 0 lines added or modified outside tests 63 lines added or modified in tests 15 lines removed in total 3 files, 5 commits (+) #35827 arejula27 bench: add index benchmarks P3 · test coverage Ready 0 Strong 38 + 412 tests Let developers benchmark index performance in under a minute without running a full initial block download Add coverage for measuring index scaling across transaction counts and distinct outputs P3 because it provides useful tooling for profiling index optimizations but is reasonably deferrable Developers can measure index changes rapidly rather than running an entire initial block download Ranking pass: Moved down into the benchmark cluster; no test currently fails and the benefit is profiling convenience. Ready to review Nothing is known that would invalidate review now Substantive support with no open objections Concept approval for the new index benchmark structure (l0rinc) Addressed concern: measurement distortion from locking inside the measured loop (l0rinc) Addressed concern: memory caching masking disk performance during benchmarks (l0rinc) 38 lines added or modified outside tests 412 lines added or modified in tests 0 lines removed in total 7 files, 3 commits (+) #34360 w0xlt bench: add WalletBalanceManySpent for high-history wallet scenario P3 · test coverage Waiting on author 0 (+1) Blocked 0 + 249 tests Measure wallet balance calculation performance on wallets with large histories of mostly spent outputs Helps developers evaluate optimizations for high-activity workloads like Lightning nodes and exchanges P3 because it adds benchmark coverage for spent-heavy wallet histories to evaluate balance optimizations Helps developers profile high-turnover wallet workloads like payment processors and Lightning nodes Ranking pass: Moved down into the benchmark cluster; it serves one optimization PR (#27865 ) rather than general test signal. Unaddressed objection: remove dead forward-compatibility assertion code, no author reply (l0rinc) Reversed earlier approval to request simplification of output-state assertions (l0rinc) 0 lines added or modified outside tests 249 lines added or modified in tests 60 lines removed in total 3 files, 2 commits (+) #36475 theStack bench: add BIP-352 pubkey extraction benchmarks (standard + P2PKH worst-case) P3 · test coverage Waiting on author 2 Strong 0 + 112 tests Benchmark Silent Payments public key extraction to measure performance overhead and catch regressions Helps developers evaluate input parsing performance during ongoing protocol implementation updates P3 because it adds performance regression coverage for recently added Silent Payments parsing logic Catches performance issues and reveals worst-case transaction parsing slowdowns during ongoing work Ready for review; standalone benchmark suite touches no production code Strong support for establishing Silent Payments parsing benchmarks Verified benchmarks on Apple M5 and checked test inputs against btclib-wallet (fametrano) Verified benchmark numbers on Windows and endorsed the test scope (Yudis-bit) Suggested hoisting allocations outside loop to avoid repeated reallocations (Yudis-bit) 0 lines added or modified outside tests 112 lines added or modified in tests 0 lines removed in total 2 files, 2 commits (+) #36455 benthecarman Test: Add legacy script edge cases to taproot test P3 · test coverage Waiting on author 1 Positive 0 + 32 tests Explicitly exercise legacy script interpreter edge cases that alternative implementations have gotten wrong Ensure test asset minimizers retain these edge cases when generating test vectors for downstream projects P3 because Core already handles these cases correctly, but downstream implementations benefit from vectors P3 because adding explicit edge-case regression tests is valuable but reasonably deferrable Approval without stated reasons (instagibbs) Suggests removing an unneeded comment (instagibbs) Prefers moving legacy cases out of taproot functional tests into script_tests.json (darosior) 0 lines added or modified outside tests 32 lines added or modified in tests 0 lines removed in total 1 files, 1 commits (+) #36458 benthecarman Test: Add script vectors for interpreter edges P3 · test coverage Ready 1 Strong 0 + 38 tests Cover script interpreter and transaction validation edge cases in static test data files Helps alternate implementations and downstream tools that rely on Core's static tests catch subtle bugs P3 because it expands static test coverage for subtle script interpreter and policy validation edge cases Mainly helps downstream consumers and alternate implementations rather than catching bugs in Core itself Strong support with no open objections Verified by running the new test vectors through btclib (fametrano) Concept approval because covering gaps found by alternate implementations improves test suites (darosior) 0 lines added or modified outside tests 38 lines added or modified in tests 1 lines removed in total 2 files, 1 commits (+) #36620 hebasto test: Add case for libstdc++ bug on Windows P3 · test coverage Ready 0 Positive 0 + 26 tests Detect an upstream Windows libstdc++ bug that fails when overwriting existing files Protect wallet migration code that relies on overwriting backup files across affected GCC toolchains P3 because it adds unit test coverage for an upstream Windows compiler bug during file copying The benefit is marginal because real-world user impact from this toolchain bug is practically nonexistent No review verdicts recorded Support because adding the test seems harmless (maflcko) Questions whether testing an upstream compiler bug is useful when user impact is low (fanquake, theuni) Suggests rejecting affected compilers at configure or making migration not overwrite (maflcko, theuni) 0 lines added or modified outside tests 26 lines added or modified in tests 0 lines removed in total 1 files, 1 commits (+) #36686 KY-U test: cover cumulative input value range in CheckTxInput tests. P3 · test coverage Ready 1 Strong 0 + 18 tests Ensure consensus tests verify transactions exceeding total money limits across multiple inputs are rejected Prevents mutations or logic bugs in cumulative input value validation from going undetected P3 because it closes a consensus unit test gap identified by mutation testing Catches bugs where cumulative input limits could be bypassed or incorrectly evaluated Support verified by confirming the surviving mutation is now killed (mercie-ux) Open suggestion to add a test case covering the per-coin check as well (mercie-ux) 0 lines added or modified outside tests 18 lines added or modified in tests 9 lines removed in total 1 files, 2 commits (+) #36679 Sjors ci: enable IPC in the i686 job P3 · test coverage Ready 1 Strong 2 + 4 tests Exercise IPC functionality on 32-bit x86 in continuous integration Catches compiler ABI issues that previously went untested P3 because it closes an existing test coverage gap for IPC on 32-bit x86 systems Exercises IPC where compiler ABI differences previously went untested Substantive support after confirming CI coverage history (maflcko) Nonblocking concern on whether supporting 32-bit architectures is worth project effort (l0rinc) Requested feedback on 32-bit issues from ryanofsky (fanquake) 2 lines added or modified outside tests 4 lines added or modified in tests 5 lines removed in total 2 files, 1 commits (+) #35957 hebasto ci: Enable Boost.MultiIndex invariant-checking mode P3 · test coverage Ready 0 Strong 0 + 5 tests Catch container corruption bugs early by enabling Boost.MultiIndex invariant checking in CI test jobs Provides runtime validation of data structure invariants during debug test runs P3 because it catches internal data structure corruption early during test suite runs Provides modest test verification improvements while remaining deferrable maintenance Ready to review Nothing known that would invalidate a review now Substantive support with no open objections Verified the exclusion by testing local runtime of the heavy fuzz job (jeanpablojp) Concerns about CI timeouts and commit wording were addressed and resolved (fanquake, jeanpablojp) 0 lines added or modified outside tests 5 lines added or modified in tests 2 lines removed in total 3 files, 1 commits (+) #33145 m3dwards CI: silent merge check P3 · new feature Waiting on author 0 Blocked 412 Automatically catch logical merge conflicts between open pull requests and master before merge Saves maintainers and reviewers manual effort testing PRs against updated master P3 because it automates running the test suite on simulated PR merges with master It prevents regressions from silent conflicts, but remains an auxiliary test runner Author has been silent for 112 days; reviews may wait a long time for a response Approach approval with open objections on draft filtering and SHA races (fjahr) Approval of the redesigned scheduled workflow (maflcko) Unaddressed objection: GitHub pulls endpoint ignores the draft query parameter (fjahr) Unaddressed objection: head SHA race condition if a force push occurs during a run (fjahr) 412 lines added or modified outside tests 0 lines added or modified in tests 0 lines removed in total 3 files, 1 commits (+) #35686 Sjors lint: have git-subtree-check check for backportability P3 · test coverage Ready 0 (+2) -1 Disputed 10 + 66 tests Ensure subtree merge commits can be reused verbatim when backporting to maintenance branches Save maintainers from having to verify newly generated subtree merges for every release branch P3 because it improves internal repository hygiene for subtree maintenance The benefit affects an internal developer workflow and is reasonably deferrable Contested objection: bash logic adds maintenance overhead for a style preference (maflcko) Support because it simplifies backport verification and documents good practice (ryanofsky) Verified by testing that the check and override flag behave as expected (BrandonOdiwuor) Questioned whether checking backportability should be the default behavior (sedited) 10 lines added or modified outside tests 66 lines added or modified in tests 20 lines removed in total 4 files, 2 commits (+) #35342 kevkevinpal test: fuzz wallet_rpc target P4 · test coverage Waiting on author 0 -1 Mild 0 + 530 tests Add fuzz testing for wallet RPC commands with randomized arguments Protects wallet RPC parameter parsing and validation against malformed inputs P4 after comparing with the other PRs here (assessed alone as P3): Lowered to P4: reviewers argue fuzzing wallet RPCs without chain state or UTXOs has very low efficacy, so the claimed coverage gain is weakly supported. P3 because expanding fuzz coverage to unexercised RPC parameter parsing paths improves test coverage Fuzzing wallet RPCs in isolation does not exercise consensus or P2P code paths Waiting on author to reply to an open objection from brunoerg Approach objection: fuzzing wallet RPCs without context like blocks or coins has minimal value (brunoerg) Unaddressed objection: keypool limits for performance further degrade fuzzing efficacy (brunoerg) Questions raised about the performance of calling multiple wallet RPCs per run (maflcko) 0 lines added or modified outside tests 530 lines added or modified in tests 176 lines removed in total 6 files, 2 commits (+) #36690 bartoli test: check guarantees of bech32 error detection P4 · test coverage Ready 0 Crickets 2 + 92 tests Verify Bech32m checksum error detection guarantees at standard and silent payment character limits Clarify header comments so developers do not assume checksums can locate or repair errors P4 because it adds unit test coverage for existing behavior rather than addressing bugs or flaky tests Verifies bounds around silent payment limits without changing node runtime logic or test harnesses Ranking pass: Moved up within P4: it tests a real boundary (the 1023-char silent-payments limit) and corrects misleading header comments. No review verdicts recorded No reviews or external comments yet Awaiting initial review from maintainers or contributors 2 lines added or modified outside tests 92 lines added or modified in tests 2 lines removed in total 2 files, 2 commits (+) #36022 cyb3ralbert test: add coverage for bitcoin wrapper argument handling P4 · test coverage Author silent 69d 1 Positive 0 + 51 tests Verify CLI argument handling and error behavior for the bitcoin wrapper tool Ensure wrapper paths that exit before executing child processes are tested P4 because it covers low-risk CLI argument paths that return before executing a child process Adds narrow functional coverage without touching test framework machinery or fixing flaky tests Tested approval without stated reasons (mercie-ux) Resolved earlier concern that tests bypassed Valgrind instrumentation (mercie-ux) 0 lines added or modified outside tests 51 lines added or modified in tests 0 lines removed in total 1 files, 2 commits (+) #36074 maflcko scripted-diff: [test] Add util/check.h includes for assertions P4 · cleanup Ready 0 Strong 14 + 319 tests Ensure test assertions consistently use check utilities and avoid compilation failures or NDEBUG ambiguity Enable automated include analysis across tests by standardizing assertion headers P4 because standardizing assertion includes across tests is an internal test cleanup Prevents rare compile issues without assertions in check headers but offers limited developer leverage Ranking pass: Grouped with the other assertion-hygiene scripted diffs. Support for systematically cleaning up assertion includes in tests (l0rinc) Concept approval without detailed feedback (l0rinc) Script regex gaps and path syntax errors were raised and resolved (jeanpablojp) 14 lines added or modified outside tests 319 lines added or modified in tests 220 lines removed in total 154 files, 3 commits (+) #36087 maflcko util: Add and use AssertUnreachable P4 · cleanup Author silent 61d 0 Mild 368 + 422 tests Eliminate compiler return-type warnings caused by unreachable code assertions Prevent assertion ambiguity and undefined behavior in unreachable code paths P4 because new linters enforce assertion style without altering test coverage Enforcement of assertion conventions provides minor maintenance value across the codebase Worth reviewing now because the rebase conflict is mechanical No review verdicts recorded Objection pending code update: standalone consensus library build breaks (jeanpablojp) Resolved prior concerns regarding linter regex matching and commit ordering (jeanpablojp) 368 lines added or modified outside tests 422 lines added or modified in tests 546 lines removed in total 312 files, 7 commits (+) #36609 fanquake ci: update some infra P4 · cleanup Ready 0 Crickets 0 + 4 tests Keep CI linting tools and container dependencies up to date with upstream fixes and improvements P4 because updating linting utilities is routine test infra maintenance Does not fix test flakiness, misleading signals, or core testing coverage Ready to review Nothing known that would invalidate a review now No review verdicts recorded No substantive discussion or reviews yet 0 lines added or modified outside tests 4 lines added or modified in tests 4 lines removed in total 3 files, 4 commits (+) #35442 rkrux test: remove usages of MAX_BIP125_RBF_SEQUENCE constant from functional tests P4 · cleanup Needs rebase 0 Blocked 73 + 327 tests Stop using BIP 125 opt-in sequence numbers in tests where signaling is irrelevant Prepares the functional test suite for the deprecation and removal of BIP 125 signaling P4 because it is purely internal test cleanup removing an obsolete constant Provides minor leverage toward deprecating and removing BIP 125 signaling Ranking pass: Placed after the assertion cleanups; it is blocked on #35433 and only partially advances BIP125 deprecation. Review #35433 first Needs rebase due to conflicts with master, but rebase is mechanical No review verdicts recorded Unaddressed objection: sendall default inputs disable locktimes and anti-fee-sniping (rreview) Suggested documenting PR dependencies and updating release notes (pablomartin4btc) Suggested folding into prior PR or prioritizing source code cleanup, answered by author (maflcko) 73 lines added or modified outside tests 327 lines added or modified in tests 310 lines removed in total 18 files, 13 commits (+) #36694 alexanderwiederin test, bench: construct mempool inputs/outputs declaratively P4 · cleanup Ready 0 Crickets 0 + 132 tests Make transaction setup in mempool tests and benchmarks less verbose and easier to maintain Prepare test call sites for potential direct immutable transaction construction P4 because it is an internal cleanup of test and benchmark code It improves transaction setup syntax without fixing bugs or adding test coverage Ranking pass: Moved up ahead of #35994 : it is the manual approach the #35994 author now prefers for the same #36692 goal. No review verdicts recorded No substantive reviews yet Suggested waiting for issue #36692 and conflicting PR #36521 before proceeding (maflcko) 0 lines added or modified outside tests 132 lines added or modified in tests 155 lines removed in total 3 files, 3 commits (+) #36257 hodlinator qa: assert_equals -> assert_true/assert_false P4 · cleanup Ready 0 Neutral 0 + 644 tests Make boolean checks in functional tests easier to read Reduce cognitive overhead when scanning long test expressions P4 because it is a cosmetic and syntactic cleanup across functional tests Slightly reduces cognitive load when reading tests without expanding coverage or fixing bugs No review verdicts recorded Neutral sentiment with no reviewers speaking in favor yet Resolved objection: enforce strict booleans rather than truthiness (l0rinc) Neutral stance without objection (maflcko) 0 lines added or modified outside tests 644 lines added or modified in tests 517 lines removed in total 94 files, 5 commits (+) #36547 ViniciusCestarii test: return typed P2PInterface from add_p2p_connection helpers P4 · cleanup Ready 1 Strong 0 + 28 tests Improve autocompletion and static type checking for developers writing functional tests P4 because type annotations in test helpers provide modest developer convenience The change offers minor ergonomics without altering test coverage or fixing bugs Broad support with no outstanding objections Verified by testing editor autocompletion on connection helpers (tumutech) Supportive if others find it helpful (maflcko) Concept approval without stated reasons (fanquake) 0 lines added or modified outside tests 28 lines added or modified in tests 3 lines removed in total 1 files, 1 commits (+) #36710 nebula-21 test: Replace hardcoded extended keys with ExtendedKey helpers P4 · cleanup Needs rebase 0 Crickets 0 + 42 tests Standardize key generation across functional tests to remove inconsistent hardcoded key strings P4 because standardizing key creation improves test cleanliness without altering coverage No impact on test reliability or overall test framework capabilities Worth reviewing now because the required rebase is mechanical No review verdicts recorded No review comments or feedback yet No participants have weighed in on the proposed changes 0 lines added or modified outside tests 42 lines added or modified in tests 39 lines removed in total 10 files, 1 commits (+) #35997 yancyribbens refactor: bench: make_hard_case to find a solution P4 · cleanup Author silent 69d 0 Strong 0 + 11 tests Make coin selection benchmarks use realistic values and verify an actual solution is found Gives developers more accurate performance metrics for coin selection search exhaustion P4 because it only adjusts synthetic inputs and adds assertions in an isolated benchmark Offers a minor benchmark improvement with no broader impact on CI signals or test frameworks Ranking pass: Moved down: it tunes one isolated benchmark's synthetic inputs, below framework-wide readability/typing cleanups. Ready for review Nothing known that would invalidate a review now Strong support with no open objections Verified by running the benchmark locally and checking assertions pass at the limit (Dontbyshai) 0 lines added or modified outside tests 11 lines added or modified in tests 6 lines removed in total 1 files, 1 commits (+) #36713 fanquake test: remove unused `DynSock::Pipe::GetNetMsg` and `PushNetMsg` P4 · cleanup Ready 1 Positive 0 + 3 tests Remove unused socket helpers and synchronization code left in the test suite from an unmerged PR Cleans up test framework utilities with no change to test behavior P4 because it is minor dead code cleanup in the test framework Touches only test socket utilities and does not affect production code or test coverage Ready for review Nothing known that would invalidate a review Support without stated reasons (jpk68) No objections raised 0 lines added or modified outside tests 3 lines added or modified in tests 97 lines removed in total 2 files, 1 commits (+) #36574 maflcko ci: Reword stale readme P4 · cleanup Ready 0 Neutral 0 + 26 tests Update CI developer documentation to reflect modern container tooling and CI harness execution rules P4 because it clarifies test harness mechanics in documentation only Does not alter test runners, test execution, or test code No review verdicts recorded Objections settled but no reviewers have endorsed the changes yet Nonblocking pushback on dependency-pinning rationale answered by author (l0rinc) Suggestion to clarify depends path references resolved by dropping the change (Hamza1610) 0 lines added or modified outside tests 26 lines added or modified in tests 16 lines removed in total 1 files, 3 commits (+) #32409 hebasto test: Introduce `SUPPRESS_ABORT_MESSAGE` environment variable P4 · platform fix Author silent 186d 0 -1 Mild 0 + 17 tests Prevent unattended MSVC debug test runs from hanging on blocking GUI popups during assertion failures P4 because it only targets unattended test runs using the MSVC debug runtime The suppression variable is not hooked up to or used by any in-tree CI job Ranking pass: Moved to the bottom: the variable is set by nothing in-tree and has been NACKed as unused, so there is no problem being solved today. Author has been silent for 148 days, so reviews may wait a long time for a response Blocking objection: adds an undocumented and unused environment variable and code path (fanquake) Concern that the added code is dead code unused by any in-tree configuration (sedited) Concept approval to avoid GUI assertion popups stalling Windows CI runs (hodlinator) 0 lines added or modified outside tests 17 lines added or modified in tests 0 lines removed in total 1 files, 1 commits (+) #35994 purpleKarrot Primitives: Combine assignments P4 · cleanup Author silent 72d 0 Mild 22 + 372 tests Prevent accidental reuse of dirty state in tests by combining consecutive member assignments into constructor calls Pave the way for making core transaction primitive types immutable across unit tests and benchmarks P4 because it is low-priority test cleanup aimed at avoiding dirty state reuse rather than fixing flakiness or coverage Ranking pass: Moved to the bottom: the author prefers abandoning it in favour of the manual rewrite (#36694 ), and the clang-tidy check introduced a witness-dropping bug. Needs rebase, CI is failing, and the author has been silent for over two months General concept support for declarative test setup and immutable structs (josibake, l0rinc, maflcko) Unaddressed bug: automated transformation accidentally drops witness data, confirmed with no fix pushed (alexanderwiederin) Suggests closing the draft PR due to failing CI and prolonged inactivity (maflcko) 22 lines added or modified outside tests 372 lines added or modified in tests 366 lines removed in total 42 files, 8 commits