aboutsummaryrefslogtreecommitdiff
path: root/src/bin/pg_validatebackup/t/006_encoding.pl
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/pg_validatebackup/t/006_encoding.pl')
-rw-r--r--src/bin/pg_validatebackup/t/006_encoding.pl27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/bin/pg_validatebackup/t/006_encoding.pl b/src/bin/pg_validatebackup/t/006_encoding.pl
new file mode 100644
index 00000000000..5e3e7152a52
--- /dev/null
+++ b/src/bin/pg_validatebackup/t/006_encoding.pl
@@ -0,0 +1,27 @@
+# Verify that pg_validatebackup handles hex-encoded filenames correctly.
+
+use strict;
+use warnings;
+use Cwd;
+use Config;
+use PostgresNode;
+use TestLib;
+use Test::More tests => 5;
+
+my $master = get_new_node('master');
+$master->init(allows_streaming => 1);
+$master->start;
+my $backup_path = $master->backup_dir . '/test_encoding';
+$master->command_ok(['pg_basebackup', '-D', $backup_path, '--no-sync',
+ '--manifest-force-encode' ],
+ "backup ok with forced hex encoding");
+
+my $manifest = slurp_file("$backup_path/backup_manifest");
+my $count_of_encoded_path_in_manifest =
+ (() = $manifest =~ /Encoded-Path/mig);
+cmp_ok($count_of_encoded_path_in_manifest, '>', 100,
+ "many paths are encoded in the manifest");
+
+command_like(['pg_validatebackup', '-s', $backup_path ],
+ qr/backup successfully verified/,
+ 'backup with forced encoding validated');