Fix 003_extrafiles.pl test for the Windows
authorAndrew Dunstan <andrew@dunslane.net>
Tue, 30 Jan 2024 22:09:44 +0000 (17:09 -0500)
committerAndrew Dunstan <andrew@dunslane.net>
Tue, 30 Jan 2024 22:11:47 +0000 (17:11 -0500)
File::Find converts backslashes to slashes in the newer Perl versions.
See: https://github.com/Perl/perl5/commit/414f14df98cb1c9a20f92c5c54948b67c09f072d

So, do the same conversion for Windows before comparing paths. To
support all Perl versions, always convert them on Windows regardless of
the Perl's version.

Author: Nazir Bilal Yavuz <byavuz81@gmail.com>

Backpatch to all live branches

src/bin/pg_rewind/t/003_extrafiles.pl

index fd2bee5d208a374d8c252eace0c9d381f92407dd..d0840dcbe3dd85ae1c95bb603d47e128f8ea5155 100644 (file)
@@ -78,6 +78,19 @@ sub run_test
        },
        $test_primary_datadir);
    @paths = sort @paths;
+
+   # File::Find converts backslashes to slashes in the newer Perl
+   # versions. To support all Perl versions, do the same conversion
+   # for Windows before comparing the paths.
+   if ($PostgreSQL::Test::Utils::windows_os)
+   {
+       for my $filename (@paths)
+       {
+           $filename =~ s{\\}{/}g;
+       }
+       $test_primary_datadir =~ s{\\}{/}g;
+   }
+
    is_deeply(
        \@paths,
        [