github.com/linapex/ethereum-dpos-chinese@v0.0.0-20190316121959-b78b3a4a1ece/cmd/ethkey/run_test.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 12:09:27</date> 10 //</624342589629272064> 11 12 13 package main 14 15 import ( 16 "fmt" 17 "os" 18 "testing" 19 20 "github.com/docker/docker/pkg/reexec" 21 "github.com/ethereum/go-ethereum/internal/cmdtest" 22 ) 23 24 type testEthkey struct { 25 *cmdtest.TestCmd 26 } 27 28 //使用给定的命令行参数生成ethkey。 29 func runEthkey(t *testing.T, args ...string) *testEthkey { 30 tt := new(testEthkey) 31 tt.TestCmd = cmdtest.NewTestCmd(t, tt) 32 tt.Run("ethkey-test", args...) 33 return tt 34 } 35 36 func TestMain(m *testing.M) { 37 //如果我们在run ethkey中被执行为“ethkey测试”,请运行该应用程序。 38 reexec.Register("ethkey-test", func() { 39 if err := app.Run(os.Args); err != nil { 40 fmt.Fprintln(os.Stderr, err) 41 os.Exit(1) 42 } 43 os.Exit(0) 44 }) 45 //检查我们是否被重新执行了 46 if reexec.Init() { 47 return 48 } 49 os.Exit(m.Run()) 50 } 51