Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 39f005b

Browse files
committed
tests: add module ptrack_empty, create_db_on_replica
1 parent 9ec6357 commit 39f005b

11 files changed

+368
-111
lines changed

tests/__init__.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from . import init_test, merge, option_test, show_test, compatibility, \
44
backup_test, delete_test, delta, restore_test, validate_test, \
5-
retention_test, ptrack_clean, ptrack_cluster, \
5+
retention_test, ptrack_clean, ptrack_empty, ptrack_cluster, \
66
ptrack_move_to_tablespace, ptrack_recovery, ptrack_truncate, \
77
ptrack_vacuum, ptrack_vacuum_bits_frozen, ptrack_vacuum_bits_visibility, \
88
ptrack_vacuum_full, ptrack_vacuum_truncate, pgpro560, pgpro589, \
@@ -31,6 +31,7 @@ def load_tests(loader, tests, pattern):
3131
suite.addTests(loader.loadTestsFromModule(page))
3232
suite.addTests(loader.loadTestsFromModule(ptrack))
3333
suite.addTests(loader.loadTestsFromModule(ptrack_clean))
34+
suite.addTests(loader.loadTestsFromModule(ptrack_empty))
3435
suite.addTests(loader.loadTestsFromModule(ptrack_cluster))
3536
suite.addTests(loader.loadTestsFromModule(ptrack_move_to_tablespace))
3637
suite.addTests(loader.loadTestsFromModule(ptrack_recovery))

tests/helpers/ptrack_helpers.py

+26
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@
4848
'column': 'tsvector',
4949
'relation': 't_heap'
5050
},
51+
't_hash': {
52+
'type': 'hash',
53+
'column': 'id',
54+
'relation': 't_heap'
55+
}
5156
}
5257

5358
archive_script = """
@@ -1002,6 +1007,27 @@ def switch_wal_segment(self, node):
10021007
else:
10031008
node.execute("select pg_switch_xlog()")
10041009

1010+
def wait_until_replica_catch_with_master(self, master, replica):
1011+
1012+
if self.version_to_num(
1013+
master.safe_psql(
1014+
"postgres",
1015+
"show server_version")) >= self.version_to_num('10.0'):
1016+
master_function = 'pg_catalog.pg_current_wal_lsn()'
1017+
replica_function = 'pg_catalog.pg_last_wal_replay_lsn()'
1018+
else:
1019+
master_function = 'pg_catalog.pg_current_xlog_location()'
1020+
replica_function = 'pg_catalog.pg_last_xlog_replay_location()'
1021+
1022+
lsn = master.safe_psql(
1023+
'postgres',
1024+
'SELECT {0}'.format(master_function)).rstrip()
1025+
1026+
# Wait until replica catch up with master
1027+
replica.poll_query_until(
1028+
'postgres',
1029+
"SELECT '{0}'::pg_lsn <= {1}".format(lsn, replica_function))
1030+
10051031
def get_version(self, node):
10061032
return self.version_to_num(
10071033
testgres.get_pg_config()["VERSION"].split(" ")[1])

0 commit comments

Comments
 (0)