pg_regress: referencing shared objects from tests

Started by Jorgen Austvik - Sun Norwayover 17 years ago4 messages
#1Jorgen Austvik - Sun Norway
Jorgen.Austvik@Sun.COM

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jorgen Austvik - Sun Norway (#1)
Re: pg_regress: referencing shared objects from tests

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

#3Jorgen Austvik - Sun Norway
Jorgen.Austvik@Sun.COM
In reply to: Tom Lane (#2)
1 attachment(s)
Re: pg_regress: referencing shared objects from tests

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&amp;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&amp;view=auto
http://cvs.fedoraproject.org/viewcvs/rpms/postgresql/F-9/postgresql-test.patch?rev=1.3&amp;view=auto

-J
--

J�rgen Austvik, Software Engineering - QA
Sun Microsystems Database Technology Group

http://blogs.sun.com/austvik
http://www.austvik.net/

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
#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jorgen Austvik - Sun Norway (#3)
Re: pg_regress: referencing shared objects from tests

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&amp;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