def setUp(self): time.sleep(20) print('Start new test') warnings.simplefilter("ignore", ResourceWarning) self.client = MtmClient([ "dbname=regression user=postgres host=127.0.0.1 port=15432", "dbname=regression user=postgres host=127.0.0.1 port=15433", "dbname=regression user=postgres host=127.0.0.1 port=15434" ], n_accounts=1000) self.client.bgrun()
def setUpClass(self): subprocess.check_call(['docker-compose','up', '--force-recreate', '-d']) # XXX: add normal wait here time.sleep(20) print('started') self.client = MtmClient([ "dbname=regression user=postgres host=127.0.0.1 port=15432", "dbname=regression user=postgres host=127.0.0.1 port=15433", "dbname=regression user=postgres host=127.0.0.1 port=15434" ], n_accounts=1000) self.client.bgrun()
def setUpClass(cls): host_ip = socket.gethostbyname(NODE_HOST) cls.dsns = [ f"dbname=regression user=postgres host={host_ip} port=15432", f"dbname=regression user=postgres host={host_ip} port=15433", ] cls.referee_dsn = f"dbname=regression user=postgres host={host_ip} port=15435" cls.test_ok = True subprocess.check_call([ 'docker-compose', '-f', 'support/two_nodes.yml', 'up', '--force-recreate', '--build', '-d' ]) # Wait for all nodes to become online try: [cls.awaitOnline(dsn) for dsn in cls.dsns] cls.client = MtmClient(cls.dsns, n_accounts=1000) cls.client.bgrun() # create extension on referee cls.nodeExecute(cls.referee_dsn, ['create extension referee']) except Exception as e: # collect logs even if fail in setupClass cls.collectLogs(referee=True) raise e
def setUpClass(cls): subprocess.check_call( ['docker-compose', 'up', '--force-recreate', '--build', '-d']) # XXX: add normal wait here time.sleep(TEST_SETUP_TIME) cls.client = MtmClient([ "dbname=regression user=postgres host=127.0.0.1 port=15432", "dbname=regression user=postgres host=127.0.0.1 port=15433", "dbname=regression user=postgres host=127.0.0.1 port=15434" ], n_accounts=1000) cls.client.bgrun()
def setUpClass(cls): cls.dsns = [ "dbname=regression user=postgres host=127.0.0.1 port=15432", "dbname=regression user=postgres host=127.0.0.1 port=15433", "dbname=regression user=postgres host=127.0.0.1 port=15434" ] print('setUp') subprocess.check_call( ['docker-compose', 'up', '--force-recreate', '--build', '-d']) # Wait for all nodes to become online [cls.awaitOnline(dsn) for dsn in cls.dsns] cls.client = MtmClient(cls.dsns, n_accounts=1000)
def setUpClass(cls): subprocess.check_call([ 'docker-compose', '-f', 'support/two_nodes.yml', 'up', '--force-recreate', '--build', '-d' ]) cls.client = MtmClient([ "dbname=regression user=postgres host=127.0.0.1 port=15432", "dbname=regression user=postgres host=127.0.0.1 port=15433" ], n_accounts=1000) cls.client.bgrun() # create extension on referee cls.nodeExecute( "dbname=regression user=postgres host=127.0.0.1 port=15435", ['create extension referee'])
def setUpClass(cls): subprocess.check_call([ 'docker-compose', '-f', 'support/two_nodes.yml', 'up', '--force-recreate', '--build', '-d' ]) # XXX: add normal wait here time.sleep(TEST_SETUP_TIME) cls.client = MtmClient([ "dbname=regression user=postgres host=127.0.0.1 port=15432", "dbname=regression user=postgres host=127.0.0.1 port=15433" ], n_accounts=1000) cls.client.bgrun() # create extension on referee cls.nodeExecute( "dbname=regression user=postgres host=127.0.0.1 port=15435", ['create extension multimaster'])
class RecoveryTest(unittest.TestCase, TestHelper): @classmethod def setUpClass(self): subprocess.check_call(['docker-compose','up', '--force-recreate', '-d']) # XXX: add normal wait here time.sleep(20) print('started') self.client = MtmClient([ "dbname=regression user=postgres host=127.0.0.1 port=15432", "dbname=regression user=postgres host=127.0.0.1 port=15433", "dbname=regression user=postgres host=127.0.0.1 port=15434" ], n_accounts=1000) self.client.bgrun() @classmethod def tearDownClass(self): print('tearDown') self.client.stop() # XXX: check nodes data identity here subprocess.check_call(['docker-compose','down']) def setUp(self): warnings.simplefilter("ignore", ResourceWarning) def test_normal_operations(self): print('### test_normal_operations ###') aggs_failure, aggs = self.performFailure(NoFailure()) self.assertCommits(aggs_failure) self.assertIsolation(aggs_failure) self.assertCommits(aggs) self.assertIsolation(aggs) def test_node_partition(self): print('### test_node_partition ###') aggs_failure, aggs = self.performFailure(SingleNodePartition('node3')) self.assertCommits(aggs_failure[:2]) self.assertNoCommits(aggs_failure[2:]) self.assertIsolation(aggs_failure) self.assertCommits(aggs) self.assertIsolation(aggs) def test_edge_partition(self): print('### test_edge_partition ###') aggs_failure, aggs = self.performFailure(EdgePartition('node2', 'node3')) self.assertTrue( ('commit' in aggs_failure[1]['transfer']['finish']) or ('commit' in aggs_failure[2]['transfer']['finish']) ) self.assertCommits(aggs_failure[0:1]) # first node self.assertIsolation(aggs_failure) self.assertCommits(aggs) self.assertIsolation(aggs) def test_node_restart(self): print('### test_node_restart ###') time.sleep(3) aggs_failure, aggs = self.performFailure(RestartNode('node3')) self.assertCommits(aggs_failure[:2]) self.assertNoCommits(aggs_failure[2:]) self.assertIsolation(aggs_failure) self.assertCommits(aggs) self.assertIsolation(aggs) def test_node_crash(self): print('### test_node_crash ###') aggs_failure, aggs = self.performFailure(CrashRecoverNode('node3')) self.assertCommits(aggs_failure[:2]) self.assertNoCommits(aggs_failure[2:]) self.assertIsolation(aggs_failure) self.assertCommits(aggs) self.assertIsolation(aggs)
class RecoveryTest(unittest.TestCase, TestHelper): def setUp(self): time.sleep(20) print('Start new test') warnings.simplefilter("ignore", ResourceWarning) self.client = MtmClient([ "dbname=regression user=postgres host=127.0.0.1 port=15432", "dbname=regression user=postgres host=127.0.0.1 port=15433", "dbname=regression user=postgres host=127.0.0.1 port=15434" ], n_accounts=1000) self.client.bgrun() def tearDown(self): print('tearDown') self.client.stop() def test_normal_operations(self): print('### test_normal_operations ###') aggs_failure, aggs = self.performFailure(NoFailure()) self.assertCommits(aggs_failure) self.assertIsolation(aggs_failure) self.assertCommits(aggs) self.assertIsolation(aggs) def test_node_partition(self): print('### test_node_partition ###') aggs_failure, aggs = self.performFailure(SingleNodePartition('node3')) self.assertCommits(aggs_failure[:2]) self.assertNoCommits(aggs_failure[2:]) self.assertIsolation(aggs_failure) self.assertCommits(aggs) self.assertIsolation(aggs) def test_edge_partition(self): print('### test_edge_partition ###') aggs_failure, aggs = self.performFailure( EdgePartition('node2', 'node3')) self.assertTrue(('commit' in aggs_failure[1]['transfer']['finish']) or ('commit' in aggs_failure[2]['transfer']['finish'])) self.assertCommits(aggs_failure[0:1]) # first node self.assertIsolation(aggs_failure) self.assertCommits(aggs) self.assertIsolation(aggs) def test_node_restart(self): print('### test_node_restart ###') time.sleep(5) aggs_failure, aggs = self.performFailure(RestartNode('node3')) self.assertCommits(aggs_failure[:2]) self.assertNoCommits(aggs_failure[2:]) self.assertIsolation(aggs_failure) self.assertCommits(aggs) self.assertIsolation(aggs) def test_node_crash(self): print('### test_node_crash ###') time.sleep(5) aggs_failure, aggs = self.performFailure(CrashRecoverNode('node3')) self.assertCommits(aggs_failure[:2]) self.assertNoCommits(aggs_failure[2:]) self.assertIsolation(aggs_failure) self.assertCommits(aggs) self.assertIsolation(aggs)