Hello Tom,
> Hm, so bowerbird (a Windows machine) has been failing the pgbench tests
> since this went in, cf
>
> https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=bowerbird&dt=2019-01-20%2004%3A57%3A01
>
> I'm just guessing, but I suspect that bowerbird is using a path spec that
> includes a backslash directory separator and that's somehow bollixing
> things.
This point is unclear from the log, where plain slashes are used in the
log prefix path, and furthermore no strange characters appear in the
log prefix path:
# Running: pgbench -n -S -t 50 -c 2 --log
--log-prefix=G:/prog/bf/root/HEAD/pgsql.build/src/bin/pgbench/tmp_check/t_001_pgbench_with_server_main_data/001_pgbench_log_2
--sampling-rate=0.5
ok 345 - pgbench logs status (got 0 vs expected 0)
ok 346 - pgbench logs stdout /(?^:select only)/
ok 347 - pgbench logs stdout /(?^:processed: 100/100)/
ok 348 - pgbench logs stderr /(?^:^$)/
not ok 349 - number of log files
> If so, we might be able to fix it by converting backslashes to
> forward slashes before applying quotemeta().
>
> It's also possible that on Windows, "glob" handles backslashes
> differently than it does elsewhere, which would be harder to fix
> --- that would bring back my original fear that the appropriate
> quoting rules are different for "glob" than for regexes.
I'm afraid it could indeed be due to platform-specific behavior, so
testing on the target machine to understand the actual behavior would
help.
I just tested the current version on my laptop within a directory
containing spaces and other misc chars: Pgbench TAP tests are currently
broken in this context on master, and this may be used to a collection of
issues, not just one, eg pgbench function splits parameters on spaces
which breaks if there are spaces in bdir.
I'm going to investigate, possibly over next week-end, so please be
patient.
About windows-specific issues, from File::Glob man page:
""" On DOSISH systems, backslash is a valid directory separator character.
In this case, use of backslash as a quoting character (via GLOB_QUOTE)
interferes with the use of backslash as a directory separator. ... """
It seems to suggest that quotemeta backslash-on-nearly-everything approach
is not appropriate.
--
Fabien.