Changeset View
Changeset View
Standalone View
Standalone View
src/test/checkdatasig_tests.cpp
Show All 22 Lines | |||||
* General utility functions to check for script passing/failing. | * General utility functions to check for script passing/failing. | ||||
*/ | */ | ||||
static void CheckTestResultForAllFlags(const stacktype &original_stack, | static void CheckTestResultForAllFlags(const stacktype &original_stack, | ||||
const CScript &script, | const CScript &script, | ||||
const stacktype &expected) { | const stacktype &expected) { | ||||
BaseSignatureChecker sigchecker; | BaseSignatureChecker sigchecker; | ||||
for (uint32_t flags : flagset) { | for (uint32_t flags : flagset) { | ||||
// Make sure that opcodes are disabled. | // The opcode are not implemented yet, so we get a bad opcode error when | ||||
// passing the activation flag. | |||||
ScriptError err = SCRIPT_ERR_OK; | ScriptError err = SCRIPT_ERR_OK; | ||||
stacktype stack{original_stack}; | stacktype stack{original_stack}; | ||||
bool r = EvalScript(stack, script, flags, sigchecker, &err); | bool r = EvalScript(stack, script, flags | SCRIPT_ENABLE_CHECKDATASIG, | ||||
sigchecker, &err); | |||||
BOOST_CHECK(!r); | |||||
BOOST_CHECK_EQUAL(err, SCRIPT_ERR_BAD_OPCODE); | |||||
// Make sure that we get a bad opcode when the activation flag is not | |||||
// passed. | |||||
stack = original_stack; | |||||
r = EvalScript(stack, script, flags, sigchecker, &err); | |||||
BOOST_CHECK(!r); | BOOST_CHECK(!r); | ||||
BOOST_CHECK_EQUAL(err, SCRIPT_ERR_BAD_OPCODE); | BOOST_CHECK_EQUAL(err, SCRIPT_ERR_BAD_OPCODE); | ||||
} | } | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(checkdatasig_test) { | BOOST_AUTO_TEST_CASE(checkdatasig_test) { | ||||
CheckTestResultForAllFlags({}, CScript() << OP_CHECKDATASIG, {}); | CheckTestResultForAllFlags({}, CScript() << OP_CHECKDATASIG, {}); | ||||
CheckTestResultForAllFlags({}, CScript() << OP_CHECKDATASIGVERIFY, {}); | CheckTestResultForAllFlags({}, CScript() << OP_CHECKDATASIGVERIFY, {}); | ||||
} | } | ||||
BOOST_AUTO_TEST_SUITE_END() | BOOST_AUTO_TEST_SUITE_END() |