Skip to content

Commit 83ed4de

Browse files
committed
Improve pg_basebackup long file name test Windows robustness
Creation of a file with a very long name can create problems on Windows due to its file path limits. Work around that by creating the file via a symlink with a shorter name. Error displayed by buildfarm animal fairywren.o Backpatch to all live branches
1 parent c8987ea commit 83ed4de

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,16 +203,20 @@
203203
'-T with invalid format fails');
204204

205205
# Tar format doesn't support filenames longer than 100 bytes.
206+
# Create the test file via a short name directory so it doesn't blow the
207+
# Windows path limit.
208+
my $lftmp = PostgreSQL::Test::Utils::tempdir_short;
209+
dir_symlink "$pgdata", "$lftmp/pgdata";
206210
my $superlongname = "superlongname_" . ("x" x 100);
207-
my $superlongpath = "$pgdata/$superlongname";
211+
my $superlongpath = "$lftmp/pgdata/$superlongname";
208212

209213
open my $file, '>', "$superlongpath"
210214
or die "unable to create file $superlongpath";
211215
close $file;
212216
$node->command_fails(
213217
[ 'pg_basebackup', '-D', "$tempdir/tarbackup_l1", '-Ft' ],
214218
'pg_basebackup tar with long name fails');
215-
unlink "$pgdata/$superlongname";
219+
unlink "$superlongpath";
216220

217221
# The following tests are for symlinks.
218222

0 commit comments

Comments
 (0)