@@ -96,7 +96,7 @@ static ScriptErrorDesc script_errors[]={
9696 {SCRIPT_ERR_SIG_FINDANDDELETE, " SIG_FINDANDDELETE" },
9797};
9898
99- static std::string FormatScriptFlags (uint32_t flags)
99+ static std::string FormatScriptFlags (script_verify_flags flags)
100100{
101101 return util::Join (GetScriptFlagNames (flags), " ," );
102102}
@@ -134,13 +134,13 @@ void DoTest(const CScript& scriptPubKey, const CScript& scriptSig, const CScript
134134 BOOST_CHECK_MESSAGE (err == scriptError, FormatScriptError (err) + " where " + FormatScriptError ((ScriptError_t)scriptError) + " expected: " + message);
135135
136136 // Verify that removing flags from a passing test or adding flags to a failing test does not change the result.
137- for (int i = 0 ; i < 16 ; ++i) {
138- uint32_t extra_flags (m_rng.randbits (16 ));
139- uint32_t combined_flags{expect ? (flags & ~extra_flags) : (flags | extra_flags)};
137+ for (int i = 0 ; i < 256 ; ++i) {
138+ script_verify_flags extra_flags = script_verify_flags::from_int (m_rng.randbits (MAX_SCRIPT_VERIFY_FLAGS_BITS ));
139+ script_verify_flags combined_flags{expect ? (flags & ~extra_flags) : (flags | extra_flags)};
140140 // Weed out some invalid flag combinations.
141141 if (combined_flags & SCRIPT_VERIFY_CLEANSTACK && ~combined_flags & (SCRIPT_VERIFY_P2SH | SCRIPT_VERIFY_WITNESS)) continue ;
142142 if (combined_flags & SCRIPT_VERIFY_WITNESS && ~combined_flags & SCRIPT_VERIFY_P2SH) continue ;
143- BOOST_CHECK_MESSAGE (VerifyScript (scriptSig, scriptPubKey, &scriptWitness, combined_flags, MutableTransactionSignatureChecker (&tx, 0 , txCredit.vout [0 ].nValue , MissingDataBehavior::ASSERT_FAIL), &err) == expect, message + strprintf (" (with flags %x)" , combined_flags));
143+ BOOST_CHECK_MESSAGE (VerifyScript (scriptSig, scriptPubKey, &scriptWitness, combined_flags, MutableTransactionSignatureChecker (&tx, 0 , txCredit.vout [0 ].nValue , MissingDataBehavior::ASSERT_FAIL), &err) == expect, message + strprintf (" (with flags %x)" , combined_flags. as_int () ));
144144 }
145145}
146146}; // struct ScriptTest
@@ -1716,9 +1716,9 @@ BOOST_AUTO_TEST_CASE(formatscriptflags)
17161716{
17171717 // quick check that FormatScriptFlags reports any unknown/unexpected bits
17181718 BOOST_CHECK_EQUAL (FormatScriptFlags (SCRIPT_VERIFY_P2SH), " P2SH" );
1719- BOOST_CHECK_EQUAL (FormatScriptFlags (SCRIPT_VERIFY_P2SH | (1u <<31 )), " P2SH,0x80000000" );
1720- BOOST_CHECK_EQUAL (FormatScriptFlags (SCRIPT_VERIFY_TAPROOT | (1u <<27 )), " TAPROOT,0x08000000" );
1721- BOOST_CHECK_EQUAL (FormatScriptFlags (1u <<26 ), " 0x04000000" );
1719+ BOOST_CHECK_EQUAL (FormatScriptFlags (SCRIPT_VERIFY_P2SH | script_verify_flags::from_int (1u <<31 )), " P2SH,0x80000000" );
1720+ BOOST_CHECK_EQUAL (FormatScriptFlags (SCRIPT_VERIFY_TAPROOT | script_verify_flags::from_int (1u <<27 )), " TAPROOT,0x08000000" );
1721+ BOOST_CHECK_EQUAL (FormatScriptFlags (script_verify_flags::from_int ( 1u <<26 ) ), " 0x04000000" );
17221722}
17231723
17241724BOOST_AUTO_TEST_SUITE_END ()
0 commit comments