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

Skip to content

Commit 7ca590c

Browse files
committed
tests: drop ptrack1 suppport
1 parent 11e1240 commit 7ca590c

File tree

8 files changed

+296
-422
lines changed

8 files changed

+296
-422
lines changed

tests/backup.py

+31-200
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ class BackupTest(ProbackupTest, unittest.TestCase):
1818
# PGPRO-707
1919
def test_backup_modes_archive(self):
2020
"""standart backup modes with ARCHIVE WAL method"""
21-
if not self.ptrack:
22-
return unittest.skip('Skipped because ptrack support is disabled')
23-
2421
fname = self.id().split('.')[3]
2522
node = self.make_simple_node(
2623
base_dir=os.path.join(module_name, fname, 'node'),
@@ -33,12 +30,7 @@ def test_backup_modes_archive(self):
3330
self.set_archiving(backup_dir, 'node', node)
3431
node.slow_start()
3532

36-
if node.major_version >= 12:
37-
node.safe_psql(
38-
"postgres",
39-
"CREATE EXTENSION ptrack")
40-
41-
backup_id = self.backup_node(backup_dir, 'node', node)
33+
full_backup_id = self.backup_node(backup_dir, 'node', node)
4234
show_backup = self.show_pb(backup_dir, 'node')[0]
4335

4436
self.assertEqual(show_backup['status'], "OK")
@@ -47,7 +39,7 @@ def test_backup_modes_archive(self):
4739
# postmaster.pid and postmaster.opts shouldn't be copied
4840
excluded = True
4941
db_dir = os.path.join(
50-
backup_dir, "backups", 'node', backup_id, "database")
42+
backup_dir, "backups", 'node', full_backup_id, "database")
5143

5244
for f in os.listdir(db_dir):
5345
if (
@@ -64,31 +56,30 @@ def test_backup_modes_archive(self):
6456
page_backup_id = self.backup_node(
6557
backup_dir, 'node', node, backup_type="page")
6658

67-
# print self.show_pb(node)
68-
show_backup = self.show_pb(backup_dir, 'node')[1]
59+
show_backup_1 = self.show_pb(backup_dir, 'node')[1]
6960
self.assertEqual(show_backup['status'], "OK")
7061
self.assertEqual(show_backup['backup-mode'], "PAGE")
7162

63+
# delta backup mode
64+
delta_backup_id = self.backup_node(
65+
backup_dir, 'node', node, backup_type="delta")
66+
67+
show_backup_2 = self.show_pb(backup_dir, 'node')[2]
68+
self.assertEqual(show_backup['status'], "OK")
69+
self.assertEqual(show_backup['backup-mode'], "DELTA")
70+
7271
# Check parent backup
7372
self.assertEqual(
74-
backup_id,
73+
full_backup_id,
7574
self.show_pb(
7675
backup_dir, 'node',
77-
backup_id=show_backup['id'])["parent-backup-id"])
78-
79-
# ptrack backup mode
80-
self.backup_node(backup_dir, 'node', node, backup_type="ptrack")
76+
backup_id=show_backup_1['id'])["parent-backup-id"])
8177

82-
show_backup = self.show_pb(backup_dir, 'node')[2]
83-
self.assertEqual(show_backup['status'], "OK")
84-
self.assertEqual(show_backup['backup-mode'], "PTRACK")
85-
86-
# Check parent backup
8778
self.assertEqual(
8879
page_backup_id,
8980
self.show_pb(
9081
backup_dir, 'node',
91-
backup_id=show_backup['id'])["parent-backup-id"])
82+
backup_id=show_backup_2['id'])["parent-backup-id"])
9283

9384
# Clean after yourself
9485
self.del_test_dir(module_name, fname)
@@ -118,10 +109,7 @@ def test_smooth_checkpoint(self):
118109

