wip - follower tests

This commit is contained in:
tidwall 2022-09-27 13:09:28 -07:00
parent 8608ed0917
commit 8e0bf1957d
2 changed files with 65 additions and 0 deletions

64
tests/follower_test.go Normal file
View File

@ -0,0 +1,64 @@
package tests
import "time"
func subTestFollower(g *testGroup) {
g.regSubTest("follow", follower_follow_test)
}
func follower_follow_test(mc *mockServer) error {
mc2, err := mockOpenServer(MockServerOptions{
Silent: true, Metrics: false,
})
if err != nil {
return err
}
defer mc2.Close()
err = mc.DoBatch(
Do("SET", "mykey", "truck1", "POINT", 10, 10).OK(),
Do("SET", "mykey", "truck2", "POINT", 10, 10).OK(),
Do("SET", "mykey", "truck3", "POINT", 10, 10).OK(),
Do("SET", "mykey", "truck4", "POINT", 10, 10).OK(),
Do("SET", "mykey", "truck5", "POINT", 10, 10).OK(),
Do("SET", "mykey", "truck6", "POINT", 10, 10).OK(),
)
if err != nil {
return err
}
err = mc2.DoBatch(
Do("SET", "mykey2", "truck1", "POINT", 10, 10).OK(),
Do("SET", "mykey2", "truck2", "POINT", 10, 10).OK(),
Do("GET", "mykey2", "truck1").Str(`{"type":"Point","coordinates":[10,10]}`),
Do("GET", "mykey2", "truck2").Str(`{"type":"Point","coordinates":[10,10]}`),
Do("FOLLOW", "localhost", mc.port).OK(),
Do("GET", "mykey2", "truck1").Err("catching up to leader"),
Sleep(time.Second),
Do("GET", "mykey2", "truck1").Err(`<nil>`),
Do("GET", "mykey2", "truck2").Err(`<nil>`),
)
if err != nil {
return err
}
// err = mc.DoBatch(
// Do("SET", "mykey", "truck7", "POINT", 10, 10).OK(),
// Do("SET", "mykey", "truck8", "POINT", 10, 10).OK(),
// Do("SET", "mykey", "truck9", "POINT", 10, 10).OK(),
// )
// if err != nil {
// return err
// }
// err = mc2.DoBatch(
// Sleep(time.Second/2),
// Do("GET", "mykey1", "truck7").Str(`{"type":"Point","coordinates":[10,10]}`),
// Do("GET", "mykey1", "truck8").Str(`{"type":"Point","coordinates":[10,10]}`),
// Do("GET", "mykey1", "truck9").Str(`{"type":"Point","coordinates":[10,10]}`),
// )
// if err != nil {
// return err
// }
return nil
}

View File

@ -55,6 +55,7 @@ func TestIntegration(t *testing.T) {
regTestGroup("timeouts", subTestTimeout)
regTestGroup("metrics", subTestMetrics)
regTestGroup("aof", subTestAOF)
regTestGroup("follower", subTestFollower)
runTestGroups(t)
}