Skip to content

Commit c5de044

Browse files
committed
Merge branch 'master' of git.postgrespro.ru:pgpro-dev/pg_probackup
2 parents 7777afc + 262f1ab commit c5de044

17 files changed

+195
-113
lines changed

tests/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ def load_tests(loader, tests, pattern):
1717
suite.addTests(loader.loadTestsFromModule(backup_test))
1818
suite.addTests(loader.loadTestsFromModule(delete_test))
1919
suite.addTests(loader.loadTestsFromModule(restore_test))
20-
suite.addTests(loader.loadTestsFromModule(validate_test))
21-
suite.addTests(loader.loadTestsFromModule(retention_test))
20+
# suite.addTests(loader.loadTestsFromModule(validate_test))
21+
# suite.addTests(loader.loadTestsFromModule(retention_test))
2222
suite.addTests(loader.loadTestsFromModule(ptrack_clean))
2323
suite.addTests(loader.loadTestsFromModule(ptrack_cluster))
2424
suite.addTests(loader.loadTestsFromModule(ptrack_move_to_tablespace))

tests/backup_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def test_backup_modes_archive(self):
5050
with open(path.join(node.logs_dir, "backup_page.log"), "wb") as backup_log:
5151
backup_log.write(self.backup_pb(node, backup_type="page", options=["--verbose"]))
5252

53-
print self.show_pb(node)
53+
# print self.show_pb(node)
5454
show_backup = self.show_pb(node)[1]
5555
self.assertEqual(show_backup['Status'], six.b("OK"))
5656
self.assertEqual(show_backup['Mode'], six.b("PAGE"))

tests/class_check.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class Base(object):
2+
def __init__(self):
3+
self.a = 10
4+
def func(self, arg1, arg2):
5+
print 'Child {0}, a = {1}'.format(arg1, arg2)
6+
7+
8+
class ChildA(Base):
9+
def __init__(self):
10+
Base.__init__(self)
11+
b = 5
12+
c = b + self.a
13+
print 'Child A, a = {0}'.format(c)
14+
15+
16+
class ChildB(Base):
17+
def __init__(self):
18+
super(ChildB, self).__init__()
19+
b = 6
20+
c = b + self.a
21+
self.func('B', c)
22+
23+
#ChildA()
24+
ChildB()

tests/class_check1.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Foo(object):
2+
def __init__(self, *value1, **value2):
3+
# do something with the values
4+
print 'I think something is being called here'
5+
# print value1, value2
6+
7+
8+
class MyFoo(Foo):
9+
def __init__(self, *args, **kwargs):
10+
# do something else, don't care about the args
11+
print args, kwargs
12+
super(MyFoo, self).__init__(*args, **kwargs)
13+
14+
15+
foo = MyFoo('Python', 2.7, stack='overflow', ololo='lalala')

tests/class_check2.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Base(object):
2+
def __init__(self):
3+
self.a = 10
4+
self.b = 1
5+
# def func(self, arg1, arg2):
6+
# print 'Child {0}, a = {1}'.format(arg1, arg2)
7+
8+
9+
class ChildA(Base):
10+
def __init__(self):
11+
Base.__init__(self)
12+
self.b = self.b + 1
13+
14+
15+
class ChildB(ChildA):
16+
def __init__(self):
17+
ChildA.__init__(self)
18+
print 'b = {0}'.format(self.b)
19+
# c = b + self.a
20+
21+
22+
#ChildA()
23+
ChildB()

