Changeset View
Changeset View
Standalone View
Standalone View
src/test/data/script_tests.json
Show First 20 Lines • Show All 812 Lines • ▼ Show 20 Lines | |||||
["1", "3DUP 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ["1", "3DUP 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ||||
["1 2", "3DUP 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ["1 2", "3DUP 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ||||
["NOP", "2OVER 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ["NOP", "2OVER 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ||||
["1", "2 3 2OVER 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ["1", "2 3 2OVER 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ||||
["NOP", "2SWAP 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ["NOP", "2SWAP 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ||||
["1", "2 3 2SWAP 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ["1", "2 3 2SWAP 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ||||
["'a' 'b'", "CAT", "P2SH,STRICTENC", "DISABLED_OPCODE", "CAT disabled"], | ["'a' 'b'", "CAT", "P2SH,STRICTENC", "DISABLED_OPCODE", "CAT disabled"], | ||||
["'a' 'b' 0", "IF CAT ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "CAT disabled"], | ["'a' 'b' 1", "IF CAT ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "CAT disabled"], | ||||
["'abc' 1 1", "SPLIT", "P2SH,STRICTENC", "DISABLED_OPCODE", "SPLIT disabled"], | ["'abc' 1 1", "SPLIT", "P2SH,STRICTENC", "DISABLED_OPCODE", "SPLIT disabled"], | ||||
["'abc' 1 1 0", "IF SPLIT ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "SPLIT disabled"], | ["'abc' 1 1 1", "IF SPLIT ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "SPLIT disabled"], | ||||
["'abc' 2 0", "IF NUM2BIN ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "NUM2BIN disabled"], | ["'abc' 2 1", "IF NUM2BIN ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "NUM2BIN disabled"], | ||||
["'abc' 2 0", "IF BIN2NUM ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "BIN2NUM disabled"], | ["'abc' 2 1", "IF BIN2NUM ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "BIN2NUM disabled"], | ||||
["NOP", "SIZE 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ["NOP", "SIZE 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], | ||||
["'abc'", "IF INVERT ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "INVERT disabled"], | ["'abc'", "IF INVERT ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "INVERT disabled"], | ||||
["1 2 0 IF AND ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "AND disabled"], | ["1 2 1 IF AND ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "AND disabled"], | ||||
["1 2 0 IF OR ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "OR disabled"], | ["1 2 1 IF OR ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "OR disabled"], | ||||
["1 2 0 IF XOR ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "XOR disabled"], | ["1 2 1 IF XOR ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "XOR disabled"], | ||||
["2 0 IF 2MUL ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "2MUL disabled"], | ["2 0 IF 2MUL ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "2MUL disabled"], | ||||
["2 0 IF 2DIV ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "2DIV disabled"], | ["2 0 IF 2DIV ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "2DIV disabled"], | ||||
["2 2 0 IF MUL ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "MUL disabled"], | ["2 2 1 IF MUL ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "MUL disabled"], | ||||
["2 2 0 IF DIV ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "DIV disabled"], | ["2 2 1 IF DIV ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "DIV disabled"], | ||||
["2 2 0 IF MOD ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "MOD disabled"], | ["2 2 1 IF MOD ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "MOD disabled"], | ||||
["2 2 0 IF LSHIFT ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "LSHIFT disabled"], | ["2 2 0 IF LSHIFT ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "LSHIFT disabled"], | ||||
["2 2 0 IF RSHIFT ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "RSHIFT disabled"], | ["2 2 0 IF RSHIFT ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "RSHIFT disabled"], | ||||
["0x02 0x0011 0x02 0x0011 0x02 0x0011", "AND EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
["0x02 0x1111 0x02 0x1111 0x02 0x1111", "AND EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
["0x02 0x1111 0x02 0x1111 0x02 0x0101", "OR EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
["0x02 0x0011 0x02 0x0000 0x02 0x0011", "OR EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
["0x02 0x0000 0x02 0x1111 0x02 0x1111", "XOR EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
["0x02 0x0011 0x02 0x0000 0x02 0x0011", "XOR EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
jasonbcox: Adding some tests as commented in the slack channel for posterity:
["0x02 0x00000011", "AND"… | |||||
["100 200 2", "DIV EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
["0 0 100", "DIV EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
["1 10 3", "MOD EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
["0 1 1", "MOD EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
jasonbcoxUnsubmitted Not Done Inline ActionsAdding some tests as commented in the slack channel for posterity: jasonbcox: Adding some tests as commented in the slack channel for posterity:
["1 0", "DIV", "P2SH… | |||||
["'abcdef' 'abc' 'def'", "CAT EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
["0x02 0x4141 0x01 0x41 0x01 0x41", "CAT EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
["'abc' 'def' 'abcdef' 3 1", "IF SPLIT EQUAL ENDIF IF EQUAL ENDIF", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
["'abcd' 'ef' 'abcdef' 4 1", "IF SPLIT EQUAL ENDIF IF EQUAL ENDIF", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
jasonbcoxUnsubmitted Not Done Inline ActionsOP_SPLIT needs tests for SCRIPT_ERR_INVALID_STACK_OPERATION and SCRIPT_ERR_INVALID_SPLIT_RANGE jasonbcox: OP_SPLIT needs tests for SCRIPT_ERR_INVALID_STACK_OPERATION and SCRIPT_ERR_INVALID_SPLIT_RANGE | |||||
["100 0x02 0x0064", "BIN2NUM EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
["0x04 0x00000064 100 4", "NUM2BIN EQUAL", "P2SH,STRICTENC,MONOLITH_OPCODES", "OK"], | |||||
jasonbcoxUnsubmitted Not Done Inline ActionsBIN2NUM and NUM2BIN need tests for SCRIPT_ERR_INVALID_STACK_OPERATION jasonbcox: BIN2NUM and NUM2BIN need tests for SCRIPT_ERR_INVALID_STACK_OPERATION | |||||
["", "EQUAL NOT", "P2SH,STRICTENC", "INVALID_STACK_OPERATION", "EQUAL must error when there are no stack items"], | ["", "EQUAL NOT", "P2SH,STRICTENC", "INVALID_STACK_OPERATION", "EQUAL must error when there are no stack items"], | ||||
["0", "EQUAL NOT", "P2SH,STRICTENC", "INVALID_STACK_OPERATION", "EQUAL must error when there are not 2 stack items"], | ["0", "EQUAL NOT", "P2SH,STRICTENC", "INVALID_STACK_OPERATION", "EQUAL must error when there are not 2 stack items"], | ||||
["0 1","EQUAL", "P2SH,STRICTENC", "EVAL_FALSE"], | ["0 1","EQUAL", "P2SH,STRICTENC", "EVAL_FALSE"], | ||||
["1 1 ADD", "0 EQUAL", "P2SH,STRICTENC", "EVAL_FALSE"], | ["1 1 ADD", "0 EQUAL", "P2SH,STRICTENC", "EVAL_FALSE"], | ||||
["11 1 ADD 12 SUB", "11 EQUAL", "P2SH,STRICTENC", "EVAL_FALSE"], | ["11 1 ADD 12 SUB", "11 EQUAL", "P2SH,STRICTENC", "EVAL_FALSE"], | ||||
["2147483648 0 ADD", "NOP", "P2SH,STRICTENC", "UNKNOWN_ERROR", "arithmetic operands must be in range [-2^31...2^31] "], | ["2147483648 0 ADD", "NOP", "P2SH,STRICTENC", "UNKNOWN_ERROR", "arithmetic operands must be in range [-2^31...2^31] "], | ||||
["-2147483648 0 ADD", "NOP", "P2SH,STRICTENC", "UNKNOWN_ERROR", "arithmetic operands must be in range [-2^31...2^31] "], | ["-2147483648 0 ADD", "NOP", "P2SH,STRICTENC", "UNKNOWN_ERROR", "arithmetic operands must be in range [-2^31...2^31] "], | ||||
▲ Show 20 Lines • Show All 1,119 Lines • Show Last 20 Lines |
Adding some tests as commented in the slack channel for posterity:
["0x02 0x00000011", "AND", "P2SH,STRICTENC,MONOLITH_OPCODES", "SCRIPT_ERR_INVALID_BITWISE_LENGTH"],
["0x00000011 0x02", "AND", "P2SH,STRICTENC,MONOLITH_OPCODES", "SCRIPT_ERR_INVALID_BITWISE_LENGTH"],
["0x02 0x00000011", "OR", "P2SH,STRICTENC,MONOLITH_OPCODES", "SCRIPT_ERR_INVALID_BITWISE_LENGTH"],
["0x00000011 0x02", "OR", "P2SH,STRICTENC,MONOLITH_OPCODES", "SCRIPT_ERR_INVALID_BITWISE_LENGTH"],
["0x02 0x00000011", "XOR", "P2SH,STRICTENC,MONOLITH_OPCODES", "SCRIPT_ERR_INVALID_BITWISE_LENGTH"],
["0x00000011 0x02", "XOR", "P2SH,STRICTENC,MONOLITH_OPCODES", "SCRIPT_ERR_INVALID_BITWISE_LENGTH"],