119110
# @unittest.skip("skip")
120111
def test_incremental_backup_without_full(self):
121-
"""page-level backup without validated full backup"""
122-
if not self.ptrack:
123-
return unittest.skip('Skipped because ptrack support is disabled')
124-
112+
"""page backup without validated full backup"""
125113
fname = self.id().split('.')[3]
126114
node = self.make_simple_node(
127115
base_dir=os.path.join(module_name, fname, 'node'),
@@ -134,11 +122,6 @@ def test_incremental_backup_without_full(self):
134122
self.set_archiving(backup_dir, 'node', node)
135123
node.slow_start()
136124

137-
if node.major_version >= 12:
138-
node.safe_psql(
139-
"postgres",
140-
"CREATE EXTENSION ptrack")
141-
142125
try:
143126
self.backup_node(backup_dir, 'node', node, backup_type="page")
144127
# we should die here because exception is what we expect to happen
@@ -154,29 +137,10 @@ def test_incremental_backup_without_full(self):
154137
"\n Unexpected Error Message: {0}\n CMD: {1}".format(
155138
repr(e.message), self.cmd))
156139

157-
try:
158-
self.backup_node(backup_dir, 'node', node, backup_type="ptrack")
159-
# we should die here because exception is what we expect to happen
160-
self.assertEqual(
161-
1, 0,
162-
"Expecting Error because page backup should not be possible "
163-
"without valid full backup.\n Output: {0} \n CMD: {1}".format(
164-
repr(self.output), self.cmd))
165-
except ProbackupException as e:
166-
self.assertTrue(
167-
"WARNING: Valid full backup on current timeline 1 is not found" in e.message and
168-
"ERROR: Create new full backup before an incremental one" in e.message,
169-
"\n Unexpected Error Message: {0}\n CMD: {1}".format(
170-
repr(e.message), self.cmd))
171-
172140
self.assertEqual(
173141
self.show_pb(backup_dir, 'node')[0]['status'],
174142
"ERROR")
175143

176-
self.assertEqual(
177-
self.show_pb(backup_dir, 'node')[1]['status'],
178-
"ERROR")
179-
180144
# Clean after yourself
181145
self.del_test_dir(module_name, fname)
182146

@@ -242,72 +206,27 @@ def test_incremental_backup_corrupt_full(self):
242206
self.del_test_dir(module_name, fname)
243207

244208
# @unittest.skip("skip")
245-
def test_ptrack_threads(self):
246-
"""ptrack multi thread backup mode"""
247-
if not self.ptrack:
248-
return unittest.skip('Skipped because ptrack support is disabled')
249-
250-
fname = self.id().split('.')[3]
251-
node = self.make_simple_node(
252-
base_dir=os.path.join(module_name, fname, 'node'),
253-
initdb_params=['--data-checksums'],
254-
ptrack_enable=True)
255-
256-
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
257-
self.init_pb(backup_dir)
258-
self.add_instance(backup_dir, 'node', node)
259-
self.set_archiving(backup_dir, 'node', node)
260-
node.slow_start()
261-
262-
if node.major_version >= 12:
263-
node.safe_psql(
264-
"postgres",
265-
"CREATE EXTENSION ptrack")
266-
267-
self.backup_node(
268-
backup_dir, 'node', node,
269-
backup_type="full", options=["-j", "4"])
270-
self.assertEqual(self.show_pb(backup_dir, 'node')[0]['status'], "OK")
271-
272-
self.backup_node(
273-
backup_dir, 'node', node,
274-
backup_type="ptrack", options=["-j", "4"])
275-
self.assertEqual(self.show_pb(backup_dir, 'node')[0]['status'], "OK")
276-
277-
# Clean after yourself
278-
self.del_test_dir(module_name, fname)
279-
280-
# @unittest.skip("skip")
281-
def test_ptrack_threads_stream(self):
282-
"""ptrack multi thread backup mode and stream"""
283-
if not self.ptrack:
284-
return unittest.skip('Skipped because ptrack support is disabled')
285-
209+
def test_delta_threads_stream(self):
210+
"""delta multi thread backup mode and stream"""
286211
fname = self.id().split('.')[3]
287212
node = self.make_simple_node(
288213
base_dir=os.path.join(module_name, fname, 'node'),
289214
set_replication=True,
290-
initdb_params=['--data-checksums'],
291-
ptrack_enable=True)
215+
initdb_params=['--data-checksums'])
292216

293217
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
294218
self.init_pb(backup_dir)
295219
self.add_instance(backup_dir, 'node', node)
296220
node.slow_start()
297221

