Skip to content

Commit 673b11b

Browse files
committed
Merge branch 'master' of github.com:postgrespro/pg_probackup
2 parents 8691e08 + 6619f82 commit 673b11b

File tree

5 files changed

+61
-48
lines changed

5 files changed

+61
-48
lines changed

tests/Readme.md

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
[см wiki](https://confluence.postgrespro.ru/display/DEV/pg_probackup)
1+
[see wiki](https://confluence.postgrespro.ru/display/DEV/pg_probackup)
22

33
```
4-
Note: For now these are works on Linux and "kinda" works on Windows
4+
Note: For now these tests work on Linux and "kinda" work on Windows
5+
```
6+
7+
```
8+
Note: tests require python3 to work properly.
59
```
610

711
```

tests/cfs_backup.py

+47-44
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ def setUp(self):
2020
self.node = self.make_simple_node(
2121
base_dir="{0}/{1}/node".format(module_name, self.fname),
2222
set_replication=True,
23+
ptrack_enable=True,
2324
initdb_params=['--data-checksums'],
2425
pg_options={
25-
'ptrack_enable': 'on',
2626
'cfs_encryption': 'off',
2727
'max_wal_senders': '2',
2828
'shared_buffers': '200MB'
@@ -35,18 +35,27 @@ def setUp(self):
3535

3636
self.node.slow_start()
3737

38+
if self.node.major_version >= 12:
39+
self.node.safe_psql(
40+
"postgres",
41+
"CREATE EXTENSION ptrack")
42+
3843
self.create_tblspace_in_node(self.node, tblspace_name, cfs=True)
3944

4045
tblspace = self.node.safe_psql(
4146
"postgres",
4247
"SELECT * FROM pg_tablespace WHERE spcname='{0}'".format(
43-
tblspace_name)
44-
)
45-
self.assertTrue(
46-
tblspace_name in tblspace and "compression=true" in tblspace,
48+
tblspace_name))
49+
50+
self.assertIn(
51+
tblspace_name, str(tblspace),
4752
"ERROR: The tablespace not created "
48-
"or it create without compressions"
49-
)
53+
"or it create without compressions")
54+
55+
self.assertIn(
56+
"compression=true", str(tblspace),
57+
"ERROR: The tablespace not created "
58+
"or it create without compressions")
5059

5160
self.assertTrue(
5261
find_by_name(
@@ -473,7 +482,7 @@ def test_fullbackup_empty_tablespace_page_after_create_table_stream(self):
473482
)
474483

475484
# --- Section: Incremental from fill tablespace --- #
476-
@unittest.expectedFailure
485+
# @unittest.expectedFailure
477486
# @unittest.skip("skip")
478487
@unittest.skipUnless(ProbackupTest.enterprise, 'skip')
479488
def test_fullbackup_after_create_table_ptrack_after_create_table(self):
@@ -537,7 +546,7 @@ def test_fullbackup_after_create_table_ptrack_after_create_table(self):
537546
)
538547
)
539548

540-
@unittest.expectedFailure
549+
# @unittest.expectedFailure
541550
# @unittest.skip("skip")
542551
@unittest.skipUnless(ProbackupTest.enterprise, 'skip')
543552
def test_fullbackup_after_create_table_ptrack_after_create_table_stream(self):
@@ -603,7 +612,7 @@ def test_fullbackup_after_create_table_ptrack_after_create_table_stream(self):
603612
)
604613
)
605614

606-
@unittest.expectedFailure
615+
# @unittest.expectedFailure
607616
# @unittest.skip("skip")
608617
@unittest.skipUnless(ProbackupTest.enterprise, 'skip')
609618
def test_fullbackup_after_create_table_page_after_create_table(self):
@@ -738,12 +747,14 @@ def test_multiple_segments(self):
738747
# CHECK FULL BACKUP
739748
self.node.stop()
740749
self.node.cleanup()
741-
shutil.rmtree(
742-
self.get_tblspace_path(self.node, tblspace_name),
743-
ignore_errors=True)
750+
shutil.rmtree(self.get_tblspace_path(self.node, tblspace_name))
744751
self.restore_node(
745-
self.backup_dir, 'node', self.node,
746-
backup_id=backup_id_full, options=["-j", "4"])
752+
self.backup_dir, 'node', self.node, backup_id=backup_id_full,
753+
options=[
754+
"-j", "4",
755+
"--recovery-target=immediate",
756+
"--recovery-target-action=promote"])
757+
747758
self.node.slow_start()
748759
self.assertEqual(
749760
full_result,
@@ -757,8 +768,12 @@ def test_multiple_segments(self):
757768
self.get_tblspace_path(self.node, tblspace_name),
758769
ignore_errors=True)
759770
self.restore_node(
760-
self.backup_dir, 'node', self.node,
761-
backup_id=backup_id_page, options=["-j", "4"])
771+
self.backup_dir, 'node', self.node, backup_id=backup_id_page,
772+
options=[
773+
"-j", "4",
774+
"--recovery-target=immediate",
775+
"--recovery-target-action=promote"])
776+
762777
self.node.slow_start()
763778
self.assertEqual(
764779
page_result,
@@ -786,17 +801,15 @@ def test_multiple_segments_in_multiple_tablespaces(self):
786801
"AS SELECT i AS id, MD5(i::text) AS text, "
787802
"MD5(repeat(i::text,10))::tsvector AS tsvector "
788803
"FROM generate_series(0,1005000) i".format(
789-
't_heap_1', tblspace_name_1)
790-
)
804+
't_heap_1', tblspace_name_1))
791805

792806
self.node.safe_psql(
793807
"postgres",
794808
"CREATE TABLE {0} TABLESPACE {1} "
795809
"AS SELECT i AS id, MD5(i::text) AS text, "
796810
"MD5(repeat(i::text,10))::tsvector AS tsvector "
797811
"FROM generate_series(0,1005000) i".format(
798-
't_heap_2', tblspace_name_2)
799-
)
812+
't_heap_2', tblspace_name_2))
800813

801814
full_result_1 = self.node.safe_psql(
802815
"postgres", "SELECT * FROM t_heap_1")
@@ -864,21 +877,16 @@ def test_multiple_segments_in_multiple_tablespaces(self):
864877

865878
# CHECK FULL BACKUP
866879
self.node.stop()
867-
self.node.cleanup()
868-
shutil.rmtree(
869-
self.get_tblspace_path(self.node, tblspace_name),
870-
ignore_errors=True)
871-
shutil.rmtree(
872-
self.get_tblspace_path(self.node, tblspace_name_1),
873-
ignore_errors=True)
874-
shutil.rmtree(
875-
self.get_tblspace_path(self.node, tblspace_name_2),
876-
ignore_errors=True)
877880

878881
self.restore_node(
879882
self.backup_dir, 'node', self.node,
880-
backup_id=backup_id_full, options=["-j", "4"])
883+
backup_id=backup_id_full,
884+
options=[
885+
"-j", "4", "--incremental-mode=checksum",
886+
"--recovery-target=immediate",
887+
"--recovery-target-action=promote"])
881888
self.node.slow_start()
889+
882890
self.assertEqual(
883891
full_result_1,
884892
self.node.safe_psql("postgres", "SELECT * FROM t_heap_1"),
@@ -890,21 +898,16 @@ def test_multiple_segments_in_multiple_tablespaces(self):
890898

891899
# CHECK PAGE BACKUP
892900
self.node.stop()
893-
self.node.cleanup()
894-
shutil.rmtree(
895-
self.get_tblspace_path(self.node, tblspace_name),
896-
ignore_errors=True)
897-
shutil.rmtree(
898-
self.get_tblspace_path(self.node, tblspace_name_1),
899-
ignore_errors=True)
900-
shutil.rmtree(
901-
self.get_tblspace_path(self.node, tblspace_name_2),
902-
ignore_errors=True)
903901

904902
self.restore_node(
905903
self.backup_dir, 'node', self.node,
906-
backup_id=backup_id_page, options=["-j", "4"])
904+
backup_id=backup_id_page,
905+
options=[
906+
"-j", "4", "--incremental-mode=checksum",
907+
"--recovery-target=immediate",
908+
"--recovery-target-action=promote"])
907909
self.node.slow_start()
910+
908911
self.assertEqual(
909912
page_result_1,
910913
self.node.safe_psql("postgres", "SELECT * FROM t_heap_1"),
@@ -914,7 +917,7 @@ def test_multiple_segments_in_multiple_tablespaces(self):
914917
self.node.safe_psql("postgres", "SELECT * FROM t_heap_2"),
915918
'Lost data after restore')
916919

917-
@unittest.expectedFailure
920+
# @unittest.expectedFailure
918921
# @unittest.skip("skip")
919922
@unittest.skipUnless(ProbackupTest.enterprise, 'skip')
920923
def test_fullbackup_after_create_table_page_after_create_table_stream(self):

tests/helpers/cfs_helpers.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,6 @@ def corrupt_file(filename):
8888

8989
def random_string(n):
9090
a = string.ascii_letters + string.digits
91-
return ''.join([random.choice(a) for i in range(int(n)+1)])
91+
random_str = ''.join([random.choice(a) for i in range(int(n)+1)])
92+
return str.encode(random_str)
93+
# return ''.join([random.choice(a) for i in range(int(n)+1)])

tests/incr_restore.py

+3
Original file line numberDiff line numberDiff line change
@@ -1711,6 +1711,9 @@ def test_incr_checksum_long_xact(self):
17111711

17121712
# @unittest.skip("skip")
17131713
# @unittest.expectedFailure
1714+
# This test will pass with Enterprise
1715+
# because it has checksums enabled by default
1716+
@unittest.skipIf(ProbackupTest.enterprise, 'skip')
17141717
def test_incr_lsn_long_xact_1(self):
17151718
"""
17161719
"""

tests/validate.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3451,7 +3451,8 @@ def test_validate_corrupt_tablespace_map(self):
34513451
# Clean after yourself
34523452
self.del_test_dir(module_name, fname)
34533453

3454-
# @unittest.expectedFailure
3454+
#TODO fix the test
3455+
@unittest.expectedFailure
34553456
# @unittest.skip("skip")
34563457
def test_validate_target_lsn(self):
34573458
"""

0 commit comments

Comments
 (0)