github.com/pingcap/chaos@v0.0.0-20190710112158-c86faf4b3719/db/tidb/sequential_test.go (about) 1 package tidb 2 3 import ( 4 "testing" 5 6 "github.com/pingcap/chaos/pkg/core" 7 ) 8 9 func TestGenRequest(t *testing.T) { 10 for i := 0; i < 10000; i++ { 11 _ = genRequest().(seqRequest) 12 } 13 } 14 15 func BenchmarkGenRequest(b *testing.B) { 16 _ = genRequest().(seqRequest) 17 } 18 19 func TestCheckSequential(t *testing.T) { 20 good := []core.Operation{ 21 core.Operation{Action: core.InvokeOperation, Proc: 0, Data: seqRequest{}}, 22 core.Operation{Action: core.InvokeOperation, Proc: 1, Data: seqRequest{}}, 23 core.Operation{Action: core.InvokeOperation, Proc: 2, Data: seqRequest{}}, 24 core.Operation{Action: core.ReturnOperation, Proc: 1, Data: seqResponse{Ok: true, K: 1, V: []string{"", "1", "1"}}}, 25 core.Operation{Action: core.ReturnOperation, Proc: 0, Data: seqResponse{Ok: true, K: 0, V: []string{"", "", "0"}}}, 26 core.Operation{Action: core.ReturnOperation, Proc: 2, Data: seqResponse{Ok: true, K: 2, V: []string{"2", "2", "2"}}}, 27 } 28 bad := []core.Operation{ 29 core.Operation{Action: core.InvokeOperation, Proc: 0, Data: seqRequest{}}, 30 core.Operation{Action: core.InvokeOperation, Proc: 1, Data: seqRequest{}}, 31 core.Operation{Action: core.InvokeOperation, Proc: 2, Data: seqRequest{}}, 32 core.Operation{Action: core.ReturnOperation, Proc: 1, Data: seqResponse{Ok: true, K: 1, V: []string{"", "1", "1"}}}, 33 core.Operation{Action: core.ReturnOperation, Proc: 0, Data: seqResponse{Ok: true, K: 0, V: []string{"0", "", "0"}}}, 34 core.Operation{Action: core.ReturnOperation, Proc: 2, Data: seqResponse{Ok: true, K: 2, V: []string{"2", "2", "2"}}}, 35 } 36 checker := NewSequentialChecker() 37 ok, err := checker.Check(nil, good) 38 if !ok || err != nil { 39 t.Fatalf("good must pass check") 40 } 41 ok, err = checker.Check(nil, bad) 42 if ok { 43 t.Fatalf("bad must fail check") 44 } 45 }