(t *testing.T, itest []interface{}, sec scriptErrChecker)
| 242 | } |
| 243 | |
| 244 | func doScriptJSONTest(t *testing.T, itest []interface{}, sec scriptErrChecker) (err error) { |
| 245 | if len(itest) == 0 { |
| 246 | err = fmt.Errorf("empty itest[] %#v", itest) |
| 247 | t.Error(err) |
| 248 | return err |
| 249 | } |
| 250 | |
| 251 | var nValue int64 |
| 252 | if farr, ok := itest[0].([]interface{}); ok { |
| 253 | nValue = int64(farr[0].(float64)) * 1e8 |
| 254 | itest = itest[1:] |
| 255 | } |
| 256 | if len(itest) < 4 { |
| 257 | return nil |
| 258 | } |
| 259 | test := interface2string(itest) |
| 260 | if test == nil { |
| 261 | err = fmt.Errorf("can not convert a test to a string slice, itest[] %#v", itest) |
| 262 | t.Error(err) |
| 263 | return err |
| 264 | } |
| 265 | // fmt.Printf("%#v\n", itest) |
| 266 | |
| 267 | scriptSigString, scriptPubKeyString, scriptFlagString, scriptErrorString := test[0], test[1], test[2], test[3] |
| 268 | // fmt.Printf("sig(%s), pubkey(%s), flag(%s), err(%s)\n", |
| 269 | // scriptSigString, scriptPubKeyString, scriptFlagString, scriptErrorString) |
| 270 | |
| 271 | scriptSigBytes, err := parseScriptFrom(scriptSigString, opMap) |
| 272 | if err != nil { |
| 273 | t.Errorf("%v itest[] %v", err, itest) |
| 274 | return err |
| 275 | } |
| 276 | |
| 277 | scriptPubKeyBytes, err := parseScriptFrom(scriptPubKeyString, opMap) |
| 278 | if err != nil { |
| 279 | t.Errorf("%v itest[] %v", err, itest) |
| 280 | return err |
| 281 | } |
| 282 | // fmt.Printf("sig:%v pub:%v\n", scriptSigBytes, scriptPubKeyBytes) |
| 283 | |
| 284 | scriptSig := script.NewScriptRaw(scriptSigBytes) |
| 285 | if scriptSig == nil { |
| 286 | t.Errorf("parse sig script err itest[] %#v", itest) |
| 287 | return err |
| 288 | } |
| 289 | scriptPubKey := script.NewScriptRaw(scriptPubKeyBytes) |
| 290 | if scriptPubKey == nil { |
| 291 | t.Errorf("new script for pubkey err, itest[] %#v", itest) |
| 292 | return err |
| 293 | } |
| 294 | |
| 295 | flags, err := parseScriptFlag(scriptFlagString) |
| 296 | if err != nil { |
| 297 | t.Errorf("parse script flag err, itest[] %#v", itest) |
| 298 | return err |
| 299 | } |
| 300 | scriptNumBytes := make([][]byte, 0) |
| 301 | scriptNum := script.NewScriptNum(0) |
no test coverage detected