@@ -36,6 +36,7 @@ use warnings FATAL => 'all';
36
36
37
37
use Carp;
38
38
use Exporter ' import' ;
39
+ use File::Basename;
39
40
use File::Copy;
40
41
use File::Path qw( rmtree) ;
41
42
use IPC::Run qw( run) ;
@@ -113,6 +114,13 @@ sub setup_cluster
113
114
my $extra_name = shift ; # Used to differentiate clusters
114
115
my $extra = shift ; # Extra params for initdb
115
116
117
+ my ($test_name ) = basename($0 ) =~ / ([^.]*)/ ;
118
+ my ($test_mode ) = $extra_name //= ' default' ;
119
+ my $tde_keyring_file =
120
+ " /tmp/pg_tde_rewind_test_${test_name} _${test_mode} .per" ;
121
+
122
+ unlink ($tde_keyring_file );
123
+
116
124
# Initialize primary, data checksums are mandatory
117
125
$node_primary =
118
126
PostgreSQL::Test::Cluster-> new(
@@ -132,7 +140,31 @@ sub setup_cluster
132
140
' postgresql.conf' , qq(
133
141
wal_keep_size = 320MB
134
142
allow_in_place_tablespaces = on
143
+
144
+ shared_preload_libraries = 'pg_tde'
135
145
) );
146
+
147
+ $node_primary -> start;
148
+
149
+ $node_primary -> safe_psql(' postgres' ,
150
+ " CREATE EXTENSION IF NOT EXISTS pg_tde;" );
151
+ $node_primary -> safe_psql(' postgres' ,
152
+ " SELECT pg_tde_add_global_key_provider_file('file-keyring-wal','${tde_keyring_file} ');"
153
+ );
154
+ $node_primary -> safe_psql(' postgres' ,
155
+ " SELECT pg_tde_create_key_using_global_key_provider('global-db-principal-key', 'file-keyring-wal');"
156
+ );
157
+ $node_primary -> safe_psql(' postgres' ,
158
+ " SELECT pg_tde_set_server_key_using_global_key_provider('global-db-principal-key', 'file-keyring-wal');"
159
+ );
160
+
161
+ $node_primary -> append_conf(
162
+ ' postgresql.conf' , q{
163
+ pg_tde.wal_encrypt = on
164
+ } );
165
+
166
+ $node_primary -> stop;
167
+
136
168
return ;
137
169
}
138
170
0 commit comments