Changeset View
Changeset View
Standalone View
Standalone View
src/test/sigopcount_tests.cpp
Show All 25 Lines | static std::vector<uint8_t> Serialize(const CScript &s) { | ||||
return sSerialized; | return sSerialized; | ||||
} | } | ||||
BOOST_FIXTURE_TEST_SUITE(sigopcount_tests, BasicTestingSetup) | BOOST_FIXTURE_TEST_SUITE(sigopcount_tests, BasicTestingSetup) | ||||
void CheckScriptSigOps(const CScript &script, uint32_t accurate_sigops, | void CheckScriptSigOps(const CScript &script, uint32_t accurate_sigops, | ||||
uint32_t inaccurate_sigops, uint32_t datasigops) { | uint32_t inaccurate_sigops, uint32_t datasigops) { | ||||
const uint32_t nodatasigflags = | const uint32_t nodatasigflags = | ||||
STANDARD_SCRIPT_VERIFY_FLAGS & ~SCRIPT_ENABLE_CHECKDATASIG; | STANDARD_SCRIPT_VERIFY_FLAGS & ~SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; | ||||
const uint32_t datasigflags = | const uint32_t datasigflags = | ||||
STANDARD_SCRIPT_VERIFY_FLAGS | SCRIPT_ENABLE_CHECKDATASIG; | STANDARD_SCRIPT_VERIFY_FLAGS | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; | ||||
BOOST_CHECK_EQUAL(script.GetSigOpCount(nodatasigflags, false), | BOOST_CHECK_EQUAL(script.GetSigOpCount(nodatasigflags, false), | ||||
inaccurate_sigops); | inaccurate_sigops); | ||||
BOOST_CHECK_EQUAL(script.GetSigOpCount(datasigflags, false), | BOOST_CHECK_EQUAL(script.GetSigOpCount(datasigflags, false), | ||||
inaccurate_sigops + datasigops); | inaccurate_sigops + datasigops); | ||||
BOOST_CHECK_EQUAL(script.GetSigOpCount(nodatasigflags, true), | BOOST_CHECK_EQUAL(script.GetSigOpCount(nodatasigflags, true), | ||||
accurate_sigops); | accurate_sigops); | ||||
BOOST_CHECK_EQUAL(script.GetSigOpCount(datasigflags, true), | BOOST_CHECK_EQUAL(script.GetSigOpCount(datasigflags, true), | ||||
▲ Show 20 Lines • Show All 44 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(GetSigOpCount) { | ||||
const CScript p2sh = GetScriptForDestination(CScriptID(s3)); | const CScript p2sh = GetScriptForDestination(CScriptID(s3)); | ||||
CheckScriptSigOps(p2sh, 0, 0, 0); | CheckScriptSigOps(p2sh, 0, 0, 0); | ||||
CScript scriptSig2; | CScript scriptSig2; | ||||
scriptSig2 << OP_1 << ToByteVector(dummy) << ToByteVector(dummy) | scriptSig2 << OP_1 << ToByteVector(dummy) << ToByteVector(dummy) | ||||
<< Serialize(s3); | << Serialize(s3); | ||||
BOOST_CHECK_EQUAL(p2sh.GetSigOpCount((STANDARD_SCRIPT_VERIFY_FLAGS & | BOOST_CHECK_EQUAL(p2sh.GetSigOpCount((STANDARD_SCRIPT_VERIFY_FLAGS & | ||||
~SCRIPT_ENABLE_CHECKDATASIG), | ~SCRIPT_VERIFY_CHECKDATASIG_SIGOPS), | ||||
scriptSig2), | scriptSig2), | ||||
3U); | 3U); | ||||
BOOST_CHECK_EQUAL(p2sh.GetSigOpCount(STANDARD_SCRIPT_VERIFY_FLAGS | | BOOST_CHECK_EQUAL(p2sh.GetSigOpCount(STANDARD_SCRIPT_VERIFY_FLAGS | | ||||
SCRIPT_ENABLE_CHECKDATASIG, | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS, | ||||
scriptSig2), | scriptSig2), | ||||
3U); | 3U); | ||||
BOOST_CHECK_EQUAL(p2sh.GetSigOpCount(SCRIPT_VERIFY_NONE, scriptSig2), 0U); | BOOST_CHECK_EQUAL(p2sh.GetSigOpCount(SCRIPT_VERIFY_NONE, scriptSig2), 0U); | ||||
const CScript s4 = CScript(s1) << OP_IF << OP_CHECKDATASIG << OP_ENDIF; | const CScript s4 = CScript(s1) << OP_IF << OP_CHECKDATASIG << OP_ENDIF; | ||||
CheckScriptSigOps(s4, 2, 20, 1); | CheckScriptSigOps(s4, 2, 20, 1); | ||||
const CScript s5 = CScript(s4) << OP_CHECKDATASIGVERIFY; | const CScript s5 = CScript(s4) << OP_CHECKDATASIGVERIFY; | ||||
▲ Show 20 Lines • Show All 181 Lines • Show Last 20 Lines |