Skip to content

Commit aac976b

Browse files
committed
Concept WIP
1 parent 5f26c97 commit aac976b

File tree

10 files changed

+323
-10
lines changed

10 files changed

+323
-10
lines changed

src/bin/pg_basebackup/t/010_pg_basebackup.pl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
use PostgreSQL::Test::Utils;
1111
use Test::More;
1212

13+
if (defined($ENV{TDE_MODE}))
14+
{
15+
plan skip_all => "Slightly edited version of this test avaiable in pg_tde suite";
16+
}
17+
1318
program_help_ok('pg_basebackup');
1419
program_version_ok('pg_basebackup');
1520
program_options_handling_ok('pg_basebackup');

src/bin/pg_rewind/t/001_basic.pl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111

1212
use RewindTest;
1313

14+
if (defined($ENV{TDE_MODE}))
15+
{
16+
plan skip_all => "Slightly edited version of this test avaiable in pg_tde suite";
17+
}
18+
1419
sub run_test
1520
{
1621
my $test_mode = shift;

src/bin/pg_rewind/t/002_databases.pl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111

1212
use RewindTest;
1313

14+
if (defined($ENV{TDE_MODE}))
15+
{
16+
plan skip_all => "Something weird going on with file modes";
17+
}
18+
1419
sub run_test
1520
{
1621
my $test_mode = shift;

src/bin/pg_upgrade/t/002_pg_upgrade.pl

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,6 @@
1515
use PostgreSQL::Test::AdjustUpgrade;
1616
use Test::More;
1717

18-
if (defined($ENV{TDE_MODE}))
19-
{
20-
plan skip_all => "Running with TDE doesn't support special server starts yet";
21-
}
22-
2318
# Can be changed to test the other modes.
2419
my $mode = $ENV{PG_TEST_PG_UPGRADE_MODE} || '--copy';
2520

src/test/perl/PostgreSQL/Test/Cluster.pm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ use Text::ParseWords qw(shellwords);
115115
use Time::HiRes qw(usleep);
116116
use Scalar::Util qw(blessed);
117117

118+
use if defined($ENV{TDE_MODE}), 'PostgreSQL::Test::TdeCluster';
119+
118120
our ($use_tcp, $test_localhost, $test_pghost, $last_host_assigned,
119121
$last_port_assigned, @all_nodes, $died, $portdir);
120122

@@ -1527,6 +1529,10 @@ sub new
15271529
}
15281530
}
15291531

1532+
if (defined($ENV{TDE_MODE})) {
1533+
bless $node, 'PostgreSQL::Test::TdeCluster';
1534+
}
1535+
15301536
# Add node to list of nodes
15311537
push(@all_nodes, $node);
15321538

