Skip to content

Commit 70b6174

Browse files
committed
cmd/geth, core: make "geth blocktest" work again
The test genesis block was not written properly, block insertion failed immediately. While here, fix the panic when shutting down "geth blocktest" with Ctrl+C. The signal handler is now installed automatically, causing ethereum.Stop to crash because everything is already stopped.
1 parent e56cbc2 commit 70b6174

File tree

2 files changed

+1
-6
lines changed

2 files changed

+1
-6
lines changed

cmd/geth/blocktestcmd.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ func runBlockTest(ctx *cli.Context) {
9191
if err != nil {
9292
utils.Fatalf("%v", err)
9393
}
94-
defer ethereum.Stop()
9594
if rpc {
9695
fmt.Println("Block Test post state validated, starting RPC interface.")
9796
startEth(ctx, ethereum)
@@ -106,32 +105,27 @@ func runOneBlockTest(ctx *cli.Context, test *tests.BlockTest) (*eth.Ethereum, er
106105
cfg.MaxPeers = 0 // disable network
107106
cfg.Shh = false // disable whisper
108107
cfg.NAT = nil // disable port mapping
109-
110108
ethereum, err := eth.New(cfg)
111109
if err != nil {
112110
return nil, err
113111
}
114112

115113
// import the genesis block
116114
ethereum.ResetWithGenesisBlock(test.Genesis)
117-
118115
// import pre accounts
119116
_, err = test.InsertPreState(ethereum)
120117
if err != nil {
121118
return ethereum, fmt.Errorf("InsertPreState: %v", err)
122119
}
123120

124121
cm := ethereum.ChainManager()
125-
126122
validBlocks, err := test.TryBlocksInsert(cm)
127123
if err != nil {
128124
return ethereum, fmt.Errorf("Block Test load error: %v", err)
129125
}
130-
131126
newDB := cm.State()
132127
if err := test.ValidatePostState(newDB); err != nil {
133128
return ethereum, fmt.Errorf("post state validation failed: %v", err)
134129
}
135-
136130
return ethereum, test.ValidateImportedHeaders(cm, validBlocks)
137131
}

core/chain_manager.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ func (bc *ChainManager) ResetWithGenesisBlock(genesis *types.Block) {
279279
if err := WriteBlock(bc.chainDb, genesis); err != nil {
280280
glog.Fatalf("failed to write genesis block: %v", err)
281281
}
282+
bc.genesisBlock = genesis
282283
bc.insert(bc.genesisBlock)
283284
bc.currentBlock = bc.genesisBlock
284285
bc.setTotalDifficulty(genesis.Difficulty())

0 commit comments

Comments
 (0)