From 8fcd6845052354fad80ae7e5feda3f6a2e441e12 Mon Sep 17 00:00:00 2001 From: Greg Sanders Date: Thu, 22 May 2025 10:43:44 -0400 Subject: [PATCH] test: ensure reason is checked for invalid blocks rejection --- test/functional/data/invalid_txs.py | 4 ++++ test/functional/feature_block.py | 2 ++ 2 files changed, 6 insertions(+) diff --git a/test/functional/data/invalid_txs.py b/test/functional/data/invalid_txs.py index 4157866dd19..e2c9354b739 100644 --- a/test/functional/data/invalid_txs.py +++ b/test/functional/data/invalid_txs.py @@ -134,6 +134,8 @@ class BadInputOutpointIndex(BadTxTemplate): # Won't be rejected - nonexistent outpoint index is treated as an orphan since the coins # database can't distinguish between spent outpoints and outpoints which never existed. reject_reason = None + # But fails in block + block_reject_reason = "bad-txns-inputs-missingorspent" expect_disconnect = False def get_tx(self): @@ -176,6 +178,8 @@ class PrevoutNullInput(BadTxTemplate): class NonexistentInput(BadTxTemplate): reject_reason = None # Added as an orphan tx. expect_disconnect = False + # But fails in block + block_reject_reason = "bad-txns-inputs-missingorspent" def get_tx(self): tx = CTransaction() diff --git a/test/functional/feature_block.py b/test/functional/feature_block.py index 8f4cca22100..b5767217f44 100755 --- a/test/functional/feature_block.py +++ b/test/functional/feature_block.py @@ -161,6 +161,8 @@ class FullBlockTest(BitcoinTestFramework): if template.valid_in_block: continue + assert template.block_reject_reason or template.reject_reason + self.log.info(f"Reject block with invalid tx: {TxTemplate.__name__}") blockname = f"for_invalid.{TxTemplate.__name__}" self.next_block(blockname)