From 82fc21e30950d7f2acfd78184dd81777906e75e9 Mon Sep 17 00:00:00 2001 From: "Jamil Lambert, PhD" Date: Mon, 22 Jun 2026 13:51:20 +0100 Subject: [PATCH 1/2] Fix remaining verify --tests problems Adding verify --tests to CI runs it on all versions. This highlighted 2 missed problems: submitpackage is untested for v26 - Add `UNTESTED` label to the types table. abortprivatebroadcast test did not check the model - Fix the test. --- integration_test/tests/raw_transactions.rs | 25 +++++++++++++++++----- types/src/v26/mod.rs | 2 +- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/integration_test/tests/raw_transactions.rs b/integration_test/tests/raw_transactions.rs index 16021b63..804d2b46 100644 --- a/integration_test/tests/raw_transactions.rs +++ b/integration_test/tests/raw_transactions.rs @@ -717,10 +717,25 @@ fn raw_transactions__get_private_broadcast_info__modelled() { #[test] #[cfg(not(feature = "v30_and_below"))] -fn raw_transactions__abort_private_broadcast() { - let node = BitcoinD::with_wallet(Wallet::None, &[]); +fn raw_transactions__abort_private_broadcast__modelled() { + let node = + BitcoinD::with_wallet(Wallet::Default, &["-privatebroadcast=1", "-proxy=127.0.0.1:1"]); + node.fund_wallet(); + + // Create a signed transaction and send it via private broadcast. + let tx = create_a_raw_transaction(&node); + let signed: SignRawTransactionWithWallet = + node.client.sign_raw_transaction_with_wallet(&tx).expect("signrawtransactionwithwallet"); + let signed_tx = signed.into_model().expect("SignRawTransaction into model").tx; + let send_raw_transaction: SendRawTransaction = + node.client.send_raw_transaction(&signed_tx).expect("sendrawtransaction"); + + let json: AbortPrivateBroadcast = node + .client + .abort_private_broadcast(&send_raw_transaction.0) + .expect("abortprivatebroadcast"); + let model: Result = json.into_model(); + let abort_private_broadcast = model.unwrap(); - // Aborting a transaction that is not in the private broadcast queue returns an error in regtest. - let txid = "0000000000000000000000000000000000000000000000000000000000000001"; - assert!(node.client.abort_private_broadcast(txid).is_err()); + assert_eq!(abort_private_broadcast.removed_transactions, vec![signed_tx]); } diff --git a/types/src/v26/mod.rs b/types/src/v26/mod.rs index 3d0fa44f..9d5e924f 100644 --- a/types/src/v26/mod.rs +++ b/types/src/v26/mod.rs @@ -134,7 +134,7 @@ //! | joinpsbts | version + model | | //! | sendrawtransaction | version + model | | //! | signrawtransactionwithkey | version + model | UNTESTED | -//! | submitpackage | version + model | | +//! | submitpackage | version + model | UNTESTED | //! | testmempoolaccept | version + model | | //! | utxoupdatepsbt | version + model | | //! From da9f01788183fd261db2c82b4b52912187d30cd9 Mon Sep 17 00:00:00 2001 From: "Jamil Lambert, PhD" Date: Mon, 22 Jun 2026 13:39:12 +0100 Subject: [PATCH 2/2] Add verify --tests to CI For every version integration_tests CI capture the output and run verify --tests with the output generated. Run in the same job as the tests since they are needed to generate the file. --- .github/workflows/rust.yaml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust.yaml b/.github/workflows/rust.yaml index e2602513..c945506b 100644 --- a/.github/workflows/rust.yaml +++ b/.github/workflows/rust.yaml @@ -160,7 +160,19 @@ jobs: - name: "Run integration tests" env: BITCOIND_DOWNLOAD_DIR: ${{ github.workspace }}/.cache/corepc/bitcoind - run: cd integration_test && cargo test --features=${{ matrix.version }},download + run: | + set -o pipefail + test_output="${{ runner.temp }}/integration-test-${{ matrix.version }}.out" + cd integration_test + cargo test --features=${{ matrix.version }},download 2>&1 | tee "$test_output" + - name: "Verify integration test coverage" + run: | + test_output="${{ runner.temp }}/integration-test-${{ matrix.version }}.out" + verify_version="${{ matrix.version }}" + verify_version="${verify_version#0_}" + verify_version="${verify_version%%_*}" + cd verify + cargo run -- --tests "$test_output" "$verify_version" # The jobs below copied from electrsd repo during import. Not too # much further thought given to it.