Skip to content

Commit 9ec5008

Browse files
authored
core: use in-memory freezer for tests (#29720)
* core: simplify chain tests * core, eth, cmd: use in-memory freezer for tests * core: restore tests
1 parent e96de64 commit 9ec5008

File tree

5 files changed

+22
-33
lines changed

5 files changed

+22
-33
lines changed

cmd/utils/history_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,7 @@ func TestHistoryImportAndExport(t *testing.T) {
162162
}
163163

164164
// Now import Era.
165-
freezer := t.TempDir()
166-
db2, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), freezer, "", false)
165+
db2, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), "", "", false)
167166
if err != nil {
168167
panic(err)
169168
}

core/block_validator_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,10 @@ func testHeaderVerificationForMerging(t *testing.T, isClique bool) {
154154
preHeaders := make([]*types.Header, len(preBlocks))
155155
for i, block := range preBlocks {
156156
preHeaders[i] = block.Header()
157-
t.Logf("Pre-merge header: %d", block.NumberU64())
158157
}
159158
postHeaders := make([]*types.Header, len(postBlocks))
160159
for i, block := range postBlocks {
161160
postHeaders[i] = block.Header()
162-
t.Logf("Post-merge header: %d", block.NumberU64())
163161
}
164162
// Run the header checker for blocks one-by-one, checking for both valid and invalid nonces
165163
chain, _ := NewBlockChain(rawdb.NewMemoryDatabase(), nil, gspec, nil, engine, vm.Config{}, nil, nil)

core/blockchain_test.go

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -785,7 +785,7 @@ func testFastVsFullChains(t *testing.T, scheme string) {
785785
t.Fatalf("failed to insert receipt %d: %v", n, err)
786786
}
787787
// Freezer style fast import the chain.
788-
ancientDb, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), t.TempDir(), "", false)
788+
ancientDb, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), "", "", false)
789789
if err != nil {
790790
t.Fatalf("failed to create temp freezer db: %v", err)
791791
}
@@ -875,12 +875,12 @@ func testLightVsFastVsFullChainHeads(t *testing.T, scheme string) {
875875
BaseFee: big.NewInt(params.InitialBaseFee),
876876
}
877877
)
878-
height := uint64(1024)
878+
height := uint64(64)
879879
_, blocks, receipts := GenerateChainWithGenesis(gspec, ethash.NewFaker(), int(height), nil)
880880

881881
// makeDb creates a db instance for testing.
882882
makeDb := func() ethdb.Database {
883-
db, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), t.TempDir(), "", false)
883+
db, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), "", "", false)
884884
if err != nil {
885885
t.Fatalf("failed to create temp freezer db: %v", err)
886886
}
@@ -1768,7 +1768,7 @@ func testLargeReorgTrieGC(t *testing.T, scheme string) {
17681768
competitor, _ := GenerateChain(genesis.Config, shared[len(shared)-1], engine, genDb, 2*state.TriesInMemory+1, func(i int, b *BlockGen) { b.SetCoinbase(common.Address{3}) })
17691769

17701770
// Import the shared chain and the original canonical one
1771-
db, _ := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), t.TempDir(), "", false)
1771+
db, _ := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), "", "", false)
17721772
defer db.Close()
17731773

17741774
chain, err := NewBlockChain(db, DefaultCacheConfigWithScheme(scheme), genesis, nil, engine, vm.Config{}, nil, nil)
@@ -1833,7 +1833,7 @@ func testBlockchainRecovery(t *testing.T, scheme string) {
18331833
funds = big.NewInt(1000000000)
18341834
gspec = &Genesis{Config: params.TestChainConfig, Alloc: types.GenesisAlloc{address: {Balance: funds}}}
18351835
)
1836-
height := uint64(1024)
1836+
height := uint64(64)
18371837
_, blocks, receipts := GenerateChainWithGenesis(gspec, ethash.NewFaker(), int(height), nil)
18381838

18391839
// Import the chain as a ancient-first node and ensure all pointers are updated
@@ -1908,7 +1908,7 @@ func testInsertReceiptChainRollback(t *testing.T, scheme string) {
19081908
}
19091909

19101910
// Set up a BlockChain that uses the ancient store.
1911-
ancientDb, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), t.TempDir(), "", false)
1911+
ancientDb, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), "", "", false)
19121912
if err != nil {
19131913
t.Fatalf("failed to create temp freezer db: %v", err)
19141914
}
@@ -1978,7 +1978,7 @@ func testLowDiffLongChain(t *testing.T, scheme string) {
19781978
})
19791979

19801980
// Import the canonical chain
1981-
diskdb, _ := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), t.TempDir(), "", false)
1981+
diskdb, _ := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), "", "", false)
19821982
defer diskdb.Close()
19831983

