Re: pgsql: Add tests for reinit.c

2018-03-19 Thread David Steele
On 3/19/18 5:58 PM, Andrew Dunstan wrote:
> On Mon, Mar 19, 2018 at 11:33 PM, David Steele  wrote:
>> On 3/19/18 4:15 AM, Andrew Dunstan wrote:
>>>
>>> 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.
>>
>> Thanks for the patch, Andrew!
>>
>> Peter, would you like me to provide a patch that moves this function to
>> TestLib.pm?  Happy to do it, just don't want patches crossing in the
>> night, as it were.
>>
> 
> I've reworked it and pushed the fix.

Thanks, Andrew!

-- 
-David
da...@pgmasters.net



Re: pgsql: Add tests for reinit.c

2018-03-19 Thread Andrew Dunstan
On Mon, Mar 19, 2018 at 11:33 PM, David Steele  wrote:
> On 3/19/18 4:15 AM, Andrew Dunstan wrote:
>>
>> 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.
>
> Thanks for the patch, Andrew!
>
> Peter, would you like me to provide a patch that moves this function to
> TestLib.pm?  Happy to do it, just don't want patches crossing in the
> night, as it were.
>

I've reworked it and pushed the fix.

cheers

andrew

-- 
Andrew Dunstanhttps://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Re: pgsql: Add tests for reinit.c

2018-03-16 Thread David Steele
On 3/15/18 11:51 PM, Tom Lane wrote:
> I wrote:
>> Peter Eisentraut  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::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?

-- 
-David
da...@pgmasters.net



Re: pgsql: Add tests for reinit.c

2018-03-15 Thread Tom Lane
I wrote:
> Peter Eisentraut  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::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.

regards, tom lane



Re: pgsql: Add tests for reinit.c

2018-03-15 Thread Tom Lane
Peter Eisentraut  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::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.

regards, tom lane