github.com/pingcap/chaos@v0.0.0-20190710112158-c86faf4b3719/cmd/txnkv/main.go (about) 1 package main 2 3 import ( 4 "context" 5 "flag" 6 "log" 7 "time" 8 9 "github.com/pingcap/chaos/cmd/util" 10 "github.com/pingcap/chaos/db/txnkv" 11 "github.com/pingcap/chaos/pkg/check/porcupine" 12 "github.com/pingcap/chaos/pkg/control" 13 "github.com/pingcap/chaos/pkg/core" 14 "github.com/pingcap/chaos/pkg/model" 15 "github.com/pingcap/chaos/pkg/verify" 16 ) 17 18 var ( 19 requestCount = flag.Int("request-count", 500, "client test request count") 20 round = flag.Int("round", 3, "client test request count") 21 runTime = flag.Duration("run-time", 10*time.Minute, "client test run time") 22 clientCase = flag.String("case", "register", "client test case, like register") 23 historyFile = flag.String("history", "./history.log", "history file") 24 nemesises = flag.String("nemesis", "", "nemesis, seperated by name, like random_kill,all_kill") 25 ) 26 27 func main() { 28 flag.Parse() 29 30 cfg := control.Config{ 31 DB: "txnkv", 32 RequestCount: *requestCount, 33 RunRound: *round, 34 RunTime: *runTime, 35 History: *historyFile, 36 } 37 38 var creator core.ClientCreator 39 switch *clientCase { 40 case "register": 41 creator = txnkv.RegisterClientCreator{} 42 default: 43 log.Fatalf("invalid client test case %s", *clientCase) 44 } 45 46 verifySuit := verify.Suit{ 47 Model: model.RegisterModel(), 48 Checker: porcupine.Checker{}, 49 Parser: model.RegisterParser(), 50 } 51 suit := util.Suit{ 52 Config: &cfg, 53 ClientCreator: creator, 54 Nemesises: *nemesises, 55 VerifySuit: verifySuit, 56 } 57 suit.Run(context.Background(), []string{}) 58 }