Browse Source

functional/tester: add "SIGQUIT_AND_REMOVE_LEADER"

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
Gyuho Lee 7 years ago
parent
commit
17351e5fe7

+ 1 - 0
functional.yaml

@@ -130,6 +130,7 @@ tester-config:
   - SIGTERM_ALL
   - SIGQUIT_AND_REMOVE_ONE_FOLLOWER
   - SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT
+  - SIGQUIT_AND_REMOVE_LEADER
   - BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER
   - BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT
   - BLACKHOLE_PEER_PORT_TX_RX_LEADER

+ 3 - 0
functional/tester/cluster.go

@@ -167,6 +167,9 @@ func (clus *Cluster) updateFailures() {
 		case "SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT":
 			clus.failures = append(clus.failures,
 				new_FailureCase_SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT(clus))
+		case "SIGQUIT_AND_REMOVE_LEADER":
+			clus.failures = append(clus.failures,
+				new_FailureCase_SIGQUIT_AND_REMOVE_LEADER(clus))
 
 		case "BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER":
 			clus.failures = append(clus.failures,

+ 1 - 0
functional/tester/cluster_test.go

@@ -164,6 +164,7 @@ func Test_read(t *testing.T) {
 				"SIGTERM_ALL",
 				"SIGQUIT_AND_REMOVE_ONE_FOLLOWER",
 				"SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT",
+				"SIGQUIT_AND_REMOVE_LEADER",
 				"BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER",
 				"BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT",
 				"BLACKHOLE_PEER_PORT_TX_RX_LEADER",

+ 13 - 0
functional/tester/failure_case_sigquit_remove.go

@@ -174,6 +174,19 @@ func new_FailureCase_SIGQUIT_AND_REMOVE_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT(clus
 	}
 }
 
+func new_FailureCase_SIGQUIT_AND_REMOVE_LEADER(clus *Cluster) Failure {
+	ff := failureByFunc{
+		failureCase:   rpcpb.FailureCase_SIGQUIT_AND_REMOVE_LEADER,
+		injectMember:  inject_SIGQUIT_ETCD_AND_REMOVE_DATA,
+		recoverMember: recover_SIGQUIT_ETCD_AND_REMOVE_DATA,
+	}
+	f := &failureLeader{ff, -1, -1}
+	return &failureDelay{
+		Failure:       f,
+		delayDuration: clus.GetFailureDelayDuration(),
+	}
+}
+
 func describeMembers(mresp *clientv3.MemberListResponse) (ss []string) {
 	ss = make([]string, len(mresp.Members))
 	for i, m := range mresp.Members {