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

Commit be1b3f6

Browse files
committed
run recovery test at travis
1 parent 6836fae commit be1b3f6

File tree

3 files changed

+25
-41
lines changed

3 files changed

+25
-41
lines changed

tests2/lib/bank_client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def finish_tx(self, name):
3030
if latency > self.max_latency:
3131
self.max_latency = latency
3232

33-
if name not in self.finish:
33+
if name not in self.finish:
3434
self.finish[name] = 1
3535
else:
3636
self.finish[name] += 1
@@ -194,7 +194,7 @@ def run(self):
194194
self.loop.run_forever()
195195

196196
def bgrun(self):
197-
print('Starting evloop in different process');
197+
print('Starting evloop in different process')
198198
self.parent_pipe, self.child_pipe = aioprocessing.AioPipe()
199199
self.evloop_process = multiprocessing.Process(target=self.run, args=())
200200
self.evloop_process.start()

tests2/lib/failure_injector.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ def container_exec(self, node, command):
99
exec_id = self.docker_api.exec_create(node, command, user='root')
1010
output = self.docker_api.exec_start(exec_id)
1111

12+
class NoFailure(FailureInjector):
13+
14+
def start(self):
15+
return
16+
17+
def stop(self):
18+
return
1219

1320
class SingleNodePartition(FailureInjector):
1421

tests2/test_recovery.py

Lines changed: 16 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,12 @@ class RecoveryTest(unittest.TestCase, TestHelper):
5757

5858
@classmethod
5959
def setUpClass(self):
60-
# subprocess.check_call(['docker-compose','up',
61-
# '--force-recreate',
62-
# '-d'])
60+
subprocess.check_call(['docker-compose','up',
61+
'--force-recreate',
62+
'-d'])
6363

6464
# XXX: add normal wait here
65-
# time.sleep(30)
65+
time.sleep(20)
6666
self.client = MtmClient([
6767
"dbname=regression user=postgres host=127.0.0.1 port=15432",
6868
"dbname=regression user=postgres host=127.0.0.1 port=15433",
@@ -75,24 +75,18 @@ def tearDownClass(self):
7575
print('tearDown')
7676
self.client.stop()
7777
# XXX: check nodes data identity here
78-
# subprocess.check_call(['docker-compose','down'])
78+
subprocess.check_call(['docker-compose','down'])
7979

8080
def test_normal_operations(self):
8181
print('### normal_operations ###')
8282

83-
self.client.clean_aggregates()
84-
time.sleep(TEST_DURATION)
85-
aggs_failure = self.client.get_aggregates()
86-
87-
self.client.clean_aggregates()
88-
time.sleep(TEST_RECOVERY_TIME)
89-
aggs = self.client.get_aggregates()
83+
aggs_failure, aggs = self.performFailure(NoFailure())
9084

91-
for agg in aggs_failure:
92-
self.assertTrue( 'commit' in aggs_failure[agg]['finish'] )
85+
self.assertCommits(aggs_failure)
86+
self.assertIsolation(aggs_failure)
9387

94-
for agg in aggs:
95-
self.assertTrue( 'commit' in aggs[agg]['finish'] )
88+
self.assertCommits(aggs)
89+
self.assertIsolation(aggs)
9690

9791

9892
def test_node_partition(self):
@@ -111,31 +105,14 @@ def test_node_partition(self):
111105
def test_edge_partition(self):
112106
print('### edgePartitionTest ###')
113107

114-
failure = EdgePartition('node2', 'node3')
115-
failure.start()
108+
aggs_failure, aggs = self.performFailure(EdgePartition('node2', 'node3'))
116109

117-
self.client.clean_aggregates()
118-
time.sleep(TEST_DURATION)
119-
aggs_failure = self.client.get_aggregates()
120-
121-
failure.stop()
122-
123-
self.client.clean_aggregates()
124-
time.sleep(TEST_RECOVERY_TIME)
125-
aggs = self.client.get_aggregates()
110+
self.assertTrue( ('commit' in aggs_failure[1]['transfer']['finish']) or ('commit' in aggs_failure[2]['transfer']['finish']) )
111+
self.assertCommits(aggs_failure[0:1]) # first node
112+
self.assertIsolation(aggs_failure)
126113

127-
self.assertTrue( ('commit' in aggs_failure['transfer_2']['finish']) or ('commit' in aggs_failure['transfer_1']['finish']) )
128-
self.assertTrue( 'commit' in aggs_failure['transfer_0']['finish'] )
129-
self.assertTrue( aggs_failure['sumtotal_0']['isolation'] == 0)
130-
self.assertTrue( aggs_failure['sumtotal_1']['isolation'] == 0)
131-
self.assertTrue( aggs_failure['sumtotal_2']['isolation'] == 0)
132-
133-
self.assertTrue( 'commit' in aggs['transfer_0']['finish'] )
134-
self.assertTrue( 'commit' in aggs['transfer_1']['finish'] )
135-
self.assertTrue( 'commit' in aggs['transfer_2']['finish'] )
136-
self.assertTrue( aggs['sumtotal_0']['isolation'] == 0)
137-
self.assertTrue( aggs['sumtotal_1']['isolation'] == 0)
138-
self.assertTrue( aggs['sumtotal_2']['isolation'] == 0)
114+
self.assertCommits(aggs)
115+
self.assertIsolation(aggs)
139116

140117
subprocess.check_call(['blockade','join'])
141118
print("Node3 joined back")

0 commit comments

Comments
 (0)