tests/option_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def test_options_4(self):
6565
# we should die here because exception is what we expect to happen
6666
exit(1)
6767
except ProbackupException, e:
68-
print e.message
68+
# print e.message
6969
self.assertEqual(
7070
e.message,
7171
'ERROR: required parameter not specified: BACKUP_MODE (-b, --backup-mode)\n'

tests/ptrack_clean.py

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import unittest
22
from sys import exit
33
from testgres import get_new_node, stop_all
4-
#import os
5-
from os import path, open, lseek, read, close, O_RDONLY
64
from .ptrack_helpers import ProbackupTest, idx_ptrack
75

86

@@ -48,7 +46,7 @@ def test_ptrack_clean(self):
4846
# get ptrack for every idx
4947
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(
5048
idx_ptrack[i]['path'], idx_ptrack[i]['size'])
51-
self.check_ptrack_clean(idx_ptrack[i])
49+
self.check_ptrack_clean(idx_ptrack[i], idx_ptrack[i]['size'])
5250

5351
# Update everything, vacuum it and make PTRACK BACKUP
5452
node.psql('postgres', 'update t_heap set text = md5(text), tsvector = md5(repeat(tsvector::text, 10))::tsvector;')
@@ -66,34 +64,29 @@ def test_ptrack_clean(self):
6664
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(
6765
idx_ptrack[i]['path'], idx_ptrack[i]['size'])
6866
# check that ptrack bits are cleaned
69-
self.check_ptrack_clean(idx_ptrack[i])
70-
#
71-
# # Update everything, vacuum it and make PAGE BACKUP
72-
# node.psql('postgres', 'update t_heap set text = md5(text), tsvector = md5(repeat(tsvector::text, 10))::tsvector;')
73-
# node.psql('postgres', 'vacuum t_heap')
74-
#
75-
# # Make page backup to clean every ptrack
76-
# self.backup_pb(node, backup_type='page', options=['-j100'])
77-
# node.psql('postgres', 'checkpoint')
78-
#
79-
# for i in idx_ptrack:
80-
# # get new size of heap and indexes and calculate it in pages
81-
# idx_ptrack[i]['size'] = self.get_fork_size(node, i)
82-
# # update path to heap and index files in case they`ve changed
83-
# idx_ptrack[i]['path'] = self.get_fork_path(node, i)
84-
# # # get ptrack for every idx
85-
# idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(
86-
# idx_ptrack[i]['path'], idx_ptrack[i]['size'])
87-
# # check that ptrack bits are cleaned
88-
# self.check_ptrack_clean(idx_ptrack[i])
89-
90-
# print self.clean_pb(node)
91-
# for i in self.show_pb(node):
92-
# print i
93-
self.show_pb(node, as_text=True)
67+
self.check_ptrack_clean(idx_ptrack[i], idx_ptrack[i]['size'])
68+
69+
# Update everything, vacuum it and make PAGE BACKUP
70+
node.psql('postgres', 'update t_heap set text = md5(text), tsvector = md5(repeat(tsvector::text, 10))::tsvector;')
71+
node.psql('postgres', 'vacuum t_heap')
72+
73+
# Make page backup to clean every ptrack
74+
self.backup_pb(node, backup_type='page', options=['-j100'])
75+
node.psql('postgres', 'checkpoint')
76+
77+
for i in idx_ptrack:
78+
# get new size of heap and indexes and calculate it in pages
79+
idx_ptrack[i]['size'] = self.get_fork_size(node, i)
80+
# update path to heap and index files in case they`ve changed
81+
idx_ptrack[i]['path'] = self.get_fork_path(node, i)
82+
# # get ptrack for every idx
83+
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(
84+
idx_ptrack[i]['path'], idx_ptrack[i]['size'])
85+
# check that ptrack bits are cleaned
86+
self.check_ptrack_clean(idx_ptrack[i], idx_ptrack[i]['size'])
87+
88+
print self.show_pb(node, as_text=True)
9489
self.clean_pb(node)
95-
# print a
96-
# print a.mode
9790
node.stop()
9891

9992
if __name__ == '__main__':

tests/ptrack_cluster.py

Lines changed: 39 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,8 @@
11
import unittest
22
from sys import exit
33
from testgres import get_new_node, stop_all
4-
#import os
5-
from os import path, open, lseek, read, close, O_RDONLY
64
from .ptrack_helpers import ProbackupTest, idx_ptrack
75

8-
# res = node.execute('postgres', 'show fsync')
9-
# print res[0][0]
10-
# res = node.execute('postgres', 'show wal_level')
11-
# print res[0][0]
12-
# a = ProbackupTest
13-
# res = node.execute('postgres', 'select 1')`
14-
# self.assertEqual(len(res), 1)
15-
# self.assertEqual(res[0][0], 1)
16-
# node.stop()
17-
# a = self.backup_dir(node)
18-
196

207
class SimpleTest(ProbackupTest, unittest.TestCase):
218
def __init__(self, *args, **kwargs):
@@ -27,8 +14,9 @@ def teardown(self):
2714

2815
# @unittest.skip("123")
2916
def test_ptrack_cluster_btree(self):
30-
print 'test_ptrack_cluster_btree started'
31-
node = self.make_simple_node(base_dir="tmp_dirs/ptrack/test_ptrack_cluster_btree",
17+
fname = self.id().split('.')[3]
18+
print '{0} started'.format(fname)
19+
node = self.make_simple_node(base_dir="tmp_dirs/ptrack/{0}".format(fname),
3220
set_replication=True,
3321
initdb_params=['--data-checksums', '-A trust'],
3422
pg_options={'ptrack_enable': 'on', 'wal_level': 'replica', 'max_wal_senders': '2'})
@@ -56,7 +44,7 @@ def test_ptrack_cluster_btree(self):
5644
idx_ptrack[i]['path'] = self.get_fork_path(node, i)
5745
# calculate md5sums of pages
5846
idx_ptrack[i]['old_pages'] = self.get_md5_per_page_for_fork(
59-
idx_ptrack[i]['old_size'], idx_ptrack[i]['path'])
47+
idx_ptrack[i]['path'], idx_ptrack[i]['old_size'])
6048

6149
self.init_pb(node)
6250
self.backup_pb(node, backup_type='full', options=['-j100', '--stream'])
@@ -72,19 +60,22 @@ def test_ptrack_cluster_btree(self):
7260
idx_ptrack[i]['path'] = self.get_fork_path(node, i)
7361
# calculate new md5sums for pages
7462
idx_ptrack[i]['new_pages'] = self.get_md5_per_page_for_fork(
75-
idx_ptrack[i]['new_size'], idx_ptrack[i]['path'])
63+
idx_ptrack[i]['path'], idx_ptrack[i]['new_size'])
7664
# get ptrack for every idx
77-
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(idx_ptrack[i]['path'])
65+
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(
66+
idx_ptrack[i]['path'], idx_ptrack[i]['new_size'])
7867

