diff options
author | Andrew Dunstan <andrew@dunslane.net> | 2023-07-03 10:06:26 -0400 |
---|---|---|
committer | Andrew Dunstan <andrew@dunslane.net> | 2023-07-03 10:07:38 -0400 |
commit | 088e395c8ae06047784c41b08c54d526d00517c9 (patch) | |
tree | fb49f5ff82c35f8bd75f98854b4dc9c5b9136c17 /src | |
parent | af36c13a7e92863413c433d3acd8aea62b216e9a (diff) | |
download | postgresql-088e395c8ae06047784c41b08c54d526d00517c9.tar.gz postgresql-088e395c8ae06047784c41b08c54d526d00517c9.zip |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/pg_basebackup/t/010_pg_basebackup.pl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/bin/pg_basebackup/t/010_pg_basebackup.pl b/src/bin/pg_basebackup/t/010_pg_basebackup.pl index 1d178f36fa6..e70eac4a636 100644 --- a/src/bin/pg_basebackup/t/010_pg_basebackup.pl +++ b/src/bin/pg_basebackup/t/010_pg_basebackup.pl @@ -197,8 +197,12 @@ $node->command_fails( '-T with invalid format fails'); # Tar format doesn't support filenames longer than 100 bytes. +# Create the test file via a short name directory so it doesn't blow the +# Windows path limit. +my $lftmp = PostgreSQL::Test::Utils::tempdir_short; +dir_symlink "$pgdata", "$lftmp/pgdata"; my $superlongname = "superlongname_" . ("x" x 100); -my $superlongpath = "$pgdata/$superlongname"; +my $superlongpath = "$lftmp/pgdata/$superlongname"; open my $file, '>', "$superlongpath" or die "unable to create file $superlongpath"; @@ -206,7 +210,7 @@ close $file; $node->command_fails( [ 'pg_basebackup', '-D', "$tempdir/tarbackup_l1", '-Ft' ], 'pg_basebackup tar with long name fails'); -unlink "$pgdata/$superlongname"; +unlink "$superlongpath"; # The following tests test symlinks. Windows doesn't have symlinks, so # skip on Windows. |