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  }