7968
# compare pages and check ptrack sanity
8069
self.check_ptrack_sanity(idx_ptrack[i])
8170

8271
self.clean_pb(node)
8372
node.stop()
8473

74+
@unittest.skip("123")
8575
def test_ptrack_cluster_spgist(self):
86-
print 'test_ptrack_cluster_spgist started'
87-
node = self.make_simple_node(base_dir="tmp_dirs/ptrack/test_ptrack_cluster_spgist",
76+
fname = self.id().split('.')[3]
77+
print '{0} started'.format(fname)
78+
node = self.make_simple_node(base_dir="tmp_dirs/ptrack/{0}".format(fname),
8879
set_replication=True,
8980
initdb_params=['--data-checksums', '-A trust'],
9081
pg_options={'ptrack_enable': 'on', 'wal_level': 'replica', 'max_wal_senders': '2'})
@@ -112,7 +103,7 @@ def test_ptrack_cluster_spgist(self):
112103
idx_ptrack[i]['path'] = self.get_fork_path(node, i)
113104
# calculate md5sums of pages
114105
idx_ptrack[i]['old_pages'] = self.get_md5_per_page_for_fork(
115-
idx_ptrack[i]['old_size'], idx_ptrack[i]['path'])
106+
idx_ptrack[i]['path'], idx_ptrack[i]['old_size'])
116107

117108
self.init_pb(node)
118109
self.backup_pb(node, backup_type='full', options=['-j100', '--stream'])
@@ -128,19 +119,22 @@ def test_ptrack_cluster_spgist(self):
128119
idx_ptrack[i]['path'] = self.get_fork_path(node, i)
129120
# calculate new md5sums for pages
130121
idx_ptrack[i]['new_pages'] = self.get_md5_per_page_for_fork(
131-
idx_ptrack[i]['new_size'], idx_ptrack[i]['path'])
122+
idx_ptrack[i]['path'], idx_ptrack[i]['new_size'])
132123
# get ptrack for every idx
133-
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(idx_ptrack[i]['path'])
124+
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(
125+
idx_ptrack[i]['path'], idx_ptrack[i]['new_size'])
134126

135127
# compare pages and check ptrack sanity
136128
self.check_ptrack_sanity(idx_ptrack[i])
137129

138130
self.clean_pb(node)
139131
node.stop()
140132

133+
@unittest.skip("123")
141134
def test_ptrack_cluster_brin(self):
142-
print 'test_ptrack_cluster_brin started'
143-
node = self.make_simple_node(base_dir="tmp_dirs/ptrack/test_ptrack_cluster_brin",
135+
fname = self.id().split('.')[3]
136+
print '{0} started'.format(fname)
137+
node = self.make_simple_node(base_dir="tmp_dirs/ptrack/{0}".format(fname),
144138
set_replication=True,
145139
initdb_params=['--data-checksums', '-A trust'],
146140
pg_options={'ptrack_enable': 'on', 'wal_level': 'replica', 'max_wal_senders': '2'})
@@ -168,7 +162,7 @@ def test_ptrack_cluster_brin(self):
168162
idx_ptrack[i]['path'] = self.get_fork_path(node, i)
169163
# calculate md5sums of pages
170164
idx_ptrack[i]['old_pages'] = self.get_md5_per_page_for_fork(
171-
idx_ptrack[i]['old_size'], idx_ptrack[i]['path'])
165+
idx_ptrack[i]['path'], idx_ptrack[i]['old_size'])
172166

173167
self.init_pb(node)
174168
self.backup_pb(node, backup_type='full', options=['-j100', '--stream'])
@@ -184,19 +178,22 @@ def test_ptrack_cluster_brin(self):
184178
idx_ptrack[i]['path'] = self.get_fork_path(node, i)
185179
# calculate new md5sums for pages
186180
idx_ptrack[i]['new_pages'] = self.get_md5_per_page_for_fork(
187-
idx_ptrack[i]['new_size'], idx_ptrack[i]['path'])
181+
idx_ptrack[i]['path'], idx_ptrack[i]['new_size'])
188182
# get ptrack for every idx
189-
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(idx_ptrack[i]['path'])
183+
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(
184+
idx_ptrack[i]['path'], idx_ptrack[i]['new_size'])
190185

