name tests

This commit is contained in:
Sina Mahmoodi 2023-07-17 16:01:12 +02:00
parent 98882fc279
commit b865824787

View file

@ -662,6 +662,7 @@ func TestMulticallV1(t *testing.T) {
Calls []callRes
}
var testSuite = []struct {
name string
blocks []CallBatch
tag rpc.BlockNumberOrHash
includeTransfers *bool
@ -672,6 +673,7 @@ func TestMulticallV1(t *testing.T) {
// First value transfer OK after state override.
// Second one should succeed because of first transfer.
{
name: "simple",
tag: latest,
blocks: []CallBatch{{
StateOverrides: &StateOverride{
@ -707,6 +709,7 @@ func TestMulticallV1(t *testing.T) {
}},
}, {
// State build-up over blocks.
name: "simple-multi-block",
tag: latest,
blocks: []CallBatch{{
StateOverrides: &StateOverride{
@ -777,6 +780,7 @@ func TestMulticallV1(t *testing.T) {
}},
}, {
// Block overrides should work, each call is simulated on a different block number
name: "block-overrides",
tag: latest,
blocks: []CallBatch{{
BlockOverrides: &BlockOverrides{
@ -833,6 +837,7 @@ func TestMulticallV1(t *testing.T) {
},
// Block numbers must be in order.
{
name: "block-number-order",
tag: latest,
blocks: []CallBatch{{
BlockOverrides: &BlockOverrides{
@ -864,6 +869,7 @@ func TestMulticallV1(t *testing.T) {
},
// Test on solidity storage example. Set value in one call, read in next.
{
name: "storage-contract",
tag: latest,
blocks: []CallBatch{{
StateOverrides: &StateOverride{
@ -905,6 +911,7 @@ func TestMulticallV1(t *testing.T) {
},
// Test logs output.
{
name: "logs",
tag: latest,
blocks: []CallBatch{{
StateOverrides: &StateOverride{
@ -946,6 +953,7 @@ func TestMulticallV1(t *testing.T) {
},
// Test ecrecover override
{
name: "ecrecover-override",
tag: latest,
blocks: []CallBatch{{
StateOverrides: &StateOverride{
@ -1009,6 +1017,7 @@ func TestMulticallV1(t *testing.T) {
},
// Test ether transfers.
{
name: "transfer-logs",
tag: latest,
blocks: []CallBatch{{
StateOverrides: &StateOverride{
@ -1063,6 +1072,7 @@ func TestMulticallV1(t *testing.T) {
},
// Tests selfdestructed contract.
{
name: "selfdestruct",
tag: latest,
blocks: []CallBatch{{
Calls: []TransactionArgs{{
@ -1111,6 +1121,7 @@ func TestMulticallV1(t *testing.T) {
}
for i, tc := range testSuite {
t.Run(tc.name, func(t *testing.T) {
opts := multicallOpts{Blocks: tc.blocks}
if tc.includeTransfers != nil && *tc.includeTransfers {
opts.TraceTransfers = true
@ -1118,8 +1129,7 @@ func TestMulticallV1(t *testing.T) {
result, err := api.MulticallV1(context.Background(), opts, tc.tag)
if tc.expectErr != nil {
if err == nil {
t.Errorf("test %d: want error %v, have nothing", i, tc.expectErr)
continue
t.Fatalf("test %d: want error %v, have nothing", i, tc.expectErr)
}
if !errors.Is(err, tc.expectErr) {
// Second try
@ -1127,11 +1137,10 @@ func TestMulticallV1(t *testing.T) {
t.Errorf("test %d: error mismatch, want %v, have %v", i, tc.expectErr, err)
}
}
continue
return
}
if err != nil {
t.Errorf("test %d: want no error, have %v", i, err)
continue
t.Fatalf("test %d: want no error, have %v", i, err)
}
// Turn result into res-struct
var have []blockRes
@ -1142,6 +1151,7 @@ func TestMulticallV1(t *testing.T) {
if !reflect.DeepEqual(have, tc.want) {
t.Errorf("test %d, result mismatch, have\n%v\n, want\n%v\n", i, have, tc.want)
}
})
}
}