On Mon, Jun 29, 2020 at 04:56:16PM +0900, Michael Paquier wrote:
> On Fri, Jun 26, 2020 at 02:00:37PM +0200, Peter Eisentraut wrote:
>> We should be more accurate about things like this:
>>
>> +# The following tests test symlinks. Windows may not have symlinks, so
>> +# skip there.
>>
>> The issue isn't whether Windows has symlinks, since all versions of Windows
>> supported by PostgreSQL do (AFAIK). The issue is only whether the Perl
>> installation that runs the tests has symlink support. And that is only
>> necessary if the test itself wants to create or inspect symlinks. For
>> example, there are existing tests involving tablespaces that work just fine
>> on Windows.
>
> Check. Indeed that sounds confusing.
Attached is an updated patch, where I have tried to use a better
wording in all the code paths involved.
>> Relatedly, your patch ends up skipping the tests on MSYS2, even though Perl
>> supports symlinks there out of the box.
>
> Do you think that it would be enough to use what Andrew has mentioned
> in [1]? I don't have a MSYS2 installation, so I am unfortunately not
> able to confirm that, but I would just move the check to TestLib.pm
> and save it in an extra variable.
Added an extra $is_msys2 to track that in TestLib.pm. One thing I am
not sure of though: Win32::Symlink fails to work properly with -l, but
is that the case with MSYS2? If that's able to work, it would be
possible to not skip the following test but I have taken the most
careful approach for now:
+ # This symlink check is not supported on Windows. Win32::Symlink works
+ # around this situation by using junction points (actually PostgreSQL
+ # approach on the problem), and -l is not able to detect that situation.
+ SKIP:
+ {
+ skip "symlink check not implemented on Windows", 1
+ if ($windows_os)
Thanks,
--
Michael