On 30.10.23 12:55, Aleksander Alekseev wrote:
> The patch LGTM. However, postgresql:pg_resetwal test suite doesn't
> pass on Windows according to cfbot. Seems to be a matter of picking a
> more generic regular expression:
>
> ```
> at C:/cirrus/src/bin/pg_resetwal/t/001_basic.pl line 54.
> 'pg_resetwal: error: could not change directory to
> "foo": No such file or directory
> doesn't match '(?^:error: could not read permissions of directory)'
> ```
>
> Should we simply use something like:
>
> ```
> qr/error: could not (read|change).* directory/
> ```
Hmm. I think maybe we should fix the behavior of
GetDataDirectoryCreatePerm() to be more consistent between Windows and
non-Windows. This is usually the first function a program uses on the
proposed data directory, so it's also responsible for reporting if the
data directory does not exist. But then on Windows, because the
function does nothing, those error scenarios end up on quite different
code paths, and I'm not sure if those are really checked that carefully.
I think we can make this more robust if we have
GetDataDirectoryCreatePerm() still run the stat() call on the proposed
data directory and report the error. See attached patch.