summaryrefslogtreecommitdiffstats
path: root/src/bin/pg_basebackup/t
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/pg_basebackup/t')
-rw-r--r--src/bin/pg_basebackup/t/010_pg_basebackup.pl17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/bin/pg_basebackup/t/010_pg_basebackup.pl b/src/bin/pg_basebackup/t/010_pg_basebackup.pl
index ec72282..e0f34e1 100644
--- a/src/bin/pg_basebackup/t/010_pg_basebackup.pl
+++ b/src/bin/pg_basebackup/t/010_pg_basebackup.pl
@@ -3,6 +3,7 @@
use strict;
use warnings;
+use Config;
use File::Basename qw(basename dirname);
use File::Path qw(rmtree);
use PostgreSQL::Test::Cluster;
@@ -173,6 +174,16 @@ foreach my $filename (
close $file;
}
+# Test that macOS system files are skipped. Only test on non-macOS systems
+# however since creating incorrect .DS_Store files on a macOS system may have
+# unintended side effects.
+if ($Config{osname} ne 'darwin')
+{
+ open my $file, '>>', "$pgdata/.DS_Store";
+ print $file "DONOTCOPY";
+ close $file;
+}
+
# Connect to a database to create global/pg_internal.init. If this is removed
# the test to ensure global/pg_internal.init is not copied will return a false
# positive.
@@ -242,6 +253,12 @@ foreach my $filename (
ok(!-f "$tempdir/backup/$filename", "$filename not copied");
}
+# We only test .DS_Store files being skipped on non-macOS systems
+if ($Config{osname} ne 'darwin')
+{
+ ok(!-f "$tempdir/backup/.DS_Store", ".DS_Store not copied");
+}
+
# Unlogged relation forks other than init should not be copied
ok(-f "$tempdir/backup/${baseUnloggedPath}_init",
'unlogged init fork in backup');