Re: pgsql: Add tests for reinit.c - Mailing list pgsql-committers

From Andrew Dunstan
Subject Re: pgsql: Add tests for reinit.c
Date
Msg-id CAD5tBc+V-6BO_8yGK3t8kNSw3pgLpEgYNJef7OMmoq3171_nHg@mail.gmail.com
Whole thread Raw
In response to Re: pgsql: Add tests for reinit.c  (David Steele <david@pgmasters.net>)
Responses Re: pgsql: Add tests for reinit.c  (David Steele <david@pgmasters.net>)
List pgsql-committers


On Sat, Mar 17, 2018 at 12:06 AM, David Steele <david@pgmasters.net> wrote:
On 3/15/18 11:51 PM, Tom Lane wrote:
> I wrote:
>> Peter Eisentraut <peter_e@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

pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Doc: note that statement-level view triggers require anINSTEAD
Next
From: Magnus Hagander
Date:
Subject: pgsql: Fix typo in comment