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,
                [