瀏覽代碼

In blocktest cmd, disable network and add RPC flag

Gustav Simonsson 10 年之前
父節點
當前提交
33c5186fd0
共有 2 個文件被更改,包括 12 次插入5 次删除
  1. 11 4
      cmd/ethereum/blocktest.go
  2. 1 1
      cmd/utils/flags.go

+ 11 - 4
cmd/ethereum/blocktest.go

@@ -26,10 +26,10 @@ be able to interact with the chain defined by the test.
 }
 
 func runblocktest(ctx *cli.Context) {
-	if len(ctx.Args()) != 2 {
-		utils.Fatalf("This command requires two arguments.")
+	if len(ctx.Args()) != 3 {
+		utils.Fatalf("Usage: ethereum blocktest <path-to-test-file> <test-name> {rpc, norpc}")
 	}
-	file, testname := ctx.Args()[0], ctx.Args()[1]
+	file, testname, startrpc := ctx.Args()[0], ctx.Args()[1], ctx.Args()[2]
 
 	bt, err := tests.LoadBlockTests(file)
 	if err != nil {
@@ -42,6 +42,7 @@ func runblocktest(ctx *cli.Context) {
 
 	cfg := utils.MakeEthConfig(ClientIdentifier, Version, ctx)
 	cfg.NewDB = func(path string) (common.Database, error) { return ethdb.NewMemDatabase() }
+	cfg.MaxPeers = 0 // disable network
 	ethereum, err := eth.New(cfg)
 	if err != nil {
 		utils.Fatalf("%v", err)
@@ -62,5 +63,11 @@ func runblocktest(ctx *cli.Context) {
 	} else {
 		fmt.Println("Block Test chain loaded, starting ethereum.")
 	}
-	startEth(ctx, ethereum)
+	if startrpc == "rpc" {
+		startEth(ctx, ethereum)
+		utils.StartRPC(ethereum, ctx)
+		ethereum.WaitForShutdown()
+	} else {
+		startEth(ctx, ethereum)
+	}
 }

+ 1 - 1
cmd/utils/flags.go

@@ -256,7 +256,7 @@ func StartRPC(eth *eth.Ethereum, ctx *cli.Context) {
 	addr := ctx.GlobalString(RPCListenAddrFlag.Name)
 	port := ctx.GlobalInt(RPCPortFlag.Name)
 	dataDir := ctx.GlobalString(DataDirFlag.Name)
-
+	fmt.Println("Starting RPC on port: ", port)
 	l, err := net.Listen("tcp", fmt.Sprintf("%s:%d", addr, port))
 	if err != nil {
 		Fatalf("Can't listen on %s:%d: %v", addr, port, err)