Skip to content

Commit 7b6b782

Browse files
committed
tests: added tests.merge.MergeTest.test_missing_non_data_file
1 parent c90b45a commit 7b6b782

File tree

1 file changed

+58
-5
lines changed

1 file changed

+58
-5
lines changed

tests/merge.py

Lines changed: 58 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2689,11 +2689,6 @@ def test_missing_data_file(self):
26892689
'postgres',
26902690
"select pg_relation_filepath('pgbench_accounts')").rstrip()
26912691

2692-
pgdata = self.pgdata_content(node.data_dir)
2693-
2694-
print(self.show_pb(
2695-
backup_dir, 'node', as_json=False, as_text=True))
2696-
26972692
gdb = self.merge_backup(
26982693
backup_dir, "node", delta_id,
26992694
options=['--log-level-file=VERBOSE'], gdb=True)
@@ -2719,5 +2714,63 @@ def test_missing_data_file(self):
27192714

27202715
self.del_test_dir(module_name, fname)
27212716

2717+
# @unittest.skip("skip")
2718+
def test_missing_non_data_file(self):
2719+
"""
2720+
"""
2721+
fname = self.id().split('.')[3]
2722+
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
2723+
node = self.make_simple_node(
2724+
base_dir=os.path.join(module_name, fname, 'node'),
2725+
set_replication=True,
2726+
initdb_params=['--data-checksums'],
2727+
pg_options={'autovacuum': 'off'})
2728+
2729+
self.init_pb(backup_dir)
2730+
self.add_instance(backup_dir, 'node', node)
2731+
self.set_archiving(backup_dir, 'node', node)
2732+
node.slow_start()
2733+
2734+
# FULL backup
2735+
self.backup_node(backup_dir, 'node', node)
2736+
2737+
# DELTA backup
2738+
delta_id = self.backup_node(backup_dir, 'node', node, backup_type='delta')
2739+
2740+
gdb = self.merge_backup(
2741+
backup_dir, "node", delta_id,
2742+
options=['--log-level-file=VERBOSE'], gdb=True)
2743+
gdb.set_breakpoint('merge_files')
2744+
gdb.run_until_break()
2745+
2746+
# remove data file in incremental backup
2747+
file_to_remove = os.path.join(
2748+
backup_dir, 'backups',
2749+
'node', delta_id, 'database', 'backup_label')
2750+
2751+
os.remove(file_to_remove)
2752+
2753+
gdb.continue_execution_until_error()
2754+
2755+
logfile = os.path.join(backup_dir, 'log', 'pg_probackup.log')
2756+
with open(logfile, 'r') as f:
2757+
logfile_content = f.read()
2758+
2759+
self.assertIn(
2760+
'ERROR: File "{0}" is not found'.format(file_to_remove),
2761+
logfile_content)
2762+
2763+
self.assertIn(
2764+
'ERROR: Backup files merging failed',
2765+
logfile_content)
2766+
2767+
self.assertEqual(
2768+
'MERGING', self.show_pb(backup_dir, 'node')[0]['status'])
2769+
2770+
self.assertEqual(
2771+
'MERGING', self.show_pb(backup_dir, 'node')[1]['status'])
2772+
2773+
self.del_test_dir(module_name, fname)
2774+
27222775
# 1. Need new test with corrupted FULL backup
27232776
# 2. different compression levels

0 commit comments

Comments
 (0)