Thread: pgsql: Reduce risk of accidentally running temp-install regression tests

pgsql: Reduce risk of accidentally running temp-install regression tests

From
petere@postgresql.org (Peter Eisentraut)
Date:
Log Message:
-----------
Reduce risk of accidentally running temp-install regression tests against
a mismatching installation.  Pick a default port number calculated from the
version number, and try a few times with other numbers if that one doesn't
work.  Check if we can connect to the port before starting our own postmaster,
to detect some other server already running there.  To simplify the code,
drop --temp-port option and use --port for both temp-install and pre-installed
case.

Modified Files:
--------------
    pgsql/src/test/regress:
        GNUmakefile (r1.75 -> r1.76)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/GNUmakefile?r1=1.75&r2=1.76)
        pg_regress.c (r1.53 -> r1.54)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/pg_regress.c?r1=1.53&r2=1.54)

Re: pgsql: Reduce risk of accidentally running temp-install regression tests

From
Andrew Dunstan
Date:

Peter Eisentraut wrote:
> Log Message:
> -----------
> Reduce risk of accidentally running temp-install regression tests against
> a mismatching installation.  Pick a default port number calculated from the
> version number, and try a few times with other numbers if that one doesn't
> work.  Check if we can connect to the port before starting our own postmaster,
> to detect some other server already running there.  To simplify the code,
> drop --temp-port option and use --port for both temp-install and pre-installed
> case.
>
> Modified Files:
> --------------
>     pgsql/src/test/regress:
>         GNUmakefile (r1.75 -> r1.76)
>         (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/GNUmakefile?r1=1.75&r2=1.76)
>         pg_regress.c (r1.53 -> r1.54)
>         (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/pg_regress.c?r1=1.53&r2=1.54)
>
>

This has apparently broken the ECPG tests - see buildfarm where multiple
members are red.

cheers

andrew

Andrew Dunstan <andrew@dunslane.net> writes:
> Peter Eisentraut wrote:
>> Log Message:
>> -----------
>> Reduce risk of accidentally running temp-install regression tests against
>> a mismatching installation.

> This has apparently broken the ECPG tests - see buildfarm where multiple
> members are red.

Yes, ecpg is still using the temp-port parameter that Peter removed :-(.

I have temporarily turned things green again (I think) by making ecpg
use --port instead, which is the new spelling of --temp-port.  However,
this is not really satisfactory because it negates the whole point of
Peter's patch, namely to have a less brittle way of selecting the
temp port.  But it looks like the temp port number is actually wired
into some of the ecpg tests' expected results, and so getting rid of it
is not as easy as one could wish.

Michael, could you look at removing that dependency so we can let
pg_regress.c select the port number as it wishes?  If it's not practical
to suppress the port number in the regression test output, maybe things
could be changed so that pg_regress.c itself substitutes in the port
number it's chosen.

            regards, tom lane

Re: pgsql: Reduce risk of accidentally running temp-install regression tests

From
Michael Meskes
Date:
On Fri, Nov 28, 2008 at 06:54:15PM -0500, Tom Lane wrote:
> temp port.  But it looks like the temp port number is actually wired
> into some of the ecpg tests' expected results, and so getting rid of it
> is not as easy as one could wish.

Should only one test, that some installations do not even run, but still, yes,
it makes things more difficult.

> Michael, could you look at removing that dependency so we can let
> pg_regress.c select the port number as it wishes?  If it's not practical
> to suppress the port number in the regression test output, maybe things
> could be changed so that pg_regress.c itself substitutes in the port
> number it's chosen.

Suppressing the output defies the purpose for this one test, namely to check
different ways to connect. If pg_regress is able do the job of two sed calls in
can easily substitute the port number itself. I'm not sure if this is worth the
hassle, or whether we just remove these parts of the regression test.

Michael
--
Michael Meskes
Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql) dot Org
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go VfL Borussia! Go SF 49ers! Use Debian GNU/Linux! Use PostgreSQL!

Michael Meskes <meskes@postgresql.org> writes:
> Suppressing the output defies the purpose for this one test, namely to check
> different ways to connect. If pg_regress is able do the job of two sed calls in
> can easily substitute the port number itself. I'm not sure if this is worth the
> hassle, or whether we just remove these parts of the regression test.

Well, pg_regress already does some comparable things for the core
regression tests, see convert_sourcefiles_in().  Whether it's worth
the hassle to have a test for this case isn't clear to me.  It doesn't
seem like something particularly likely to break.

            regards, tom lane

Re: pgsql: Reduce risk of accidentally running temp-install regression tests

From
Michael Meskes
Date:
On Sun, Nov 30, 2008 at 01:29:02PM -0500, Tom Lane wrote:
> Well, pg_regress already does some comparable things for the core
> regression tests, see convert_sourcefiles_in().  Whether it's worth
> the hassle to have a test for this case isn't clear to me.  It doesn't
> seem like something particularly likely to break.

Exactly. That's why I just removed this stuff.

Michael
--
Michael Meskes
Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org)
Michael at BorussiaFan dot De, Meskes at (Debian|Postgresql) dot Org
ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org
Go VfL Borussia! Go SF 49ers! Use Debian GNU/Linux! Use PostgreSQL!