19841984
chain, err := NewBlockChain(diskdb, DefaultCacheConfigWithScheme(scheme), genesis, nil, engine, vm.Config{}, nil, nil)
@@ -2190,7 +2190,7 @@ func testInsertKnownChainData(t *testing.T, typ string, scheme string) {
21902190
b.OffsetTime(-9) // A higher difficulty
21912191
})
21922192
// Import the shared chain and the original canonical one
2193-
chaindb, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), t.TempDir(), "", false)
2193+
chaindb, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), "", "", false)
21942194
if err != nil {
21952195
t.Fatalf("failed to create temp freezer db: %v", err)
21962196
}
@@ -2361,7 +2361,7 @@ func testInsertKnownChainDataWithMerging(t *testing.T, typ string, mergeHeight i
23612361
}
23622362
})
23632363
// Import the shared chain and the original canonical one
2364-
chaindb, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), t.TempDir(), "", false)
2364+
chaindb, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), "", "", false)
23652365
if err != nil {
23662366
t.Fatalf("failed to create temp freezer db: %v", err)
23672367
}
@@ -3634,18 +3634,19 @@ func testSetCanonical(t *testing.T, scheme string) {
36343634
Alloc: types.GenesisAlloc{address: {Balance: funds}},
36353635
BaseFee: big.NewInt(params.InitialBaseFee),
36363636
}
3637-
signer = types.LatestSigner(gspec.Config)
3638-
engine = ethash.NewFaker()
3637+
signer = types.LatestSigner(gspec.Config)
3638+
engine = ethash.NewFaker()
3639+
chainLength = 10
36393640
)
36403641
// Generate and import the canonical chain
3641-
_, canon, _ := GenerateChainWithGenesis(gspec, engine, 2*state.TriesInMemory, func(i int, gen *BlockGen) {
3642+
_, canon, _ := GenerateChainWithGenesis(gspec, engine, chainLength, func(i int, gen *BlockGen) {
36423643
tx, err := types.SignTx(types.NewTransaction(gen.TxNonce(address), common.Address{0x00}, big.NewInt(1000), params.TxGas, gen.header.BaseFee, nil), signer, key)
36433644
if err != nil {
36443645
panic(err)
36453646
}
36463647
gen.AddTx(tx)
36473648
})
3648-
diskdb, _ := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), t.TempDir(), "", false)
3649+
diskdb, _ := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), "", "", false)
36493650
defer diskdb.Close()
36503651

36513652
chain, err := NewBlockChain(diskdb, DefaultCacheConfigWithScheme(scheme), gspec, nil, engine, vm.Config{}, nil, nil)
@@ -3659,7 +3660,7 @@ func testSetCanonical(t *testing.T, scheme string) {
36593660
}
36603661

36613662
// Generate the side chain and import them
3662-
_, side, _ := GenerateChainWithGenesis(gspec, engine, 2*state.TriesInMemory, func(i int, gen *BlockGen) {
3663+
_, side, _ := GenerateChainWithGenesis(gspec, engine, chainLength, func(i int, gen *BlockGen) {
36633664
tx, err := types.SignTx(types.NewTransaction(gen.TxNonce(address), common.Address{0x00}, big.NewInt(1), params.TxGas, gen.header.BaseFee, nil), signer, key)
36643665
if err != nil {
36653666
panic(err)
@@ -3698,8 +3699,8 @@ func testSetCanonical(t *testing.T, scheme string) {
36983699
verify(side[len(side)-1])
36993700

37003701
// Reset the chain head to original chain
3701-
chain.SetCanonical(canon[state.TriesInMemory-1])
3702-
verify(canon[state.TriesInMemory-1])
3702+
chain.SetCanonical(canon[chainLength-1])
3703+
verify(canon[chainLength-1])
37033704
}
37043705

37053706
// TestCanonicalHashMarker tests all the canonical hash markers are updated/deleted

core/txindexer_test.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package core
1818

1919
import (
2020
"math/big"
21-
"os"
2221
"testing"
2322

2423
"github.com/ethereum/go-ethereum/common"
@@ -211,8 +210,7 @@ func TestTxIndexer(t *testing.T) {
211210
},
212211
}
213212
for _, c := range cases {
214-
frdir := t.TempDir()
215-
db, _ := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), frdir, "", false)
213+
db, _ := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), "", "", false)
216214
rawdb.WriteAncientBlocks(db, append([]*types.Block{gspec.ToBlock()}, blocks...), append([]types.Receipts{{}}, receipts...), big.NewInt(0))
217215

218216
// Index the initial blocks from ancient store
@@ -238,6 +236,5 @@ func TestTxIndexer(t *testing.T) {
238236
verify(db, 0, indexer)
239237

240238
db.Close()
241-
os.RemoveAll(frdir)
242239
}
243240
}

eth/downloader/downloader_test.go

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ package downloader
1919
import (
2020
"fmt"
2121
"math/big"
22-
"os"
2322
"sync"
2423
"sync/atomic"
2524
"testing"
@@ -43,7 +42,6 @@ import (
4342

4443
// downloadTester is a test simulator for mocking out local block chain.
4544
type downloadTester struct {
46-
freezer string
4745
chain *core.BlockChain
4846
downloader *Downloader
4947

@@ -58,8 +56,7 @@ func newTester(t *testing.T) *downloadTester {
5856

5957
// newTesterWithNotification creates a new downloader test mocker.
6058
func newTesterWithNotification(t *testing.T, success func()) *downloadTester {
61-
freezer := t.TempDir()
62-
db, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), freezer, "", false)
59+
db, err := rawdb.NewDatabaseWithFreezer(rawdb.NewMemoryDatabase(), "", "", false)
6360
if err != nil {
6461
panic(err)
6562
}
@@ -76,9 +73,8 @@ func newTesterWithNotification(t *testing.T, success func()) *downloadTester {
7673
panic(err)
7774
}
7875
tester := &downloadTester{
79-
freezer: freezer,
80-
chain: chain,
81-
peers: make(map[string]*downloadTesterPeer),
76+
chain: chain,
77+
peers: make(map[string]*downloadTesterPeer),
8278
}
8379
tester.downloader = New(db, new(event.TypeMux), tester.chain, nil, tester.dropPeer, success)
8480
return tester
@@ -89,8 +85,6 @@ func newTesterWithNotification(t *testing.T, success func()) *downloadTester {
8985
func (dl *downloadTester) terminate() {
9086
dl.downloader.Terminate()
9187
dl.chain.Stop()
92-
93-
os.RemoveAll(dl.freezer)
9488
}
9589

9690
// newPeer registers a new block download source into the downloader.

0 commit comments

Comments
 (0)