298-
if node.major_version >= 12:
299-
node.safe_psql(
300-
"postgres",
301-
"CREATE EXTENSION ptrack")
302-
303222
self.backup_node(
304223
backup_dir, 'node', node, backup_type="full",
305224
options=["-j", "4", "--stream"])
306225

307226
self.assertEqual(self.show_pb(backup_dir, 'node')[0]['status'], "OK")
308227
self.backup_node(
309228
backup_dir, 'node', node,
310-
backup_type="ptrack", options=["-j", "4", "--stream"])
229+
backup_type="delta", options=["-j", "4", "--stream"])
311230
self.assertEqual(self.show_pb(backup_dir, 'node')[1]['status'], "OK")
312231

313232
# Clean after yourself
@@ -1459,76 +1378,6 @@ def test_drop_rel_during_backup_page(self):
14591378
# Clean after yourself
14601379
self.del_test_dir(module_name, fname)
14611380

1462-
# @unittest.skip("skip")
1463-
def test_drop_rel_during_backup_ptrack(self):
1464-
""""""
1465-
if not self.ptrack:
1466-
return unittest.skip('Skipped because ptrack support is disabled')
1467-
1468-
fname = self.id().split('.')[3]
1469-
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
1470-
node = self.make_simple_node(
1471-
base_dir=os.path.join(module_name, fname, 'node'),
1472-
set_replication=True,
1473-
ptrack_enable=self.ptrack,
1474-
initdb_params=['--data-checksums'])
1475-
1476-
self.init_pb(backup_dir)
1477-
self.add_instance(backup_dir, 'node', node)
1478-
self.set_archiving(backup_dir, 'node', node)
1479-
node.slow_start()
1480-
1481-
if node.major_version >= 12:
1482-
node.safe_psql(
1483-
"postgres",
1484-
"CREATE EXTENSION ptrack")
1485-
1486-
node.safe_psql(
1487-
"postgres",
1488-
"create table t_heap as select i"
1489-
" as id from generate_series(0,100) i")
1490-
1491-
relative_path = node.safe_psql(
1492-
"postgres",
1493-
"select pg_relation_filepath('t_heap')").decode('utf-8').rstrip()
1494-
1495-
absolute_path = os.path.join(node.data_dir, relative_path)
1496-
1497-
# FULL backup
1498-
self.backup_node(backup_dir, 'node', node, options=['--stream'])
1499-
1500-
# PTRACK backup
1501-
gdb = self.backup_node(
1502-
backup_dir, 'node', node, backup_type='ptrack',
1503-
gdb=True, options=['--log-level-file=LOG'])
1504-
1505-
gdb.set_breakpoint('backup_files')
1506-
gdb.run_until_break()
1507-
1508-
# REMOVE file
1509-
os.remove(absolute_path)
1510-
1511-
# File removed, we can proceed with backup
1512-
gdb.continue_execution_until_exit()
1513-
1514-
pgdata = self.pgdata_content(node.data_dir)
1515-
1516-
with open(os.path.join(backup_dir, 'log', 'pg_probackup.log')) as f:
1517-
log_content = f.read()
1518-
self.assertTrue(
1519-
'LOG: File not found: "{0}"'.format(absolute_path) in log_content,
1520-
'File "{0}" should be deleted but it`s not'.format(absolute_path))
1521-
1522-
node.cleanup()
1523-
self.restore_node(backup_dir, 'node', node, options=["-j", "4"])
1524-
1525-
# Physical comparison
1526-
pgdata_restored = self.pgdata_content(node.data_dir)
1527-
self.compare_pgdata(pgdata, pgdata_restored)
1528-
1529-
# Clean after yourself
1530-
self.del_test_dir(module_name, fname)
1531-
15321381
# @unittest.skip("skip")
15331382
def test_persistent_slot_for_stream_backup(self):
15341383
""""""
@@ -1992,10 +1841,11 @@ def test_backup_with_least_privileges_role(self):
19921841
'postgres',
19931842
'CREATE DATABASE backupdb')
19941843

1995-
if self.ptrack and node.major_version >= 12:
1844+
if self.ptrack:
19961845
node.safe_psql(
19971846
"backupdb",
1998-
"CREATE EXTENSION ptrack WITH SCHEMA pg_catalog")
1847+
"CREATE SCHEMA ptrack; "
1848+
"CREATE EXTENSION ptrack WITH SCHEMA ptrack")
19991849

