8000 tests: snapfs module added · postgrespro/pg_probackup@9bf541b · GitHub
[go: up one dir, main page]

Skip to content

Commit 9bf541b

Browse files
committed
tests: snapfs module added
1 parent 93c39d2 commit 9bf541b

File tree

2 files changed

+64
-1
lines changed

2 files changed

+64
-1
lines changed

tests/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
ptrack_vacuum_full, ptrack_vacuum_truncate, pgpro560, pgpro589, \
99
false_positive, replica, compression, page, ptrack, archive, \
1010
exclude, cfs_backup, cfs_restore, cfs_validate_backup, auth_test, \
11-
time_stamp
11+
time_stamp, snapfs
1212

1313

1414
def load_tests(loader, tests, pattern):
@@ -46,6 +46,7 @@ def load_tests(loader, tests, pattern):
4646
suite.addTests(loader.loadTestsFromModule(restore_test))
4747
suite.addTests(loader.loadTestsFromModule(retention_test))
4848
suite.addTests(loader.loadTestsFromModule(show_test))
49+
suite.addTests(loader.loadTestsFromModule(snapfs))
4950
suite.addTests(loader.loadTestsFromModule(validate_test))
5051
suite.addTests(loader.loadTestsFromModule(pgpro560))
5152
suite.addTests(loader.loadTestsFromModule(pgpro589))

tests/snapfs.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import unittest
2+
import os
3+
from time import sleep
4+
from .helpers.ptrack_helpers import ProbackupTest, ProbackupException
5+
6+
7+
module_name = 'snapfs'
8+
9+
10+
class SnapFSTest(ProbackupTest, unittest.TestCase):
11+
12+
# @unittest.skip("skip")
13+
# @unittest.expectedFailure
14+
def test_backup_modes_archive(self):
15+
"""standart backup modes with ARCHIVE WAL method"""
16+
fname = self.id().split('.')[3]
17+
node = self.make_simple_node(
18+
base_dir=os.path.join(module_name, fname, 'node'),
19+
initdb_params=['--data-checksums'],
20+
pg_options={
21+
'wal_level': 'replica'})
22+
23+
backup_dir = os.path.join(self.tmp_path, module_name, fname, 'backup')
24+
self.init_pb(backup_dir)
25+
self.add_instance(backup_dir, 'node', node)
26+
self.set_archiving(backup_dir, 'node', node)
27+
node.slow_start()
28+
29+
self.backup_node(backup_dir, 'node', node)
30+
31+
node.safe_psql(
32+
'postgres',
33+ 8000
'select pg_make_snapshot()')
34+
35+
node.pgbench_init(scale=100)
36+
37+
pgbench = node.pgbench(options=['-T', '50', '-c', '2', '--no-vacuum'])
38+
pgbench.wait()
39+
40+
self.backup_node(
41+
backup_dir, 'node', node, backup_type='page')
42+
43+
node.safe_psql(
44+
'postgres',
45+
'select pg_remove_snashot(1)')
46+
47+
self.backup_node(
48+
backup_dir, 'node', node)
49+
50+
pgdata = self.pgdata_content(node.data_dir)
51+
52+
node.cleanup()
53+
54+
self.restore_node(
55+
backup_dir, 'node',
56+
restored_node, options=["-j", "4"])
57+
58+
pgdata_restored = self.pgdata_content(node.data_dir)
59+
self.compare_pgdata(pgdata, pgdata_restored)
60+
61+
# Clean after yourself
62+
self.del_test_dir(module_name, fname)

0 commit comments

Comments
 (0)
0