From 232a2bce90a96720f5c8d31413f1d14b4c9d90f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Sat, 31 Jan 2026 21:03:16 +0100 Subject: [PATCH] consensus/test: add out-of-range output unit tests for `CTransaction::GetValueOut` Inspired by b-c-cov coverage reports: * "GetValueOut: value out of range" - https://maflcko.github.io/b-c-cov/test_bitcoin.coverage/src/primitives/transaction.cpp.gcov.html#L103 --- src/test/transaction_tests.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/test/transaction_tests.cpp b/src/test/transaction_tests.cpp index 0f175c7d6f3..a7a46e4f07c 100644 --- a/src/test/transaction_tests.cpp +++ b/src/test/transaction_tests.cpp @@ -1155,6 +1155,15 @@ BOOST_AUTO_TEST_CASE(checktxinputs_invalid_transactions_test) TxValidationResult::TX_PREMATURE_SPEND, /*expected_reason=*/"bad-txns-premature-spend-of-coinbase"); } +BOOST_AUTO_TEST_CASE(getvalueout_out_of_range_throws) +{ + CMutableTransaction mtx; + mtx.vout.emplace_back(MAX_MONEY + 1, CScript() << OP_TRUE); + + const CTransaction tx{mtx}; + BOOST_CHECK_EXCEPTION(tx.GetValueOut(), std::runtime_error, HasReason("GetValueOut: value out of range")); +} + /** Sanity check the return value of SpendsNonAnchorWitnessProg for various output types. */ BOOST_AUTO_TEST_CASE(spends_witness_prog) {