Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 05ec09b

Browse files
committed
add another test for referee
1 parent a46c4e6 commit 05ec09b

File tree

2 files changed

+56
-1
lines changed

2 files changed

+56
-1
lines changed

tests2/lib/failure_injector.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,30 @@ class SkewTime(FailureInjector):
8181
def __init__(self, node):
8282
self.node = node
8383
super().__init__()
84+
85+
class StopNode(FailureInjector):
86+
87+
def __init__(self, node):
88+
self.node = node
89+
super().__init__()
90+
91+
# XXX: Is it really a good idea to call cli.stop inside method called start?
92+
def start(self):
93+
self.docker_api.stop(self.node)
94+
95+
def stop(self):
96+
return
97+
98+
99+
class StartNode(FailureInjector):
100+
101+
def __init__(self, node):
102+
self.node = node
103+
super().__init__()
104+
105+
# XXX: Is it really a good idea to call cli.stop inside method called start?
106+
def start(self):
107+
return
108+
109+
def stop(self):
110+
self.docker_api.start(self.node)

tests2/test_referee.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from lib.test_helper import *
1515

1616

17-
class MajorTest(unittest.TestCase, TestHelper):
17+
class RefereeTest(unittest.TestCase, TestHelper):
1818

1919
@classmethod
2020
def setUpClass(cls):
@@ -108,6 +108,34 @@ def test_double_failure_referee(self):
108108
self.assertIsolation(aggs)
109109

110110

111+
def test_winner_restart(self):
112+
print('### test_winner_restart ###')
113+
114+
aggs_failure, aggs = self.performFailure(StopNode('node1'))
115+
116+
self.assertNoCommits(aggs_failure[:1])
117+
self.assertCommits(aggs_failure[1:])
118+
self.assertIsolation(aggs_failure)
119+
120+
self.assertNoCommits(aggs[:1])
121+
self.assertCommits(aggs[1:])
122+
self.assertIsolation(aggs)
123+
124+
aggs_failure, aggs = self.performFailure(RestartNode('node2'))
125+
126+
self.assertNoCommits(aggs_failure)
127+
self.assertIsolation(aggs_failure)
128+
129+
self.assertNoCommits(aggs[:1])
130+
self.assertCommits(aggs[1:])
131+
self.assertIsolation(aggs)
132+
133+
# need to start node1 to perform consequent tests
134+
docker_api = docker.Client()
135+
docker_api.start('node1')
136+
time.sleep(20)
137+
138+
111139
if __name__ == '__main__':
112140
unittest.main()
113141

0 commit comments

Comments
 (0)