pg_regress: referencing shared objects from tests
Hi,
we would like to be able to use and ship pg_regress and the PostgreSQL
test suite independently of the PostgreSQL build environment, for
testing and maybe even as a separate package to be build and shipped
with the OS for others to test their setup. Does this sound like a sane
and OK thing to do?
I have a problem with one of the tests (create_function_1.source):
---------8<----------------8<----------------8<----------------8<-------
20 CREATE FUNCTION int44out(city_budget)
21 RETURNS cstring
22 AS '@abs_builddir@/regress@DLSUFFIX@'
23 LANGUAGE C STRICT;
24
25 CREATE FUNCTION check_primary_key ()
26 RETURNS trigger
27 AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@'
28 LANGUAGE C;
...
35 CREATE FUNCTION autoinc ()
36 RETURNS trigger
37 AS '@abs_builddir@/../../../contrib/spi/autoinc@DLSUFFIX@'
38 LANGUAGE C;
---------8<----------------8<----------------8<----------------8<-------
(The ../../../contrib/spi-path does not exist outside of the build
environment, so to be able to run the test you need to have source code,
compilers, ...)
I could work around this problem by copying the needed shared objects to
@abs_builddir@ as part of make or make check, I could add a
��look-for-shared-objects-here� parameter to pg_regress, and you
probably have other suggestions.
Is this something we want to fix, and what would be the right way to do
it? (I have no problem providing a patch.)
-J�rgen
--
J�rgen Austvik, Software Engineering - QA
Sun Microsystems Database Group
http://blogs.sun.com/austvik, http://www.autvik.net/
Sun Microsystems AS
Haakon VII gt. 7b
N-7485 Trondheim, Norway
Jorgen Austvik - Sun Norway <Jorgen.Austvik@Sun.COM> writes:
we would like to be able to use and ship pg_regress and the PostgreSQL
test suite independently of the PostgreSQL build environment, for
testing and maybe even as a separate package to be build and shipped
with the OS for others to test their setup. Does this sound like a sane
and OK thing to do?
The RPM packages have done this since approximately forever. You might
want to look at the patches used there.
regards, tom lane
Tom Lane wrote:
Jorgen Austvik - Sun Norway <Jorgen.Austvik@Sun.COM> writes:
we would like to be able to use and ship pg_regress and the PostgreSQL
test suite independently of the PostgreSQL build environment, for
testing and maybe even as a separate package to be build and shipped
with the OS for others to test their setup. Does this sound like a sane
and OK thing to do?The RPM packages have done this since approximately forever. You might
want to look at the patches used there.
Hi,
yes [1]http://cvs.fedoraproject.org/viewcvs/rpms/postgresql/F-9/postgresql-test.patch?rev=1.3&view=auto is the same that we have been using internally.
Let me reformulate my question: would it be better to include something
like the attached patch in PostgreSQL, than have every distributor of
the tests apply it?
[1]: http://cvs.fedoraproject.org/viewcvs/rpms/postgresql/F-9/postgresql-test.patch?rev=1.3&view=auto
http://cvs.fedoraproject.org/viewcvs/rpms/postgresql/F-9/postgresql-test.patch?rev=1.3&view=auto
-J
--
J�rgen Austvik, Software Engineering - QA
Sun Microsystems Database Technology Group
Attachments:
pg_regress_contribdir.patchtext/x-patch; name=pg_regress_contribdir.patchDownload
Index: src/test/regress/GNUmakefile
===================================================================
RCS file: /projects/cvsroot/pgsql/src/test/regress/GNUmakefile,v
retrieving revision 1.73
diff -c -r1.73 GNUmakefile
*** src/test/regress/GNUmakefile 7 Apr 2008 14:15:58 -0000 1.73
--- src/test/regress/GNUmakefile 29 May 2008 12:17:18 -0000
***************
*** 122,127 ****
--- 122,129 ----
.PHONY: all-spi
all-spi:
$(MAKE) -C $(contribdir)/spi refint$(DLSUFFIX) autoinc$(DLSUFFIX)
+ cp $(contribdir)/spi/refint$(DLSUFFIX) .
+ cp $(contribdir)/spi/autoinc$(DLSUFFIX) .
# Tablespace setup
.PHONY: tablespace-setup
Index: src/test/regress/input/create_function_1.source
===================================================================
RCS file: /projects/cvsroot/pgsql/src/test/regress/input/create_function_1.source,v
retrieving revision 1.17
diff -c -r1.17 create_function_1.source
*** src/test/regress/input/create_function_1.source 27 Feb 2006 16:09:50 -0000 1.17
--- src/test/regress/input/create_function_1.source 29 May 2008 12:17:18 -0000
***************
*** 24,40 ****
CREATE FUNCTION check_primary_key ()
RETURNS trigger
! AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@'
LANGUAGE C;
CREATE FUNCTION check_foreign_key ()
RETURNS trigger
! AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@'
LANGUAGE C;
CREATE FUNCTION autoinc ()
RETURNS trigger
! AS '@abs_builddir@/../../../contrib/spi/autoinc@DLSUFFIX@'
LANGUAGE C;
CREATE FUNCTION funny_dup17 ()
--- 24,40 ----
CREATE FUNCTION check_primary_key ()
RETURNS trigger
! AS '@abs_builddir@/refint@DLSUFFIX@'
LANGUAGE C;
CREATE FUNCTION check_foreign_key ()
RETURNS trigger
! AS '@abs_builddir@/refint@DLSUFFIX@'
LANGUAGE C;
CREATE FUNCTION autoinc ()
RETURNS trigger
! AS '@abs_builddir@/autoinc@DLSUFFIX@'
LANGUAGE C;
CREATE FUNCTION funny_dup17 ()
Index: src/test/regress/output/create_function_1.source
===================================================================
RCS file: /projects/cvsroot/pgsql/src/test/regress/output/create_function_1.source,v
retrieving revision 1.30
diff -c -r1.30 create_function_1.source
*** src/test/regress/output/create_function_1.source 18 Jun 2007 21:40:58 -0000 1.30
--- src/test/regress/output/create_function_1.source 29 May 2008 12:17:18 -0000
***************
*** 25,39 ****
NOTICE: argument type city_budget is only a shell
CREATE FUNCTION check_primary_key ()
RETURNS trigger
! AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@'
LANGUAGE C;
CREATE FUNCTION check_foreign_key ()
RETURNS trigger
! AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@'
LANGUAGE C;
CREATE FUNCTION autoinc ()
RETURNS trigger
! AS '@abs_builddir@/../../../contrib/spi/autoinc@DLSUFFIX@'
LANGUAGE C;
CREATE FUNCTION funny_dup17 ()
RETURNS trigger
--- 25,39 ----
NOTICE: argument type city_budget is only a shell
CREATE FUNCTION check_primary_key ()
RETURNS trigger
! AS '@abs_builddir@/refint@DLSUFFIX@'
LANGUAGE C;
CREATE FUNCTION check_foreign_key ()
RETURNS trigger
! AS '@abs_builddir@/refint@DLSUFFIX@'
LANGUAGE C;
CREATE FUNCTION autoinc ()
RETURNS trigger
! AS '@abs_builddir@/autoinc@DLSUFFIX@'
LANGUAGE C;
CREATE FUNCTION funny_dup17 ()
RETURNS trigger
Jorgen Austvik - Sun Norway <Jorgen.Austvik@Sun.COM> writes:
Tom Lane wrote:
The RPM packages have done this since approximately forever. You might
want to look at the patches used there.
yes [1] is the same that we have been using internally.
Let me reformulate my question: would it be better to include something
like the attached patch in PostgreSQL, than have every distributor of
the tests apply it?
[1]
http://cvs.fedoraproject.org/viewcvs/rpms/postgresql/F-9/postgresql-test.patch?rev=1.3&view=auto
I never particularly thought it would be useful to push that patch
upstream, but certainly it would make life a tad simpler for Devrim and
me. Since nobody else has objected, I'll look into doing this in HEAD.
regards, tom lane