Lines changed: 286 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,286 @@
1+
package PostgreSQL::Test::TdeCluster;
2+
3+
use parent 'PostgreSQL::Test::Cluster';
4+
5+
use strict;
6+
use warnings FATAL => 'all';
7+
8+
use List::Util ();
9+
use PostgreSQL::Test::RecursiveCopy ();
10+
use PostgreSQL::Test::Utils ();
11+
12+
sub init
13+
{
14+
my ($self, %params) = @_;
15+
16+
$self->SUPER::init(%params);
17+
18+
$self->SUPER::append_conf('postgresql.conf', 'shared_preload_libraries = pg_tde');
19+
$self->SUPER::append_conf('postgresql.conf', 'pg_tde.wal_encrypt = on');
20+
21+
$self->_setup_keyfile;
22+
23+
unless (-e $self->pg_tde_dir)
24+
{
25+
mkdir($self->pg_tde_dir);
26+
$self->_setup_default_key;
27+
PostgreSQL::Test::Utils::chmod_recursive($self->pg_tde_dir, 0700, 0600);
28+
}
29+
30+
PostgreSQL::Test::Utils::run_log([
31+
'pg_tde_change_key_provider',
32+
'-D', $self->data_dir,
33+
'1664',
34+
'global_test_provider',
35+
'file',
36+
$self->pg_tde_keyfile,
37+
]);
38+
}
39+
40+
sub append_conf
41+
{
42+
my ($self, $filename, $str) = @_;
43+
44+
if ($filename eq 'postgresql.conf' or $filename eq 'postgresql.auto.conf')
45+
{
46+
# TODO: Will not work with shared_preload_libraries= without any libraries, but no TAP test currently do that.
47+
$str =~ s/shared_preload_libraries *= *'?([^'\n]+)'?/shared_preload_libraries = 'pg_tde,$1'/
48+
}
49+
50+
$self->SUPER::append_conf($filename, $str);
51+
}
52+
53+
sub backup
54+
{
55+
my ($self, $backup_name, %params) = @_;
56+
my $backup_dir = $self->backup_dir . '/' . $backup_name;
57+
58+
$params{backup_options} = [] unless defined $params{backup_options};
59+
60+
mkdir $backup_dir or die "mkdir($backup_dir) failed: $!";
61+
62+
PostgreSQL::Test::RecursiveCopy::copypath($self->pg_tde_dir, $backup_dir . '/pg_tde');
63+
PostgreSQL::Test::Utils::chmod_recursive($backup_dir . '/pg_tde', 0750, 0640);
64+
65+
# TODO: Be more thorough in checking for options incompatible with --encrypt-wal
66+
unless (List::Util::any {$_ eq '-Ft' or $_ eq '-Xnone'} @{ $params{backup_options} } ) {
67+
push @{ $params{backup_options} }, '--encrypt-wal';
68+
}
69+
70+
$self->SUPER::backup($backup_name, %params);
71+
}
72+
73+
sub enable_archiving
74+
{
75+
my ($self) = @_;
76+
my $path = $self->archive_dir;
77+
my $name = $self->name;
78+
79+
print "### Enabling WAL archiving for node \"$name\"\n";
80+
81+
$self->append_conf('postgresql.conf',
82+
"archive_mode = on\n" .
83+
qq(archive_command = 'pg_tde_archive_decrypt %f %p "cp \\"%%p\\" \\"$path/%%f\\""')
84+
);
85+
86+
return;
87+
}
88+
89+
sub enable_restoring
90+
{
91+
my ($self, $root_node, $standby) = @_;
92+
my $path = $root_node->archive_dir;
93+
my $name = $self->name;
94+
95+
print "### Enabling WAL restore for node \"$name\"\n";
96+
97+
$self->append_conf('postgresql.conf',
98+
qq(restore_command = 'pg_tde_restore_encrypt %f %p "cp \\"$path/%%f\\" \\"%%p\\""')
99+
);
100+
101+
if ($standby)
102+
{
103+
$self->set_standby_mode();
104+
}
105+
else
106+
{
107+
$self->set_recovery_mode();
108+
}
109+
110+
return;
111+
}
112+
113+
sub pg_tde_dir
114+
{
115+
my ($self) = @_;
116+
return $self->data_dir . '/pg_tde';
117+
}
118+
119+
sub pg_tde_keyfile
120+
{
121+
my ($self) = @_;
122+
return $self->basedir . '/pg_tde_test_keys';
123+
}
124+
125+
sub _setup_keyfile
126+
{
127+
my ($self) = @_;
128+
129+
$self->_write_binary_file($self->pg_tde_keyfile, $self->_key_provider_file);
130+
131+
}
132+
133+
sub _setup_default_key
134+
{
135+
my ($self, %params) = @_;
136+
137+
$self->_write_binary_file(
138+
$self->pg_tde_dir . '/1664_providers',
139+
$self->_provider_config_file
140+
);
141+
chmod(0600, $self->pg_tde_dir . '/1664_providers');
142+
143+
$self->_write_binary_file(
144+
$self->pg_tde_dir . '/1663_keys',
145+
$self->_default_key_file
146+
);
147+
chmod(0600, $self->pg_tde_dir . '/1663_keys');
148+
}
149+
150+
sub _write_binary_file
151+
{
152+
# TODO: We need a better way since this will break if format changes
153+
# and will not work on ARM.
154+
155+
my ($self, $filename, $data) = @_;
156+
157+
my $fh;
158+
159+
open($fh, '>:raw', $filename) or die("could not create \"$filename\"");
160+
$fh->print($data);
161+
close($fh);
162+
}
163+
164+
165+
sub _provider_config_file {
166+
"\xff\xff\xff\xff\x67\x6c\x6f\x62\x61\x6c\x5f\x74\x65\x73\x74\x5f" .
167+
"\x70\x72\x6f\x76\x69\x64\x65\x72\x00\x00\x00\x00\x00\x00\x00\x00" .
168+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
169+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
170+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
171+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
172+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
173+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
174+
"\x00\x00\x00\x00\x7b\x22\x70\x61\x74\x68\x22\x3a\x22\x50\x4c\x41" .
175+
"\x43\x45\x48\x4f\x4c\x44\x45\x52\x22\x7d\x00\x00\x00\x00\x00\x00" .
176+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
177+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
178+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
179+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
180+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
181+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
182+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
183+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
184+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
185+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
186+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
187+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
188+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
189+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
190+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
191+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
192+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
193+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
194+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
195+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
196+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
197+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
198+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
199+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
200+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
201+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
202+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
203+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
204+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
205+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
206+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
207+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
208+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
209+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
210+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
211+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
212+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
213+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
214+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
215+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
216+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
217+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
218+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
219+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
220+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
221+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
222+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
223+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
224+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
225+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
226+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
227+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
228+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
229+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
230+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
231+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
232+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
233+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
234+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
235+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
236+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
237+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
238+
"\x00\x00\x00\x00\x01\x00\x00\x00";
239+
}
240+
241+
sub _default_key_file {
242+
"\x54\x44\x45\x03\x71\x61\x00\x00\x7f\x06\x00\x00\xff\xff\xff\xff" .
243+
"\xd0\xdf\x9c\x68\x00\x00\x00\x00\xe6\x7b\x05\x00\x00\x00\x00\x00" .
244+
"\x64\x65\x66\x61\x75\x6c\x74\x5f\x74\x65\x73\x74\x5f\x6b\x65\x79" .
245+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
246+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
247+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
248+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
249+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
250+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
251+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
252+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
253+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
254+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
255+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
256+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
257+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
258+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
259+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
260+
"\x43\xfd\x05\xe2\x94\x23\x1c\xfe\xc1\x20\x7f\x47\xd1\xaa\xeb\xf8" .
261+
"\x46\x12\x9c\x12\x69\x3e\xd0\x9e\x8d\xe1\x0b\x73\x53\xcc\xfa\x3d";
262+
}
263+
264+
sub _key_provider_file {
265+
"\x64\x65\x66\x61\x75\x6c\x74\x5f\x74\x65\x73\x74\x5f\x6b\x65\x79" .
266+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
267+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
268+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
269+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
270+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
271+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
272+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
273+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
274+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
275+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
276+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
277+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
278+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
279+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
280+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
281+
"\x3e\xe9\xe6\xc1\x4b\x39\xcd\x2e\x60\x5e\x9e\xf1\xd5\xdf\x93\x50" .
282+
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" .
283+
"\x10\x00\x00\x00";
284+
}
285+
286+
1;

