unit test that fails undeterministically on eip2930 txs, giving same error we are seeing in prod
This commit is contained in:
parent
5e7008c2d0
commit
830f0ffefd
BIN
statediff/indexer/ipfs/ipld/eip2930_test_data/eth-block-12252078
Normal file
BIN
statediff/indexer/ipfs/ipld/eip2930_test_data/eth-block-12252078
Normal file
Binary file not shown.
BIN
statediff/indexer/ipfs/ipld/eip2930_test_data/eth-block-12365585
Normal file
BIN
statediff/indexer/ipfs/ipld/eip2930_test_data/eth-block-12365585
Normal file
Binary file not shown.
BIN
statediff/indexer/ipfs/ipld/eip2930_test_data/eth-block-12365586
Normal file
BIN
statediff/indexer/ipfs/ipld/eip2930_test_data/eth-block-12365586
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
83
statediff/indexer/ipfs/ipld/eth_parser_test.go
Normal file
83
statediff/indexer/ipfs/ipld/eth_parser_test.go
Normal file
@ -0,0 +1,83 @@
|
||||
package ipld
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
"github.com/ethereum/go-ethereum/rlp"
|
||||
)
|
||||
|
||||
type kind string
|
||||
|
||||
const (
|
||||
legacy kind = "legacy"
|
||||
eip1559 kind = "eip2930"
|
||||
)
|
||||
|
||||
var blockFileNames = []string{
|
||||
"eth-block-12252078",
|
||||
"eth-block-12365585",
|
||||
"eth-block-12365586",
|
||||
}
|
||||
|
||||
var receiptsFileNames = []string{
|
||||
"eth-receipts-12252078",
|
||||
"eth-receipts-12365585",
|
||||
"eth-receipts-12365586",
|
||||
}
|
||||
|
||||
var kinds = []kind{
|
||||
eip1559,
|
||||
eip1559,
|
||||
legacy,
|
||||
}
|
||||
|
||||
type testCase struct {
|
||||
kind kind
|
||||
block *types.Block
|
||||
receipts types.Receipts
|
||||
}
|
||||
|
||||
func loadBlockData(t *testing.T) []testCase {
|
||||
fileDir := "./eip2930_test_data"
|
||||
testCases := make([]testCase, len(blockFileNames))
|
||||
for i, blockFileName := range blockFileNames {
|
||||
blockRLP, err := ioutil.ReadFile(filepath.Join(fileDir, blockFileName))
|
||||
if err != nil {
|
||||
t.Fatalf("failed to load blockRLP from file, err %v", err)
|
||||
}
|
||||
block := new(types.Block)
|
||||
if err := rlp.DecodeBytes(blockRLP, block); err != nil {
|
||||
t.Fatalf("failed to decode blockRLP, err %v", err)
|
||||
}
|
||||
receiptsFileName := receiptsFileNames[i]
|
||||
receiptsRLP, err := ioutil.ReadFile(filepath.Join(fileDir, receiptsFileName))
|
||||
if err != nil {
|
||||
t.Fatalf("failed to load receiptsRLP from file, err %s", err)
|
||||
}
|
||||
receipts := make(types.Receipts, 0)
|
||||
if err := rlp.DecodeBytes(receiptsRLP, &receipts); err != nil {
|
||||
t.Fatalf("failed to decode receiptsRLP, err %s", err)
|
||||
}
|
||||
testCases[i] = testCase{
|
||||
block: block,
|
||||
receipts: receipts,
|
||||
kind: kinds[i],
|
||||
}
|
||||
}
|
||||
return testCases
|
||||
}
|
||||
|
||||
func TestFromBlockAndReceipts(t *testing.T) {
|
||||
testCases := loadBlockData(t)
|
||||
for i, tc := range testCases {
|
||||
fmt.Printf("testing %d\r\n", i)
|
||||
_, _, _, _, _, _, err := FromBlockAndReceipts(tc.block, tc.receipts)
|
||||
if err != nil {
|
||||
t.Fatalf("error generating IPLDs from block and receipts, err %v, kind %s, block hash %s", err, tc.kind, tc.block.Hash())
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user