On Sat, Mar 17, 2018 at 12:06 AM, David Steele <da...@pgmasters.net> wrote:

> On 3/15/18 11:51 PM, Tom Lane wrote:
> > I wrote:
> >> Peter Eisentraut <pete...@gmx.net> writes:
> >>> Add tests for reinit.c
> >
> >> BTW, buildfarm member jacana hasn't succeeded at this test once.
> >> The failures look like
> >
> >> ok 1 - init fork in base exists
> >> ok 2 - main fork in base exists
> >> error running SQL: 'psql:<stdin>:1: ERROR:  directory
> "/home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/tmp_test_wBGG"
> does not exist'
> >> while running 'psql -XAtq -d port=50531 host=127.0.0.1
> dbname='postgres' -f - -v ON_ERROR_STOP=1' with sql 'CREATE TABLESPACE ts1
> LOCATION 
> '/home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/tmp_check/tmp_test_wBGG''
> at 
> /home/pgrunner/bf/root/HEAD/pgsql.build/../pgsql/src/test/perl//PostgresNode.pm
> line 1246.
> >
> >> so I hypothesize that there's something wrong with TestLib::tempdir on
> >> Windows, but no idea what.
> >
> > After further staring at that, I think it's some sort of mingw path
> > weirdness.  I notice that the initdb output refers to the PGDATA
> > directory as
> >
> > c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.
> build/src/test/recovery/tmp_check/t_014_unlogged_reinit_main_data/pgdata
> >
> > and then after that we see "pg_ctl start" succeeding with just
> >
> > /home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/
> tmp_check/t_014_unlogged_reinit_main_data/pgdata
> >
> > but this isn't working:
> >
> > /home/pgrunner/bf/root/HEAD/pgsql.build/src/test/recovery/
> tmp_check/tmp_test_esA3
> >
> > perhaps because it lacks the "c:/mingw/msys/1.0" prefix.
> >
> > Still no opinion about how to fix it.
>
> I looked around for other examples but the only ones I could find are in
> the pg_basebackup tests (010_pg_basebackup.pl), which exclude these
> calls for Windows.  I don't have a Windows machine to experiment on.
>
> Michael, any thoughts?
>
>

The attached fixes it. We should probably put the function or something
like it in TestLib.pm, though. The call to pwd is quite tricky - it needs
to be done pretty much exactly like this, not quite sure why, but direct
calls to "pwd -W" via system() or backticks don't work, only this indirect
call works on jacana.

cheers

andrew

Attachment: tap-test-fix.patch
Description: Binary data

Reply via email to