src/test/recovery/t/027_stream_regress.pl

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,6 @@
99
use Test::More;
1010
use File::Basename;
1111

12-
if (defined($ENV{TDE_MODE}))
13-
{
14-
plan skip_all => "Running with TDE doesn't support special server starts yet";
15-
}
16-
1712
# Initialize primary node
1813
my $node_primary = PostgreSQL::Test::Cluster->new('primary');
1914
$node_primary->init(allows_streaming => 1);

src/test/recovery/t/039_end_of_wal.pl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@
1313

1414
use integer; # causes / operator to use integer math
1515

16+
if (defined($ENV{TDE_MODE}))
17+
{
18+
plan skip_all => "Uses write_wal to hack wal directly";
19+
}
20+
1621
# Is this a big-endian system ("network" byte order)? We can't use 'Q' in
1722
# pack() calls because it's not available in some perl builds, so we need to
1823
# break 64 bit LSN values into two 'I' values. Fortunately we don't need to

src/test/recovery/t/042_low_level_backup.pl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@
1313
use PostgreSQL::Test::Utils;
1414
use Test::More;
1515

16+
17+
if (defined($ENV{TDE_MODE}))
18+
{
19+
plan skip_all => "Directly copies archived data without using restore_command";
20+
}
21+
1622
# Start primary node with archiving.
1723
my $node_primary = PostgreSQL::Test::Cluster->new('primary');
1824
$node_primary->init(has_archiving => 1, allows_streaming => 1);

0 commit comments

Comments
 (0)