github.com/lfch/etcd-io/tests/v3@v3.0.0-20221004140520-eac99acd3e9d/functional/tester/case_network_blackhole.go (about)

     1  // Copyright 2018 The etcd Authors
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package tester
    16  
    17  import "github.com/lfch/etcd-io/tests/v3/functional/rpcpb"
    18  
    19  func inject_BLACKHOLE_PEER_PORT_TX_RX(clus *Cluster, idx int) error {
    20  	return clus.sendOp(idx, rpcpb.Operation_BLACKHOLE_PEER_PORT_TX_RX)
    21  }
    22  
    23  func recover_BLACKHOLE_PEER_PORT_TX_RX(clus *Cluster, idx int) error {
    24  	return clus.sendOp(idx, rpcpb.Operation_UNBLACKHOLE_PEER_PORT_TX_RX)
    25  }
    26  
    27  func new_Case_BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER(clus *Cluster) Case {
    28  	cc := caseByFunc{
    29  		rpcpbCase:     rpcpb.Case_BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER,
    30  		injectMember:  inject_BLACKHOLE_PEER_PORT_TX_RX,
    31  		recoverMember: recover_BLACKHOLE_PEER_PORT_TX_RX,
    32  	}
    33  	c := &caseFollower{cc, -1, -1}
    34  	return &caseDelay{
    35  		Case:          c,
    36  		delayDuration: clus.GetCaseDelayDuration(),
    37  	}
    38  }
    39  
    40  func new_Case_BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT() Case {
    41  	cc := caseByFunc{
    42  		rpcpbCase:     rpcpb.Case_BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT,
    43  		injectMember:  inject_BLACKHOLE_PEER_PORT_TX_RX,
    44  		recoverMember: recover_BLACKHOLE_PEER_PORT_TX_RX,
    45  	}
    46  	c := &caseFollower{cc, -1, -1}
    47  	return &caseUntilSnapshot{
    48  		rpcpbCase: rpcpb.Case_BLACKHOLE_PEER_PORT_TX_RX_ONE_FOLLOWER_UNTIL_TRIGGER_SNAPSHOT,
    49  		Case:      c,
    50  	}
    51  }
    52  
    53  func new_Case_BLACKHOLE_PEER_PORT_TX_RX_LEADER(clus *Cluster) Case {
    54  	cc := caseByFunc{
    55  		rpcpbCase:     rpcpb.Case_BLACKHOLE_PEER_PORT_TX_RX_LEADER,
    56  		injectMember:  inject_BLACKHOLE_PEER_PORT_TX_RX,
    57  		recoverMember: recover_BLACKHOLE_PEER_PORT_TX_RX,
    58  	}
    59  	c := &caseLeader{cc, -1, -1}
    60  	return &caseDelay{
    61  		Case:          c,
    62  		delayDuration: clus.GetCaseDelayDuration(),
    63  	}
    64  }
    65  
    66  func new_Case_BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT() Case {
    67  	cc := caseByFunc{
    68  		rpcpbCase:     rpcpb.Case_BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT,
    69  		injectMember:  inject_BLACKHOLE_PEER_PORT_TX_RX,
    70  		recoverMember: recover_BLACKHOLE_PEER_PORT_TX_RX,
    71  	}
    72  	c := &caseLeader{cc, -1, -1}
    73  	return &caseUntilSnapshot{
    74  		rpcpbCase: rpcpb.Case_BLACKHOLE_PEER_PORT_TX_RX_LEADER_UNTIL_TRIGGER_SNAPSHOT,
    75  		Case:      c,
    76  	}
    77  }
    78  
    79  func new_Case_BLACKHOLE_PEER_PORT_TX_RX_QUORUM(clus *Cluster) Case {
    80  	c := &caseQuorum{
    81  		caseByFunc: caseByFunc{
    82  			rpcpbCase:     rpcpb.Case_BLACKHOLE_PEER_PORT_TX_RX_QUORUM,
    83  			injectMember:  inject_BLACKHOLE_PEER_PORT_TX_RX,
    84  			recoverMember: recover_BLACKHOLE_PEER_PORT_TX_RX,
    85  		},
    86  		injected: make(map[int]struct{}),
    87  	}
    88  	return &caseDelay{
    89  		Case:          c,
    90  		delayDuration: clus.GetCaseDelayDuration(),
    91  	}
    92  }
    93  
    94  func new_Case_BLACKHOLE_PEER_PORT_TX_RX_ALL(clus *Cluster) Case {
    95  	c := &caseAll{
    96  		rpcpbCase:     rpcpb.Case_BLACKHOLE_PEER_PORT_TX_RX_ALL,
    97  		injectMember:  inject_BLACKHOLE_PEER_PORT_TX_RX,
    98  		recoverMember: recover_BLACKHOLE_PEER_PORT_TX_RX,
    99  	}
   100  	return &caseDelay{
   101  		Case:          c,
   102  		delayDuration: clus.GetCaseDelayDuration(),
   103  	}
   104  }