MCPcopy Create free account
hub / github.com/CPChain/chain / TestMultiReturnWithArray

Function TestMultiReturnWithArray

accounts/abi/unpack_test.go:437–458  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

435}
436
437func TestMultiReturnWithArray(t *testing.T) {
438 const definition = `[{"name" : "multi", "outputs": [{"type": "uint64[3]"}, {"type": "uint64"}]}]`
439 abi, err := JSON(strings.NewReader(definition))
440 if err != nil {
441 t.Fatal(err)
442 }
443 buff := new(bytes.Buffer)
444 buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000009"))
445 buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008"))
446
447 ret1, ret1Exp := new([3]uint64), [3]uint64{9, 9, 9}
448 ret2, ret2Exp := new(uint64), uint64(8)
449 if err := abi.Unpack(&[]interface{}{ret1, ret2}, "multi", buff.Bytes()); err != nil {
450 t.Fatal(err)
451 }
452 if !reflect.DeepEqual(*ret1, ret1Exp) {
453 t.Error("array result", *ret1, "!= Expected", ret1Exp)
454 }
455 if *ret2 != ret2Exp {
456 t.Error("int result", *ret2, "!= Expected", ret2Exp)
457 }
458}
459
460func TestMultiReturnWithDeeplyNestedArray(t *testing.T) {
461 // Similar to TestMultiReturnWithArray, but with a special case in mind:

Callers

nothing calls this directly

Calls 6

JSONFunction · 0.85
FatalMethod · 0.65
WriteMethod · 0.65
BytesMethod · 0.65
ErrorMethod · 0.65
UnpackMethod · 0.45

Tested by

no test coverage detected