mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-27 23:26:44 +00:00
Ensure tests are still working properly
This commit is contained in:
parent
0435f76787
commit
eac7dd4d56
6 changed files with 32 additions and 21 deletions
|
|
@ -1675,6 +1675,11 @@ func newBlockHeaderFromChainHeader(hash common.Hash, h *types.Header, td *pbeth.
|
|||
parentBeaconRootBytes = root.Bytes()
|
||||
}
|
||||
|
||||
var requestHashBytes []byte
|
||||
if hash := h.RequestsHash; hash != nil {
|
||||
requestHashBytes = hash.Bytes()
|
||||
}
|
||||
|
||||
pbHead := &pbeth.BlockHeader{
|
||||
Hash: hash.Bytes(),
|
||||
Number: h.Number.Uint64(),
|
||||
|
|
@ -1698,6 +1703,7 @@ func newBlockHeaderFromChainHeader(hash common.Hash, h *types.Header, td *pbeth.
|
|||
BlobGasUsed: h.BlobGasUsed,
|
||||
ExcessBlobGas: h.ExcessBlobGas,
|
||||
ParentBeaconRoot: parentBeaconRootBytes,
|
||||
RequestsHash: requestHashBytes,
|
||||
|
||||
// Only set on Polygon fork(s)
|
||||
TxDependency: nil,
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ func Test_TypesHeader_AllConsensusFieldsAreKnown(t *testing.T) {
|
|||
// When adding support for a new hard-fork that adds new block header fields, it's normal that this value
|
||||
// changes. If you are sure the two struct are the same, then you can update the expected hash below
|
||||
// to the new value.
|
||||
expectedHash := common.HexToHash("5341947c531e5c9cf38202784b16ac66484fe1838aa6e825436b22321b927296")
|
||||
expectedHash := common.HexToHash("4ced4916132bbf6a7819a310bbac4abf354062a00efc980ea4f0bab406546ac5")
|
||||
|
||||
gethHeaderValue := reflect.New(gethHeaderType)
|
||||
fillAllFieldsWithNonEmptyValues(t, gethHeaderValue, reflect.VisibleFields(gethHeaderType))
|
||||
|
|
@ -146,7 +146,7 @@ func Test_TypesHeader_AllConsensusFieldsAreKnown(t *testing.T) {
|
|||
// actually a computed value based on the other fields in the struct, so if you change any field,
|
||||
// the hash will change also.
|
||||
//
|
||||
// On hard-fork, it happens that new fields are added, this test serves as a way to "detect" in codde
|
||||
// On hard-fork, it happens that new fields are added, this test serves as a way to "detect" in code
|
||||
// that the expected fields of `types.Header` changed
|
||||
require.Equal(t, expectedHash, gethHeader.Hash(),
|
||||
"Geth Header Hash mistmatch, got %q but expecting %q on *types.Header:\n\nGeth Header (from fillNonDefault(new(*types.Header)))\n%s",
|
||||
|
|
@ -464,7 +464,7 @@ func blockEvent(height uint64) tracing.BlockEvent {
|
|||
return tracing.BlockEvent{
|
||||
Block: types.NewBlock(&types.Header{
|
||||
Number: big.NewInt(int64(height)),
|
||||
}, nil, nil, nil, nil),
|
||||
}, nil, nil, nil),
|
||||
TD: b(1),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,11 +33,13 @@ func runPrestateBlock(t *testing.T, prestatePath string, hooks *tracing.Hooks) {
|
|||
|
||||
context := prestate.Context.toBlockContext(prestate.Genesis)
|
||||
|
||||
state := tests.MakePreState(rawdb.NewMemoryDatabase(), prestate.Genesis.Alloc, false, rawdb.HashScheme)
|
||||
defer state.Close()
|
||||
testState := tests.MakePreState(rawdb.NewMemoryDatabase(), prestate.Genesis.Alloc, false, rawdb.HashScheme)
|
||||
defer testState.Close()
|
||||
|
||||
state.StateDB.SetLogger(hooks)
|
||||
state.StateDB.SetTxContext(tx.Hash(), 0)
|
||||
state.NewHookedState(testState.StateDB, hooks)
|
||||
|
||||
// testState.StateDB.SetLogger(hooks)
|
||||
testState.StateDB.SetTxContext(tx.Hash(), 0)
|
||||
|
||||
block := types.NewBlock(&types.Header{
|
||||
ParentHash: prestate.Genesis.ToBlock().Hash(),
|
||||
|
|
@ -48,7 +50,9 @@ func runPrestateBlock(t *testing.T, prestatePath string, hooks *tracing.Hooks) {
|
|||
GasLimit: context.GasLimit,
|
||||
BaseFee: context.BaseFee,
|
||||
ParentBeaconRoot: ptr(common.Hash{}),
|
||||
}, []*types.Transaction{tx}, nil, nil, trie.NewStackTrie(nil))
|
||||
}, &types.Body{
|
||||
Transactions: []*types.Transaction{tx},
|
||||
}, nil, trie.NewStackTrie(nil))
|
||||
|
||||
hooks.OnBlockchainInit(prestate.Genesis.Config)
|
||||
hooks.OnBlockStart(tracing.BlockEvent{
|
||||
|
|
@ -62,7 +66,7 @@ func runPrestateBlock(t *testing.T, prestatePath string, hooks *tracing.Hooks) {
|
|||
prestate,
|
||||
&context.Coinbase,
|
||||
new(core.GasPool).AddGas(block.GasLimit()),
|
||||
state.StateDB,
|
||||
testState.StateDB,
|
||||
block.Header(),
|
||||
tx,
|
||||
&usedGas,
|
||||
|
|
@ -91,7 +95,7 @@ func newBlockchain(t *testing.T, alloc types.GenesisAlloc, context vm.BlockConte
|
|||
|
||||
blockchain, err := core.NewBlockChain(rawdb.NewMemoryDatabase(), core.DefaultCacheConfigWithScheme(rawdb.HashScheme), genesis, nil, ethash.NewFullFaker(), vm.Config{
|
||||
Tracer: tracer,
|
||||
}, nil, nil)
|
||||
}, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
return genesis, blockchain
|
||||
|
|
@ -126,6 +130,8 @@ func (h *testHasher) Hash() common.Hash {
|
|||
return common.BytesToHash(h.hasher.Sum(nil))
|
||||
}
|
||||
|
||||
var _ core.Validator = (*ignoreValidateStateValidator)(nil)
|
||||
|
||||
type ignoreValidateStateValidator struct {
|
||||
core.Validator
|
||||
}
|
||||
|
|
@ -134,6 +140,6 @@ func (v ignoreValidateStateValidator) ValidateBody(block *types.Block) error {
|
|||
return v.Validator.ValidateBody(block)
|
||||
}
|
||||
|
||||
func (v ignoreValidateStateValidator) ValidateState(block *types.Block, statedb *state.StateDB, receipts types.Receipts, usedGas uint64) error {
|
||||
func (v ignoreValidateStateValidator) ValidateState(block *types.Block, state *state.StateDB, res *core.ProcessResult, stateless bool) error {
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,11 +50,11 @@ func TestFirehoseChain(t *testing.T) {
|
|||
GasLimit: context.GasLimit,
|
||||
BaseFee: context.BaseFee,
|
||||
ParentBeaconRoot: ptr(common.Hash{}),
|
||||
}, nil, nil, nil, trie.NewStackTrie(nil))
|
||||
}, nil, nil, trie.NewStackTrie(nil))
|
||||
|
||||
blockchain.SetBlockValidatorAndProcessorForTesting(
|
||||
ignoreValidateStateValidator{core.NewBlockValidator(genesis.Config, blockchain, blockchain.Engine())},
|
||||
core.NewStateProcessor(genesis.Config, blockchain, blockchain.Engine()),
|
||||
ignoreValidateStateValidator{core.NewBlockValidator(genesis.Config, blockchain)},
|
||||
core.NewStateProcessor(genesis.Config, blockchain.HeaderChain()),
|
||||
)
|
||||
|
||||
n, err := blockchain.InsertChain(types.Blocks{block})
|
||||
|
|
@ -62,7 +62,7 @@ func TestFirehoseChain(t *testing.T) {
|
|||
require.Equal(t, 1, n)
|
||||
|
||||
genesisLine, blockLines, unknownLines := readTracerFirehoseLines(t, tracer)
|
||||
require.Len(t, unknownLines, 0, "Lines:\n%s", strings.Join(slicesMap(unknownLines, func(l unknwonLine) string { return "- '" + string(l) + "'" }), "\n"))
|
||||
require.Len(t, unknownLines, 0, "Lines:\n%s", strings.Join(slicesMap(unknownLines, func(l unknownLine) string { return "- '" + string(l) + "'" }), "\n"))
|
||||
require.NotNil(t, genesisLine)
|
||||
blockLines.assertEquals(t, filepath.Join("testdata", t.Name()),
|
||||
firehoseBlockLineParams{"1", "8e6ee4b1054d94df1d8a51fb983447dc2e27a854590c3ac0061f994284be8150", "0", "845bad515694a416bab4b8d44e22cf97a8c894a8502110ab807883940e185ce0", "0", "1000000000"},
|
||||
|
|
@ -90,7 +90,7 @@ func TestFirehosePrestate(t *testing.T) {
|
|||
runPrestateBlock(t, filepath.Join(folder, "prestate.json"), tracers.NewTracingHooksFromFirehose(tracer))
|
||||
|
||||
genesisLine, blockLines, unknownLines := readTracerFirehoseLines(t, tracer)
|
||||
require.Len(t, unknownLines, 0, "Lines:\n%s", strings.Join(slicesMap(unknownLines, func(l unknwonLine) string { return "- '" + string(l) + "'" }), "\n"))
|
||||
require.Len(t, unknownLines, 0, "Lines:\n%s", strings.Join(slicesMap(unknownLines, func(l unknownLine) string { return "- '" + string(l) + "'" }), "\n"))
|
||||
require.NotNil(t, genesisLine)
|
||||
blockLines.assertOnlyBlockEquals(t, folder, 1)
|
||||
})
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ import (
|
|||
|
||||
var configByName = map[string]*params.ChainConfig{
|
||||
"mainnet": params.MainnetChainConfig,
|
||||
"goerli": params.GoerliChainConfig,
|
||||
"sepolia": params.SepoliaChainConfig,
|
||||
"holesky": params.HoleskyChainConfig,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,9 +100,9 @@ type firehoseBlockLineParams struct {
|
|||
Time string
|
||||
}
|
||||
|
||||
type unknwonLine string
|
||||
type unknownLine string
|
||||
|
||||
func readTracerFirehoseLines(t *testing.T, tracer *tracers.Firehose) (genesisLine *firehoseInitLine, blockLines firehoseBlockLines, unknownLines []unknwonLine) {
|
||||
func readTracerFirehoseLines(t *testing.T, tracer *tracers.Firehose) (genesisLine *firehoseInitLine, blockLines firehoseBlockLines, unknownLines []unknownLine) {
|
||||
t.Helper()
|
||||
|
||||
lines := bytes.Split(tracer.InternalTestingBuffer().Bytes(), []byte{'\n'})
|
||||
|
|
@ -113,7 +113,7 @@ func readTracerFirehoseLines(t *testing.T, tracer *tracers.Firehose) (genesisLin
|
|||
|
||||
parts := bytes.Split(line, []byte{' '})
|
||||
if len(parts) == 0 || string(parts[0]) != "FIRE" {
|
||||
unknownLines = append(unknownLines, unknwonLine(line))
|
||||
unknownLines = append(unknownLines, unknownLine(line))
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
@ -147,7 +147,7 @@ func readTracerFirehoseLines(t *testing.T, tracer *tracers.Firehose) (genesisLin
|
|||
})
|
||||
|
||||
default:
|
||||
unknownLines = append(unknownLines, unknwonLine(line))
|
||||
unknownLines = append(unknownLines, unknownLine(line))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue