Fix 003_extrafiles.pl test for the Windows
authorAndrew Dunstan <[email protected]>
Tue, 30 Jan 2024 22:09:44 +0000 (17:09 -0500)
committerAndrew Dunstan <[email protected]>
Tue, 30 Jan 2024 22:12:20 +0000 (17:12 -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 <[email protected]>

Backpatch to all live branches

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

index 672c5e586ba7453829bb080369f4038495d9bf0a..945d5924b3a2bc8d8a205c1ca9da2049647590d2 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,
        [