TestScriptBuilderAddInt64 tests that pushing signed integers to a script via the ScriptBuilder API works as expected.
(t *testing.T)
| 111 | // TestScriptBuilderAddInt64 tests that pushing signed integers to a script via |
| 112 | // the ScriptBuilder API works as expected. |
| 113 | func TestScriptBuilderAddInt64(t *testing.T) { |
| 114 | t.Parallel() |
| 115 | |
| 116 | tests := []struct { |
| 117 | name string |
| 118 | val int64 |
| 119 | expected []byte |
| 120 | }{ |
| 121 | {name: "push -1", val: -1, expected: []byte{OP_1NEGATE}}, |
| 122 | {name: "push small int 0", val: 0, expected: []byte{OP_0}}, |
| 123 | {name: "push small int 1", val: 1, expected: []byte{OP_1}}, |
| 124 | {name: "push small int 2", val: 2, expected: []byte{OP_2}}, |
| 125 | {name: "push small int 3", val: 3, expected: []byte{OP_3}}, |
| 126 | {name: "push small int 4", val: 4, expected: []byte{OP_4}}, |
| 127 | {name: "push small int 5", val: 5, expected: []byte{OP_5}}, |
| 128 | {name: "push small int 6", val: 6, expected: []byte{OP_6}}, |
| 129 | {name: "push small int 7", val: 7, expected: []byte{OP_7}}, |
| 130 | {name: "push small int 8", val: 8, expected: []byte{OP_8}}, |
| 131 | {name: "push small int 9", val: 9, expected: []byte{OP_9}}, |
| 132 | {name: "push small int 10", val: 10, expected: []byte{OP_10}}, |
| 133 | {name: "push small int 11", val: 11, expected: []byte{OP_11}}, |
| 134 | {name: "push small int 12", val: 12, expected: []byte{OP_12}}, |
| 135 | {name: "push small int 13", val: 13, expected: []byte{OP_13}}, |
| 136 | {name: "push small int 14", val: 14, expected: []byte{OP_14}}, |
| 137 | {name: "push small int 15", val: 15, expected: []byte{OP_15}}, |
| 138 | {name: "push small int 16", val: 16, expected: []byte{OP_16}}, |
| 139 | {name: "push 17", val: 17, expected: []byte{OP_DATA_1, 0x11}}, |
| 140 | {name: "push 65", val: 65, expected: []byte{OP_DATA_1, 0x41}}, |
| 141 | {name: "push 127", val: 127, expected: []byte{OP_DATA_1, 0x7f}}, |
| 142 | {name: "push 128", val: 128, expected: []byte{OP_DATA_2, 0x80, 0}}, |
| 143 | {name: "push 255", val: 255, expected: []byte{OP_DATA_2, 0xff, 0}}, |
| 144 | {name: "push 256", val: 256, expected: []byte{OP_DATA_2, 0, 0x01}}, |
| 145 | {name: "push 32767", val: 32767, expected: []byte{OP_DATA_2, 0xff, 0x7f}}, |
| 146 | {name: "push 32768", val: 32768, expected: []byte{OP_DATA_3, 0, 0x80, 0}}, |
| 147 | {name: "push -2", val: -2, expected: []byte{OP_DATA_1, 0x82}}, |
| 148 | {name: "push -3", val: -3, expected: []byte{OP_DATA_1, 0x83}}, |
| 149 | {name: "push -4", val: -4, expected: []byte{OP_DATA_1, 0x84}}, |
| 150 | {name: "push -5", val: -5, expected: []byte{OP_DATA_1, 0x85}}, |
| 151 | {name: "push -17", val: -17, expected: []byte{OP_DATA_1, 0x91}}, |
| 152 | {name: "push -65", val: -65, expected: []byte{OP_DATA_1, 0xc1}}, |
| 153 | {name: "push -127", val: -127, expected: []byte{OP_DATA_1, 0xff}}, |
| 154 | {name: "push -128", val: -128, expected: []byte{OP_DATA_2, 0x80, 0x80}}, |
| 155 | {name: "push -255", val: -255, expected: []byte{OP_DATA_2, 0xff, 0x80}}, |
| 156 | {name: "push -256", val: -256, expected: []byte{OP_DATA_2, 0x00, 0x81}}, |
| 157 | {name: "push -32767", val: -32767, expected: []byte{OP_DATA_2, 0xff, 0xff}}, |
| 158 | {name: "push -32768", val: -32768, expected: []byte{OP_DATA_3, 0x00, 0x80, 0x80}}, |
| 159 | } |
| 160 | |
| 161 | builder := NewScriptBuilder() |
| 162 | t.Logf("Running %d tests", len(tests)) |
| 163 | for i, test := range tests { |
| 164 | builder.Reset().AddInt64(test.val) |
| 165 | result, err := builder.Script() |
| 166 | if err != nil { |
| 167 | t.Errorf("ScriptBuilder.AddInt64 #%d (%s) unexpected "+ |
| 168 | "error: %v", i, test.name, err) |
| 169 | continue |
| 170 | } |
nothing calls this directly
no test coverage detected
searching dependent graphs…