Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit1425407

Browse files
committed
tests: added retention.RetentionTest.test_window_error_backups_1 and retention.RetentionTest.test_window_error_backups_2
1 parent52ed2e1 commit1425407

File tree

1 file changed

+143
-3
lines changed

1 file changed

+143
-3
lines changed

‎tests/retention.py

Lines changed: 143 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1264,16 +1264,156 @@ def test_window_error_backups(self):
12641264
self.set_archiving(backup_dir,'node',node)
12651265
node.slow_start()
12661266

1267-
node.pgbench_init(scale=3)
1268-
12691267
# Take FULL BACKUPs
12701268
backup_id_a1=self.backup_node(backup_dir,'node',node)
1271-
page_id_a2=self.backup_node(
1269+
gdb=self.backup_node(
1270+
backup_dir,'node',node,backup_type='page',gdb=True)
1271+
1272+
page_id_a3=self.backup_node(
12721273
backup_dir,'node',node,backup_type='page')
12731274

12741275
# Change FULLb backup status to ERROR
12751276
self.change_backup_status(backup_dir,'node',backup_id_b,'ERROR')
12761277

1278+
# Clean after yourself
1279+
self.del_test_dir(module_name,fname)
1280+
1281+
# @unittest.skip("skip")
1282+
deftest_window_error_backups_1(self):
1283+
"""
1284+
DELTA
1285+
PAGE ERROR
1286+
FULL
1287+
-------window
1288+
"""
1289+
fname=self.id().split('.')[3]
1290+
node=self.make_simple_node(
1291+
base_dir=os.path.join(module_name,fname,'node'),
1292+
initdb_params=['--data-checksums'])
1293+
1294+
backup_dir=os.path.join(self.tmp_path,module_name,fname,'backup')
1295+
self.init_pb(backup_dir)
1296+
self.add_instance(backup_dir,'node',node)
1297+
self.set_archiving(backup_dir,'node',node)
1298+
node.slow_start()
1299+
1300+
# Take FULL BACKUP
1301+
full_id=self.backup_node(backup_dir,'node',node)
1302+
1303+
# Take PAGE BACKUP
1304+
gdb=self.backup_node(
1305+
backup_dir,'node',node,backup_type='page',gdb=True)
1306+
1307+
gdb.set_breakpoint('pg_stop_backup')
1308+
gdb.run_until_break()
1309+
gdb.remove_all_breakpoints()
1310+
gdb._execute('signal SIGINT')
1311+
gdb.continue_execution_until_error()
1312+
1313+
page_id=self.show_pb(backup_dir,'node')[1]['id']
1314+
1315+
# Take DELTA backup
1316+
delta_id=self.backup_node(
1317+
backup_dir,'node',node,backup_type='delta',
1318+
options=['--retention-window=2','--delete-expired'])
1319+
1320+
# Take FULL BACKUP
1321+
full2_id=self.backup_node(backup_dir,'node',node)
1322+
1323+
self.assertEqual(len(self.show_pb(backup_dir,'node')),4)
1324+
1325+
# Clean after yourself
1326+
self.del_test_dir(module_name,fname)
1327+
1328+
# @unittest.skip("skip")
1329+
deftest_window_error_backups_2(self):
1330+
"""
1331+
DELTA
1332+
PAGE ERROR
1333+
FULL
1334+
-------window
1335+
"""
1336+
fname=self.id().split('.')[3]
1337+
node=self.make_simple_node(
1338+
base_dir=os.path.join(module_name,fname,'node'),
1339+
initdb_params=['--data-checksums'])
1340+
1341+
backup_dir=os.path.join(self.tmp_path,module_name,fname,'backup')
1342+
self.init_pb(backup_dir)
1343+
self.add_instance(backup_dir,'node',node)
1344+
self.set_archiving(backup_dir,'node',node)
1345+
node.slow_start()
1346+
1347+
# Take FULL BACKUP
1348+
full_id=self.backup_node(backup_dir,'node',node)
1349+
1350+
# Take PAGE BACKUP
1351+
gdb=self.backup_node(
1352+
backup_dir,'node',node,backup_type='page',gdb=True)
1353+
1354+
gdb.set_breakpoint('pg_stop_backup')
1355+
gdb.run_until_break()
1356+
gdb._execute('signal SIGTERM')
1357+
gdb.continue_execution_until_error()
1358+
1359+
page_id=self.show_pb(backup_dir,'node')[1]['id']
1360+
1361+
# Take DELTA backup
1362+
delta_id=self.backup_node(
1363+
backup_dir,'node',node,backup_type='delta',
1364+
options=['--retention-window=2','--delete-expired'])
1365+
1366+
self.assertEqual(len(self.show_pb(backup_dir,'node')),3)
1367+
1368+
# Clean after yourself
1369+
# self.del_test_dir(module_name, fname)
1370+
1371+
deftest_retention_redundancy_overlapping_chains(self):
1372+
""""""
1373+
fname=self.id().split('.')[3]
1374+
node=self.make_simple_node(
1375+
base_dir=os.path.join(module_name,fname,'node'),
1376+
initdb_params=['--data-checksums'])
1377+
1378+
ifself.get_version(node)<90600:
1379+
self.del_test_dir(module_name,fname)
1380+
returnunittest.skip('Skipped because ptrack support is disabled')
1381+
1382+
backup_dir=os.path.join(self.tmp_path,module_name,fname,'backup')
1383+
self.init_pb(backup_dir)
1384+
self.add_instance(backup_dir,'node',node)
1385+
self.set_archiving(backup_dir,'node',node)
1386+
node.slow_start()
1387+
1388+
self.set_config(
1389+
backup_dir,'node',options=['--retention-redundancy=1'])
1390+
1391+
# Make backups to be purged
1392+
self.backup_node(backup_dir,'node',node)
1393+
self.backup_node(backup_dir,'node',node,backup_type="page")
1394+
1395+
# Make backups to be keeped
1396+
gdb=self.backup_node(backup_dir,'node',node,gdb=True)
1397+
gdb.set_breakpoint('backup_files')
1398+
gdb.run_until_break()
1399+
1400+
sleep(1)
1401+
1402+
self.backup_node(backup_dir,'node',node,backup_type="page")
1403+
1404+
gdb.remove_all_breakpoints()
1405+
gdb.continue_execution_until_exit()
1406+
1407+
self.backup_node(backup_dir,'node',node,backup_type="page")
1408+
1409+
# Purge backups
1410+
log=self.delete_expired(
1411+
backup_dir,'node',options=['--expired','--wal'])
1412+
self.assertEqual(len(self.show_pb(backup_dir,'node')),2)
1413+
1414+
# Clean after yourself
1415+
self.del_test_dir(module_name,fname)
1416+
12771417
deftest_retention_redundancy_overlapping_chains(self):
12781418
""""""
12791419
fname=self.id().split('.')[3]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp