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:09:44 +0000 (17:09 -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 d54dcddcbb6e2f04fb0fccc41af9f8bae96b394d..7e4c2771ce7d6f4288c8c8c2d833a2ac3cedee3f 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,
        [