191186
# compare pages and check ptrack sanity
192187
self.check_ptrack_sanity(idx_ptrack[i])
193188

194189
self.clean_pb(node)
195190
node.stop()
196191

192+
@unittest.skip("123")
197193
def test_ptrack_cluster_gist(self):
198-
print 'test_ptrack_cluster_gist started'
199-
node = self.make_simple_node(base_dir="tmp_dirs/ptrack/test_ptrack_cluster_gist",
194+
fname = self.id().split('.')[3]
195+
print '{0} started'.format(fname)
196+
node = self.make_simple_node(base_dir="tmp_dirs/ptrack/{0}".format(fname),
200197
set_replication=True,
201198
initdb_params=['--data-checksums', '-A trust'],
202199
pg_options={'ptrack_enable': 'on', 'wal_level': 'replica', 'max_wal_senders': '2'})
@@ -224,7 +221,7 @@ def test_ptrack_cluster_gist(self):
224221
idx_ptrack[i]['path'] = self.get_fork_path(node, i)
225222
# calculate md5sums of pages
226223
idx_ptrack[i]['old_pages'] = self.get_md5_per_page_for_fork(
227-
idx_ptrack[i]['old_size'], idx_ptrack[i]['path'])
224+
idx_ptrack[i]['path'], idx_ptrack[i]['old_size'])
228225

229226
self.init_pb(node)
230227
self.backup_pb(node, backup_type='full', options=['-j100', '--stream'])
@@ -240,19 +237,22 @@ def test_ptrack_cluster_gist(self):
240237
idx_ptrack[i]['path'] = self.get_fork_path(node, i)
241238
# calculate new md5sums for pages
242239
idx_ptrack[i]['new_pages'] = self.get_md5_per_page_for_fork(
243-
idx_ptrack[i]['new_size'], idx_ptrack[i]['path'])
240+
idx_ptrack[i]['path'], idx_ptrack[i]['new_size'])
244241
# get ptrack for every idx
245-
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(idx_ptrack[i]['path'])
242+
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(
243+
idx_ptrack[i]['path'], idx_ptrack[i]['new_size'])
246244

247245
# compare pages and check ptrack sanity
248246
self.check_ptrack_sanity(idx_ptrack[i])
249247

250248
self.clean_pb(node)
251249
node.stop()
252250

251+
@unittest.skip("123")
253252
def test_ptrack_cluster_gin(self):
254-
print 'test_ptrack_cluster_gin started'
255-
node = self.make_simple_node(base_dir="tmp_dirs/ptrack/test_ptrack_cluster_gin",
253+
fname = self.id().split('.')[3]
254+
print '{0} started'.format(fname)
255+
node = self.make_simple_node(base_dir="tmp_dirs/ptrack/{0}".format(fname),
256256
set_replication=True,
257257
initdb_params=['--data-checksums', '-A trust'],
258258
pg_options={'ptrack_enable': 'on', 'wal_level': 'replica', 'max_wal_senders': '2'})
@@ -280,7 +280,7 @@ def test_ptrack_cluster_gin(self):
280280
idx_ptrack[i]['path'] = self.get_fork_path(node, i)
281281
# calculate md5sums of pages
282282
idx_ptrack[i]['old_pages'] = self.get_md5_per_page_for_fork(
283-
idx_ptrack[i]['old_size'], idx_ptrack[i]['path'])
283+
idx_ptrack[i]['path'], idx_ptrack[i]['old_size'])
284284

285285
self.init_pb(node)
286286
self.backup_pb(node, backup_type='full', options=['-j100', '--stream'])
@@ -296,9 +296,10 @@ def test_ptrack_cluster_gin(self):
296296
idx_ptrack[i]['path'] = self.get_fork_path(node, i)
297297
# calculate new md5sums for pages
298298
idx_ptrack[i]['new_pages'] = self.get_md5_per_page_for_fork(
299-
idx_ptrack[i]['new_size'], idx_ptrack[i]['path'])
299+
idx_ptrack[i]['path'], idx_ptrack[i]['new_size'])
300300
# get ptrack for every idx
301-
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(idx_ptrack[i]['path'])
301+
idx_ptrack[i]['ptrack'] = self.get_ptrack_bits_per_for_fork(
302+
idx_ptrack[i]['path'], idx_ptrack[i]['new_size'])
302303

303304
# compare pages and check ptrack sanity
304305
self.check_ptrack_sanity(idx_ptrack[i])

0 commit comments

Comments
 (0)