pgsql: Allow pg_regress to be run outside the build tree.

Started by Nonameover 17 years ago10 messages
#1Noname
petere@postgresql.org

Log Message:
-----------
Allow pg_regress to be run outside the build tree. Look for input files
in both input and output dir, to handle vpath builds more simply.

Modified Files:
--------------
pgsql/src/makefiles:
pgxs.mk (r1.12 -> r1.13)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/makefiles/pgxs.mk?r1=1.12&r2=1.13)
pgsql/src/pl/plperl:
GNUmakefile (r1.34 -> r1.35)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plperl/GNUmakefile?r1=1.34&r2=1.35)
pgsql/src/pl/plpython:
Makefile (r1.29 -> r1.30)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/Makefile?r1=1.29&r2=1.30)
pgsql/src/pl/tcl:
Makefile (r1.51 -> r1.52)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/tcl/Makefile?r1=1.51&r2=1.52)
pgsql/src/test/regress:
GNUmakefile (r1.74 -> r1.75)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/GNUmakefile?r1=1.74&r2=1.75)
pg_regress.c (r1.47 -> r1.48)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/pg_regress.c?r1=1.47&r2=1.48)
pg_regress.h (r1.3 -> r1.4)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/pg_regress.h?r1=1.3&r2=1.4)
pg_regress_main.c (r1.3 -> r1.4)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/pg_regress_main.c?r1=1.3&r2=1.4)
pgsql/src/test/regress/input:
create_function_1.source (r1.18 -> r1.19)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/input/create_function_1.source?r1=1.18&r2=1.19)
create_function_2.source (r1.15 -> r1.16)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/input/create_function_2.source?r1=1.15&r2=1.16)
pgsql/src/test/regress/output:
create_function_1.source (r1.32 -> r1.33)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/output/create_function_1.source?r1=1.32&r2=1.33)
create_function_2.source (r1.21 -> r1.22)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/output/create_function_2.source?r1=1.21&r2=1.22)

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noname (#1)
Re: pgsql: Allow pg_regress to be run outside the build tree.

petere@postgresql.org (Peter Eisentraut) writes:

Allow pg_regress to be run outside the build tree. Look for input files
in both input and output dir, to handle vpath builds more simply.

Buildfarm doesn't like this patch much :-(. It's definitely not working
on the MSVC setup, and it looks like VPATH builds on Unixen aren't in
good shape either.

regards, tom lane

#3Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#2)
Re: [COMMITTERS] pgsql: Allow pg_regress to be run outside the build tree.

Tom Lane wrote:

petere@postgresql.org (Peter Eisentraut) writes:

Allow pg_regress to be run outside the build tree. Look for input files
in both input and output dir, to handle vpath builds more simply.

Buildfarm doesn't like this patch much :-(. It's definitely not working
on the MSVC setup, and it looks like VPATH builds on Unixen aren't in
good shape either.

vpath build should be fixed now. MSVC will need to update the
pg_regress call sites, but I'll leave that to those maintaining that
build system. In particular, the --dlpath option needs to be added.

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#3)
Re: Re: [COMMITTERS] pgsql: Allow pg_regress to be run outside the build tree.

Peter Eisentraut <peter_e@gmx.net> writes:

vpath build should be fixed now. MSVC will need to update the
pg_regress call sites, but I'll leave that to those maintaining that
build system. In particular, the --dlpath option needs to be added.

contrib is still pretty broken. One part of it is needing a --srcdir
option in pgxs.mk, which I fixed. But some of the modules still
fail --- it looks like the problem is with the ones having data/
subdirectories. You seem to have taken out the copying of the data
files into the vpath build tree, but I think you might have to
put it back.

regards, tom lane

#5Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#4)
Re: Re: [COMMITTERS] pgsql: Allow pg_regress to be run outside the build tree.

Tom Lane wrote:

Peter Eisentraut <peter_e@gmx.net> writes:

vpath build should be fixed now. MSVC will need to update the
pg_regress call sites, but I'll leave that to those maintaining that
build system. In particular, the --dlpath option needs to be added.

contrib is still pretty broken. One part of it is needing a --srcdir
option in pgxs.mk, which I fixed. But some of the modules still
fail --- it looks like the problem is with the ones having data/
subdirectories. You seem to have taken out the copying of the data
files into the vpath build tree, but I think you might have to
put it back.

I think the right fix would be to convert those .sql files to
input/*.source files and have pg_regress substitute the absolute
directory names in them, like it is done for the backend.

#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#5)
Re: Re: [COMMITTERS] pgsql: Allow pg_regress to be run outside the build tree.

Peter Eisentraut <peter_e@gmx.net> writes:

Tom Lane wrote:

contrib is still pretty broken. One part of it is needing a --srcdir
option in pgxs.mk, which I fixed. But some of the modules still
fail --- it looks like the problem is with the ones having data/
subdirectories. You seem to have taken out the copying of the data
files into the vpath build tree, but I think you might have to
put it back.

I think the right fix would be to convert those .sql files to
input/*.source files and have pg_regress substitute the absolute
directory names in them, like it is done for the backend.

Ugh. I don't think it's acceptable to make contrib modules have to do
that. Even if we fix all the ones in core, what of other people relying
on the pgxs infrastructure?

regards, tom lane

#7Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#6)
Re: Re: [COMMITTERS] pgsql: Allow pg_regress to be run outside the build tree.

Tom Lane wrote:

I think the right fix would be to convert those .sql files to
input/*.source files and have pg_regress substitute the absolute
directory names in them, like it is done for the backend.

Ugh. I don't think it's acceptable to make contrib modules have to do
that. Even if we fix all the ones in core, what of other people relying
on the pgxs infrastructure?

Yeah, true. Maybe copy the data directory over, but let pg_regress do it?

#8Tom Lane
tgl@sss.pgh.pa.us
In reply to: Peter Eisentraut (#7)
Re: Re: [COMMITTERS] pgsql: Allow pg_regress to be run outside the build tree.

Peter Eisentraut <peter_e@gmx.net> writes:

Tom Lane wrote:

Ugh. I don't think it's acceptable to make contrib modules have to do
that. Even if we fix all the ones in core, what of other people relying
on the pgxs infrastructure?

Yeah, true. Maybe copy the data directory over, but let pg_regress do it?

That'd be okay with me. pg_regress already knows a lot about the
subdirectory structure it's working with, so one more thing doesn't
sound too bad.

regards, tom lane

#9Bjorn Munch
Bjorn.Munch@sun.com
In reply to: Peter Eisentraut (#7)
Re: Re: [COMMITTERS] pgsql: Allow pg_regress to be run outside the build tree.

On 02/10 17.29, Peter Eisentraut wrote:

Tom Lane wrote:

I think the right fix would be to convert those .sql files to
input/*.source files and have pg_regress substitute the absolute
directory names in them, like it is done for the backend.

Ugh. I don't think it's acceptable to make contrib modules have to do
that. Even if we fix all the ones in core, what of other people relying
on the pgxs infrastructure?

Yeah, true. Maybe copy the data directory over, but let pg_regress do it?

For the record: when I integrated the pg_regress test suite (8.3.3)
into OpenSolaris recently, I worked around various problems by making
a wrapper script pg_regress.sh which copies everything into a
temporary directory structure and then runs pg_regress from there.

This involved creating three levels of dummy directories due to some
hardcoded "../../../" in paths. A bit ugly, but then this package
isn't to be included in the standard distribution to end users, but
will be used by Solaris QA.

--
Bjorn Munch Sun Microsystems
Trondheim, Norway http://sun.com/postgresql/

#10Bruce Momjian
bruce@momjian.us
In reply to: Bjorn Munch (#9)
Re: Re: [COMMITTERS] pgsql: Allow pg_regress to be run outside the build tree.

Is this a TODO?

---------------------------------------------------------------------------

Bjorn Munch wrote:

On 02/10 17.29, Peter Eisentraut wrote:

Tom Lane wrote:

I think the right fix would be to convert those .sql files to
input/*.source files and have pg_regress substitute the absolute
directory names in them, like it is done for the backend.

Ugh. I don't think it's acceptable to make contrib modules have to do
that. Even if we fix all the ones in core, what of other people relying
on the pgxs infrastructure?

Yeah, true. Maybe copy the data directory over, but let pg_regress do it?

For the record: when I integrated the pg_regress test suite (8.3.3)
into OpenSolaris recently, I worked around various problems by making
a wrapper script pg_regress.sh which copies everything into a
temporary directory structure and then runs pg_regress from there.

This involved creating three levels of dummy directories due to some
hardcoded "../../../" in paths. A bit ugly, but then this package
isn't to be included in the standard distribution to end users, but
will be used by Solaris QA.

--
Bjorn Munch Sun Microsystems
Trondheim, Norway http://sun.com/postgresql/

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +