ソースを参照

Merge pull request #449 from Gustav-Simonsson/add_blockchain_tests2

Add empty total difficulty to test blocks and clean up stopping the node
Jeffrey Wilcke 10 年 前
コミット
0542df941f
3 ファイル変更31 行追加3 行削除
  1. 11 3
      cmd/blocktest/main.go
  2. 9 0
      cmd/utils/cmd.go
  3. 11 0
      eth/backend.go

+ 11 - 3
cmd/blocktest/main.go

@@ -168,7 +168,7 @@ func main() {
 		logger.Flush()
 	}()
 
-	utils.HandleInterrupt()
+	//utils.HandleInterrupt()
 
 	utils.InitConfig(VmType, ConfigFile, Datadir, "ethblocktest")
 
@@ -190,12 +190,17 @@ func main() {
 		MinerThreads: MinerThreads,
 	})
 
+	utils.StartEthereumForTest(ethereum)
 	utils.StartRpc(ethereum, RpcListenAddress, RpcPort)
-	utils.StartEthereum(ethereum)
 
 	ethereum.ChainManager().ResetWithGenesisBlock(blocks[0])
+	// bph := ethereum.ChainManager().GetBlock(blocks[1].Header().ParentHash)
+	// fmt.Println("bph: ", bph)
 
-	// fmt.Println("HURR: ", hex.EncodeToString(ethutil.Encode(blocks[0].RlpData())))
+	//fmt.Println("b0: ", hex.EncodeToString(ethutil.Encode(blocks[0].RlpData())))
+	//fmt.Println("b0: ", hex.EncodeToString(blocks[0].Hash()))
+	//fmt.Println("b1: ", hex.EncodeToString(ethutil.Encode(blocks[1].RlpData())))
+	//fmt.Println("b1: ", hex.EncodeToString(blocks[1].Hash()))
 
 	go ethereum.ChainManager().InsertChain(types.Blocks{blocks[1]})
 	fmt.Println("OK! ")
@@ -254,6 +259,9 @@ func loadBlocksFromTestFile(filePath string) (blocks types.Blocks, err error) {
 	}
 
 	gb := types.NewBlockWithHeader(gbh)
+	//gb.uncles = *new([]*types.Header)
+	//gb.transactions = *new(types.Transactions)
+	gb.Td = new(big.Int)
 	gb.Reward = new(big.Int)
 
 	testBlock := new(types.Block)

+ 9 - 0
cmd/utils/cmd.go

@@ -133,6 +133,15 @@ func StartEthereum(ethereum *eth.Ethereum) {
 	})
 }
 
+func StartEthereumForTest(ethereum *eth.Ethereum) {
+	clilogger.Infoln("Starting ", ethereum.Name())
+	ethereum.StartForTest()
+	RegisterInterrupt(func(sig os.Signal) {
+		ethereum.Stop()
+		logger.Flush()
+	})
+}
+
 func KeyTasks(keyManager *crypto.KeyManager, KeyRing string, GenAddr bool, SecretFile string, ExportDir string, NonInteractive bool) {
 	var err error
 	switch {

+ 11 - 0
eth/backend.go

@@ -275,6 +275,17 @@ func (s *Ethereum) Start() error {
 	return nil
 }
 
+func (s *Ethereum) StartForTest() {
+		jsonlogger.LogJson(&logger.LogStarting{
+		ClientString:    s.net.Name,
+		ProtocolVersion: ProtocolVersion,
+	})
+
+	// Start services
+	s.txPool.Start()
+	s.blockPool.Start()
+}
+
 func (self *Ethereum) SuggestPeer(nodeURL string) error {
 	n, err := discover.ParseNode(nodeURL)
 	if err != nil {