Skip to content

Commit 7bb2177

Browse files
committed
tests: page_get_block added
1 parent 0f85328 commit 7bb2177

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

tests/ptrack.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,69 @@ def test_ptrack_disable(self):
128128
# Clean after yourself
129129
self.del_test_dir(module_name, fname)
130130

131+
# @unittest.skip("skip")
132+
def test_page_get_block(self):
133+
"""make node, make full and ptrack stream backups,"
134+
" restore them and check data correctness"""
135+
fname = self.id().split('.')[3]
136+
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
137+
node = self.make_simple_node(
138+
base_dir="{0}/{1}/node".format(module_name, fname),
139+
set_replication=True,
140+
initdb_params=['--data-checksums'],
141+
pg_options={
142+
'wal_level': 'replica',
143+
'max_wal_senders': '2',
144+
'checkpoint_timeout': '300s',
145+
'ptrack_enable': 'on'
146+
}
147+
)
148+
self.init_pb(backup_dir)
149+
self.add_instance(backup_dir, 'node', node)
150+
self.set_archiving(backup_dir, 'node', node)
151+
node.start()
152+
153+
node.safe_psql(
154+
"postgres",
155+
"create table t_heap as select i"
156+
" as id from generate_series(0,1) i"
157+
)
158+
159+
self.backup_node(backup_dir, 'node', node)
160+
gdb = self.backup_node(
161+
backup_dir, 'node', node, backup_type='page',
162+
options=['--stream', '--log-level-file=verbose'],
163+
gdb=True
164+
)
165+
166+
node.safe_psql(
167+
"postgres",
168+
"update t_heap set id = 100500")
169+
170+
self.backup_node(
171+
backup_dir, 'node', node,
172+
backup_type='page', options=['--stream']
173+
)
174+
pgdata = self.pgdata_content(node.data_dir)
175+
176+
result = node.safe_psql("postgres", "SELECT * FROM t_heap")
177+
node.cleanup()
178+
self.restore_node(backup_dir, 'node', node, options=["-j", "4"])
179+
pgdata_restored = self.pgdata_content(node.data_dir)
180+
181+
node.start()
182+
# Logical comparison
183+
self.assertEqual(
184+
result,
185+
node.safe_psql("postgres", "SELECT * FROM t_heap")
186+
)
187+
188+
# Physical comparison
189+
self.compare_pgdata(pgdata, pgdata_restored)
190+
191+
# Clean after yourself
192+
# self.del_test_dir(module_name, fname)
193+
131194
# @unittest.skip("skip")
132195
def test_ptrack_get_block(self):
133196
"""make node, make full and ptrack stream backups,"

0 commit comments

Comments
 (0)