MCPcopy Create free account
hub / github.com/copernet/copernicus / doScriptJSONTest

Function doScriptJSONTest

logic/lscript/lscript_test.go:244–325  ·  view source on GitHub ↗
(t *testing.T, itest []interface{}, sec scriptErrChecker)

Source from the content-addressed store, hash-verified

242}
243
244func 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)

Callers 1

TestScriptJsonTestsFunction · 0.85

Calls 12

SerializeMethod · 0.95
AddTxInMethod · 0.95
AddTxOutMethod · 0.95
GetHashMethod · 0.95
interface2stringFunction · 0.85
VerifyScriptFunction · 0.85
NewScriptRealCheckerFunction · 0.85
PushMultDataMethod · 0.80
checkMethod · 0.80
parseScriptFromFunction · 0.70
parseScriptFlagFunction · 0.70
ErrorMethod · 0.45

Tested by

no test coverage detected