20001850
# PG 9.5
20011851
if self.get_version(node) < 90600:
@@ -2105,33 +1955,14 @@ def test_backup_with_least_privileges_role(self):
21051955
)
21061956

21071957
if self.ptrack:
2108-
if node.major_version < 12:
2109-
# Reviewer, NB: skip this test in case of old ptrack?
2110-
for fname in [
2111-
'pg_catalog.oideq(oid, oid)',
2112-
'pg_catalog.ptrack_version()',
2113-
'pg_catalog.pg_ptrack_clear()',
2114-
'pg_catalog.pg_ptrack_control_lsn()',
2115-
'pg_catalog.pg_ptrack_get_and_clear_db(oid, oid)',
2116-
'pg_catalog.pg_ptrack_get_and_clear(oid, oid)',
2117-
'pg_catalog.pg_ptrack_get_block_2(oid, oid, oid, bigint)',
2118-
'pg_catalog.pg_stop_backup()']:
2119-
2120-
node.safe_psql(
2121-
"backupdb",
2122-
"GRANT EXECUTE ON FUNCTION {0} "
2123-
"TO backup".format(fname))
2124-
else:
2125-
fnames = [
2126-
'pg_catalog.ptrack_get_pagemapset(pg_lsn)',
2127-
'pg_catalog.ptrack_init_lsn()'
2128-
]
2129-
2130-
for fname in fnames:
2131-
node.safe_psql(
2132-
"backupdb",
2133-
"GRANT EXECUTE ON FUNCTION {0} "
2134-
"TO backup".format(fname))
1958+
node.safe_psql(
1959+
"backupdb",
1960+
"GRANT USAGE ON SCHEMA ptrack TO backup")
1961+
1962+
node.safe_psql(
1963+
"backupdb",
1964+
"GRANT EXECUTE ON FUNCTION ptrack.ptrack_get_pagemapset(pg_lsn) TO backup; "
1965+
"GRANT EXECUTE ON FUNCTION 'ptrack.ptrack_init_lsn()' TO backup; ")
21351966

21361967
if ProbackupTest.enterprise:
21371968
node.safe_psql(
@@ -2391,7 +2222,7 @@ def test_backup_with_less_privileges_role(self):
23912222
'postgres',
23922223
'CREATE DATABASE backupdb')
23932224

2394-
if self.ptrack and node.major_version >= 12:
2225+
if self.ptrack:
23952226
node.safe_psql(
23962227
'backupdb',
23972228
'CREATE EXTENSION ptrack')

tests/cfs_backup.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,9 @@ def setUp(self):
3535

3636
self.node.slow_start()
3737

38-
if self.node.major_version >= 12:
39-
self.node.safe_psql(
40-
"postgres",
41-
"CREATE EXTENSION ptrack")
38+
self.node.safe_psql(
39+
"postgres",
40+
"CREATE EXTENSION ptrack")
4241

4342
self.create_tblspace_in_node(self.node, tblspace_name, cfs=True)
4443

tests/compatibility.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -304,10 +304,9 @@ def test_backward_compatibility_ptrack(self):
304304
self.set_archiving(backup_dir, 'node', node, old_binary=True)
305305
node.slow_start()
306306

307-
if node.major_version >= 12:
308-
node.safe_psql(
309-
"postgres",
310-
"CREATE EXTENSION ptrack")
307+
node.safe_psql(
308+
"postgres",
309+
"CREATE EXTENSION ptrack")
311310

312311
node.pgbench_init(scale=10)
313312

tests/delete.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -203,10 +203,9 @@ def test_delete_increment_ptrack(self):
203203
self.set_archiving(backup_dir, 'node', node)
204204
node.slow_start()
205205

206-
if node.major_version >= 12:
207-
node.safe_psql(
208-
'postgres',
209-
'CREATE EXTENSION ptrack')
206+
node.safe_psql(
207+
'postgres',
208+
'CREATE EXTENSION ptrack')
210209

211210
# full backup mode
212211
self.backup_node(backup_dir, 'node', node)

0 commit comments

Comments
 (0)