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

Commit a9d665a

Browse files
committed
fixes for test_recovery.py
1 parent 43612f1 commit a9d665a

File tree

1 file changed

+13
-61
lines changed

1 file changed

+13
-61
lines changed

tests2/test_recovery.py

Lines changed: 13 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -11,60 +11,7 @@
1111

1212
from lib.bank_client import MtmClient
1313
from lib.failure_injector import *
14-
15-
TEST_WARMING_TIME = 5
16-
TEST_DURATION = 10
17-
TEST_RECOVERY_TIME = 30
18-
TEST_SETUP_TIME = 20
19-
TEST_STOP_DELAY = 5
20-
21-
class TestHelper(object):
22-
23-
def assertIsolation(self, aggs):
24-
isolated = True
25-
for conn_id, agg in enumerate(aggs):
26-
isolated = isolated and agg['sumtotal']['isolation'] == 0
27-
if not isolated:
28-
raise AssertionError('Isolation failure')
29-
30-
def assertCommits(self, aggs):
31-
commits = True
32-
for conn_id, agg in enumerate(aggs):
33-
commits = commits and 'commit' in agg['transfer']['finish']
34-
if not commits:
35-
print('No commits during aggregation interval')
36-
# time.sleep(100000)
37-
raise AssertionError('No commits during aggregation interval')
38-
39-
def assertNoCommits(self, aggs):
40-
commits = True
41-
for conn_id, agg in enumerate(aggs):
42-
commits = commits and 'commit' in agg['transfer']['finish']
43-
if commits:
44-
raise AssertionError('There are commits during aggregation interval')
45-
46-
def performFailure(self, failure):
47-
48-
time.sleep(TEST_WARMING_TIME)
49-
50-
print('Simulate failure at ',datetime.datetime.utcnow())
51-
52-
failure.start()
53-
54-
self.client.clean_aggregates()
55-
time.sleep(TEST_DURATION)
56-
aggs_failure = self.client.get_aggregates()
57-
58-
failure.stop()
59-
60-
print('Eliminate failure at ',datetime.datetime.utcnow())
61-
62-
self.client.clean_aggregates()
63-
time.sleep(TEST_RECOVERY_TIME)
64-
aggs = self.client.get_aggregates()
65-
66-
return (aggs_failure, aggs)
67-
14+
from lib.test_helper import *
6815

6916
class RecoveryTest(unittest.TestCase, TestHelper):
7017

@@ -124,7 +71,8 @@ def test_normal_operations(self):
12471
def test_node_partition(self):
12572
print('### test_node_partition ###')
12673

127-
aggs_failure, aggs = self.performFailure(SingleNodePartition('node3'))
74+
aggs_failure, aggs = self.performFailure(SingleNodePartition('node3'),
75+
node_wait_for_online="dbname=regression user=postgres host=127.0.0.1 port=15434", stop_load=True)
12876

12977
self.assertCommits(aggs_failure[:2])
13078
self.assertNoCommits(aggs_failure[2:])
@@ -148,7 +96,8 @@ def test_edge_partition(self):
14896
def test_node_restart(self):
14997
print('### test_node_restart ###')
15098

151-
aggs_failure, aggs = self.performFailure(RestartNode('node3'))
99+
aggs_failure, aggs = self.performFailure(RestartNode('node3'),
100+
node_wait_for_online="dbname=regression user=postgres host=127.0.0.1 port=15434", stop_load=True)
152101

153102
self.assertCommits(aggs_failure[:2])
154103
self.assertNoCommits(aggs_failure[2:])
@@ -160,7 +109,8 @@ def test_node_restart(self):
160109
def test_node_crash(self):
161110
print('### test_node_crash ###')
162111

163-
aggs_failure, aggs = self.performFailure(CrashRecoverNode('node3'))
112+
aggs_failure, aggs = self.performFailure(CrashRecoverNode('node3'),
113+
node_wait_for_online="dbname=regression user=postgres host=127.0.0.1 port=15434", stop_load=True)
164114

165115
self.assertCommits(aggs_failure[:2])
166116
self.assertNoCommits(aggs_failure[2:])
@@ -172,7 +122,8 @@ def test_node_crash(self):
172122
def test_node_bicrash(self):
173123
print('### test_node_bicrash ###')
174124

175-
aggs_failure, aggs = self.performFailure(CrashRecoverNode('node3'))
125+
aggs_failure, aggs = self.performFailure(CrashRecoverNode('node3'),
126+
node_wait_for_online="dbname=regression user=postgres host=127.0.0.1 port=15434", stop_load=True)
176127

177128
self.assertCommits(aggs_failure[:2])
178129
self.assertNoCommits(aggs_failure[2:])
@@ -181,10 +132,11 @@ def test_node_bicrash(self):
181132
self.assertCommits(aggs)
182133
self.assertIsolation(aggs)
183134

184-
aggs_failure, aggs = self.performFailure(CrashRecoverNode('node3'))
135+
aggs_failure, aggs = self.performFailure(CrashRecoverNode('node1'),
136+
node_wait_for_online="dbname=regression user=postgres host=127.0.0.1 port=15432", stop_load=True)
185137

186-
self.assertCommits(aggs_failure[:2])
187-
self.assertNoCommits(aggs_failure[2:])
138+
self.assertNoCommits(aggs_failure[0:1]) # [1]
139+
self.assertCommits(aggs_failure[1:]) # [2, 3]
188140
self.assertIsolation(aggs_failure)
189141

190142
self.assertCommits(aggs)

0 commit comments

Comments
 (0)