Fix testing on msys when builddir is under /c mount point

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: pgsql-hackers@postgresql.org
Date: 2019-06-10T04:58:38Z
Lists: pgsql-hackers

Attachments

Several TAP test suites have a need to translate from an msys path to a
Windows path.  They currently use two ways to do that:

1. TestLib::real_dir, new in v11, is sound but works for directories only.
2. The $vfs_path approach is semi-private to PostgresNode.pm and 017_shm.pl,
   and it does not work if the file falls in a mount point other than "/".
   For example, it has been doing the wrong thing when builddir is
   /c/nm/postgresql (falling in mount point /c).

I'd like to fix the mount point problem and consolidate these two methods.  I
plan to call it TestLib::perl2host, since it translates a path in Perl's
notion of the filesystem to a path in the @host@ notion of the filesystem.
Attached.

Commits

  1. Consolidate methods for translating a Perl path to a Windows path.