Changeset View
Changeset View
Standalone View
Standalone View
src/test/txvalidationcache_tests.cpp
Show First 20 Lines • Show All 422 Lines • ▼ Show 20 Lines | // TODO: add tests for remaining script flags | ||||
// was valid) | // was valid) | ||||
std::vector<CScriptCheck> scriptchecks; | std::vector<CScriptCheck> scriptchecks; | ||||
BOOST_CHECK(CheckInputs(transaction, state, pcoinsTip.get(), true, | BOOST_CHECK(CheckInputs(transaction, state, pcoinsTip.get(), true, | ||||
STANDARD_SCRIPT_VERIFY_FLAGS, true, true, | STANDARD_SCRIPT_VERIFY_FLAGS, true, true, | ||||
txdata, &scriptchecks)); | txdata, &scriptchecks)); | ||||
// Should get 2 script checks back -- caching is on a whole-transaction | // Should get 2 script checks back -- caching is on a whole-transaction | ||||
// basis. | // basis. | ||||
BOOST_CHECK_EQUAL(scriptchecks.size(), 2U); | BOOST_CHECK_EQUAL(scriptchecks.size(), 2U); | ||||
// Execute the first check, and check its result | |||||
BOOST_CHECK(scriptchecks[0]()); | |||||
BOOST_CHECK_EQUAL(scriptchecks[0].GetScriptError(), ScriptError::OK); | |||||
BOOST_CHECK_EQUAL( | |||||
scriptchecks[0].GetScriptExecutionMetrics().nSigChecks, 1); | |||||
// The second check does fail | |||||
BOOST_CHECK(!scriptchecks[1]()); | |||||
BOOST_CHECK_EQUAL(scriptchecks[1].GetScriptError(), | |||||
ScriptError::INVALID_STACK_OPERATION); | |||||
} | } | ||||
} | } | ||||
BOOST_AUTO_TEST_SUITE_END() | BOOST_AUTO_TEST_SUITE_END() |