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

Skip to content

Commit 54737fb

Browse files
committed
tests: added retention.RetentionTest.test_retention_redundancy_overlapping_chains
1 parent 3ce65d2 commit 54737fb

File tree

1 file changed

+44
-1
lines changed

1 file changed

+44
-1
lines changed

tests/retention.py

+44-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import unittest
33
from datetime import datetime, timedelta
44
from .helpers.ptrack_helpers import ProbackupTest
5+
from time import sleep
56

67

78
module_name = 'retention'
@@ -1233,4 +1234,46 @@ def test_window_error_backups(self):
12331234
backup_dir, 'node', node, backup_type='page')
12341235

12351236
# Change FULLb backup status to ERROR
1236-
# self.change_backup_status(backup_dir, 'node', backup_id_b, 'ERROR')
1237+
self.change_backup_status(backup_dir, 'node', backup_id_b, 'ERROR')
1238+
1239+
def test_retention_redundancy_overlapping_chains(self):
1240+
""""""
1241+
fname = self.id().split('.')[3]
1242+
node = self.make_simple_node(
1243+
base_dir=os.path.join(module_name, fname, 'node'),
1244+
initdb_params=['--data-checksums'])
1245+
1246+
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
1247+
self.init_pb(backup_dir)
1248+
self.add_instance(backup_dir, 'node', node)
1249+
self.set_archiving(backup_dir, 'node', node)
1250+
node.slow_start()
1251+
1252+
self.set_config(
1253+
backup_dir, 'node', options=['--retention-redundancy=1'])
1254+
1255+
# Make backups to be purged
1256+
self.backup_node(backup_dir, 'node', node)
1257+
self.backup_node(backup_dir, 'node', node, backup_type="page")
1258+
1259+
# Make backups to be keeped
1260+
gdb = self.backup_node(backup_dir, 'node', node, gdb=True)
1261+
gdb.set_breakpoint('backup_files')
1262+
gdb.run_until_break()
1263+
1264+
sleep(1)
1265+
1266+
self.backup_node(backup_dir, 'node', node, backup_type="page")
1267+
1268+
gdb.remove_all_breakpoints()
1269+
gdb.continue_execution_until_exit()
1270+
1271+
self.backup_node(backup_dir, 'node', node, backup_type="page")
1272+
1273+
# Purge backups
1274+
log = self.delete_expired(
1275+
backup_dir, 'node', options=['--expired', '--wal'])
1276+
self.assertEqual(len(self.show_pb(backup_dir, 'node')), 2)
1277+
1278+
# Clean after yourself
1279+
self.del_test_dir(module_name, fname)

0 commit comments

Comments
 (0)