PR: Part 2

This commit is contained in:
David Zhou 2025-05-13 15:24:48 -04:00
parent 7eaa0cb83b
commit 42aa31c867
2 changed files with 24 additions and 21 deletions

View file

@ -24,7 +24,7 @@ func TestFirehose_BlockPrintsToFirehose_SingleBlock(t *testing.T) {
f.OnBlockchainInit(params.AllEthashProtocolChanges) f.OnBlockchainInit(params.AllEthashProtocolChanges)
blockNumbers := []uint64{123, 124, 125} blockNumbers := []uint64{0}
for i, blockNum := range blockNumbers { for i, blockNum := range blockNumbers {
f.OnBlockStart(blockEvent(blockNum)) f.OnBlockStart(blockEvent(blockNum))
@ -40,24 +40,16 @@ func TestFirehose_BlockPrintsToFirehose_SingleBlock(t *testing.T) {
f.OnClose() f.OnClose()
output := f.InternalTestingBuffer().String() lines := strings.Split(strings.TrimSpace(f.InternalTestingBuffer().String()), "\n")
require.Len(t, lines, 2)
outNumber := make([]string, 0) require.Equal(t, "FIRE INIT 3.0 geth 1.15.10", lines[0])
for i, line := range strings.Split(output, "\n") {
if i == 0 {
require.Equal(t, "FIRE INIT 3.0 geth 1.15.10", line)
continue
}
fields := strings.SplitN(line, " ", 4) fields := strings.SplitN(lines[1], " ", 4)
if len(fields) >= 3 { require.GreaterOrEqual(t, len(fields), 3)
require.Equal(t, "FIRE", fields[0]) require.Equal(t, "FIRE", fields[0])
require.Equal(t, "BLOCK", fields[1]) require.Equal(t, "BLOCK", fields[1])
outNumber = append(outNumber, fields[2]) require.Equal(t, "0", fields[2])
}
}
require.Equal(t, []string{"123", "124", "125"}, outNumber)
} }
func TestFirehose_BlocksPrintToFirehose_MultipleBlocksInOrder(t *testing.T) { func TestFirehose_BlocksPrintToFirehose_MultipleBlocksInOrder(t *testing.T) {

View file

@ -1,6 +1,7 @@
package firehose_test package firehose_test
import ( import (
"fmt"
"math/big" "math/big"
"path/filepath" "path/filepath"
"strings" "strings"
@ -37,13 +38,17 @@ func TestFirehosePrestate(t *testing.T) {
"./testdata/TestFirehosePrestate/suicide_double_withdraw", "./testdata/TestFirehosePrestate/suicide_double_withdraw",
"./testdata/TestFirehosePrestate/extra_account_creations", "./testdata/TestFirehosePrestate/extra_account_creations",
} }
for _, concurrent := range []bool{true, false} { for _, concurrent := range []bool{true, false} {
for _, folder := range testFolders { for _, folder := range testFolders {
name := filepath.Base(folder) name := filepath.Base(folder)
concurrencyLabel := "sequential"
if concurrent {
concurrencyLabel = "concurrent"
}
for _, model := range tracingModels { for _, model := range tracingModels {
t.Run(string(model)+"/"+name, func(t *testing.T) { t.Run(fmt.Sprintf("%s/%s/%s", model, name, concurrencyLabel), func(t *testing.T) {
tracer, tracingHooks, onClose := newFirehoseTestTracer(t, model, concurrent) tracer, tracingHooks, onClose := newFirehoseTestTracer(t, model, concurrent)
defer onClose() defer onClose()
@ -52,7 +57,8 @@ func TestFirehosePrestate(t *testing.T) {
tracer.CloseBlockPrintQueue() tracer.CloseBlockPrintQueue()
genesisLine, blockLines, unknownLines := readTracerFirehoseLines(t, tracer) genesisLine, blockLines, unknownLines := readTracerFirehoseLines(t, tracer)
require.Len(t, unknownLines, 0, "Lines:\n%s", strings.Join(slicesMap(unknownLines, func(l unknownLine) 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) require.NotNil(t, genesisLine)
blockLines.assertOnlyBlockEquals(t, filepath.Join(folder, string(model)), 1) blockLines.assertOnlyBlockEquals(t, filepath.Join(folder, string(model)), 1)
}) })
@ -189,8 +195,13 @@ func testBlockTracesCorrectly(t *testing.T, genesisSpec *core.Genesis, engine co
t.Helper() t.Helper()
for _, concurrent := range []bool{true, false} { for _, concurrent := range []bool{true, false} {
concurrencyLabel := "sequential"
if concurrent {
concurrencyLabel = "concurrent"
}
for _, model := range tracingModels { for _, model := range tracingModels {
t.Run(string(model), func(t *testing.T) { t.Run(fmt.Sprintf("%s/%s", model, concurrencyLabel), func(t *testing.T) {
tracer, tracingHooks, onClose := newFirehoseTestTracer(t, model, concurrent) tracer, tracingHooks, onClose := newFirehoseTestTracer(t, model, concurrent)
defer onClose() defer onClose()