From 214d45b6b9a4f25d7d8bd4e5443fa2bee485353a Mon Sep 17 00:00:00 2001 From: Peter Todd Date: Sun, 25 Aug 2013 12:37:07 -0400 Subject: Document and test OP_RESERVED weirdness Seems it was forgotten about when IsPushOnly() and the unittests were written. A particular oddity is that OP_RESERVED doesn't count towards the >201 opcode limit unlike every other named opcode. --- src/test/script_tests.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/test/script_tests.cpp') diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp index e7ad52627..c1f6f178d 100644 --- a/src/test/script_tests.cpp +++ b/src/test/script_tests.cpp @@ -32,8 +32,12 @@ ParseScript(string s) if (mapOpNames.size() == 0) { - for (int op = OP_NOP; op <= OP_NOP10; op++) + for (int op = 0; op <= OP_NOP10; op++) { + // Allow OP_RESERVED to get into mapOpNames + if (op < OP_NOP && op != OP_RESERVED) + continue; + const char* name = GetOpName((opcodetype)op); if (strcmp(name, "OP_UNKNOWN") == 0) continue; @@ -72,7 +76,7 @@ ParseScript(string s) } else if (mapOpNames.count(w)) { - // opcode, e.g. OP_ADD or OP_1: + // opcode, e.g. OP_ADD or ADD: result << mapOpNames[w]; } else -- cgit v1.2.3