So here is an improved version, after input from landry@.
Patch for port-modules(5) will be in a separate letter.

Okay?

--
WBR,
  Vadim Zhukov


Index: databases/postgresql/postgresql.port.mk
===================================================================
RCS file: databases/postgresql/postgresql.port.mk
diff -N databases/postgresql/postgresql.port.mk
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ databases/postgresql/postgresql.port.mk     10 Jan 2015 16:16:07 -0000
@@ -0,0 +1,43 @@
+# $OpenBSD$ 
+#
+# Helps testing PostgreSQL-based software, no B/L/R-DEPS here.
+
+MODPOSTGRESQL_TEST_CMD ?= \
+       ${MAKE_PROGRAM} ${ALL_TEST_FLAGS} -f ${MAKE_FILE} ${TEST_TARGET}
+
+MODPOSTGRESQL_TEST_PGHOST ?=   ${WRKDIR}
+_MODPOSTGRESQL_TEST_PGDATA =   ${WRKDIR}/testdb
+
+TEST_DEPENDS +=                databases/postgresql,-server
+TEST_ENV +=            PGDATA=${_MODPOSTGRESQL_TEST_PGDATA} \
+                       PGHOST=${MODPOSTGRESQL_TEST_PGHOST}
+.ifdef MODPOSTGRESQL_TEST_DBNAME
+TEST_ENV +=            PGDATABASE=${MODPOSTGRESQL_TEST_DBNAME}
+.endif
+
+MODPOSTGRESQL_TEST_TARGET = \
+       rm -Rf ${_MODPOSTGRESQL_TEST_PGDATA}; \
+       export ${ALL_TEST_ENV}; \
+       ${LOCALBASE}/bin/initdb -D ${_MODPOSTGRESQL_TEST_PGDATA} \
+           -A trust --locale=C; \
+       ${LOCALBASE}/bin/pg_ctl start -w -D ${_MODPOSTGRESQL_TEST_PGDATA} \
+           -l ${WRKDIR}/pg-test.log \
+           -o "-F -h '' -k ${MODPOSTGRESQL_TEST_PGHOST}";
+.ifdef MODPOSTGRESQL_TEST_DBNAME
+MODPOSTGRESQL_TEST_TARGET += \
+       ${LOCALBASE}/bin/createdb ${MODPOSTGRESQL_TEST_DBNAME} || \
+           (${LOCALBASE}/bin/pg_ctl stop -D ${_MODPOSTGRESQL_TEST_PGDATA} \
+            -m i && exit 1);
+.endif
+MODPOSTGRESQL_TEST_TARGET += \
+       set +e; \
+       cd ${WRKBUILD}; \
+       ${MODPOSTGRESQL_TEST_CMD}; \
+       Q=$$?; \
+       ${LOCALBASE}/bin/pg_ctl stop -D ${_MODPOSTGRESQL_TEST_PGDATA} -m i; \
+       exit $$Q
+
+.if !target(do-test)
+do-test:
+       ${MODPOSTGRESQL_TEST_TARGET}
+.endif
Index: databases/libpqxx/Makefile
===================================================================
RCS file: /cvs/ports/databases/libpqxx/Makefile,v
retrieving revision 1.18
diff -u -p -r1.18 Makefile
--- databases/libpqxx/Makefile  2 Oct 2014 10:16:34 -0000       1.18
+++ databases/libpqxx/Makefile  10 Jan 2015 16:16:07 -0000
@@ -18,7 +18,7 @@ MASTER_SITES= http://pqxx.org/download/s
 
 LIB_DEPENDS=   databases/postgresql
 
-MODULES=       lang/python
+MODULES=       databases/postgresql lang/python
 MODPY_RUNDEP=  No
 MODPY_ADJ_FILES=tools/splitconfig \
                tools/template2mak.py
@@ -29,27 +29,6 @@ SEPARATE_BUILD=      No
 CONFIGURE_STYLE=gnu
 CONFIGURE_ARGS=        ${CONFIGURE_SHARED}
 
-# Regression tests start up and use a real database
-TEST_DEPENDS =         databases/postgresql,-server
-PGDATA =               ${WRKDIR}/testdb
-PGDATABASE =           pqxx-test
-TEST_ENV =             PGDATABASE=${PGDATABASE} \
-                       PGHOST=${WRKDIR}
-
-# Make sure that server is always stopped after starting
-do-test:
-       rm -Rf ${PGDATA}
-       ${LOCALBASE}/bin/initdb -D ${PGDATA} -A trust --locale=C
-       ${LOCALBASE}/bin/pg_ctl start -w -D ${PGDATA} -l ${WRKDIR}/pg.log \
-               -o "-F -h '' -k ${WRKDIR}"
-       ${TEST_ENV} ${LOCALBASE}/bin/createdb ${PGDATABASE} || \
-           (${LOCALBASE}/bin/pg_ctl stop -D ${PGDATA} -m i; exit 1)
-       cd ${WRKBUILD}; \
-           set +e; \
-           ${SETENV} ${ALL_TEST_ENV} ${MAKE_PROGRAM} ${ALL_TEST_FLAGS} \
-               -f ${MAKE_FILE} ${TEST_TARGET}; \
-           Q=$$?; \
-           ${LOCALBASE}/bin/pg_ctl stop -D ${PGDATA} -m i; \
-           exit $$Q
+MODPOSTGRESQL_TEST_DBNAME =    pqxx-test
 
 .include <bsd.port.mk>
Index: geo/pgrouting/Makefile
===================================================================
RCS file: /cvs/ports/geo/pgrouting/Makefile,v
retrieving revision 1.2
diff -u -p -r1.2 Makefile
--- geo/pgrouting/Makefile      19 Dec 2014 21:16:55 -0000      1.2
+++ geo/pgrouting/Makefile      10 Jan 2015 16:16:07 -0000
@@ -20,20 +20,21 @@ MAINTAINER =        Landry Breuil <landry@openb
 # GPLv2
 PERMIT_PACKAGE_CDROM=  Yes
 
-MODULES =      devel/cmake
+MODULES =      databases/postgresql devel/cmake
 
 LIB_DEPENDS =  math/cgal
 RUN_DEPENDS =  geo/postgis
 BUILD_DEPENDS =        databases/postgresql,-server
 TEST_DEPENDS = ${BUILD_PKGPATH}
+TEST_ENV =     LD_PRELOAD=libpthread.so
 WANTLIB +=     CGAL boost_system-mt boost_thread-mt gmp m stdc++
 
-do-test:
-       regdir=$$(mktemp -t -d pgrouting-regress.XXXXXX) && \
-       LC_CTYPE=C initdb -D $${regdir} && \
-       LD_PRELOAD=libpthread.so pg_ctl -D $${regdir} -o '-p 12341' -l 
$${regdir}/log start && \
-       cd ${WRKSRC} && perl tools/test-runner.pl -pgport 12341 || \
-       pg_ctl -D $${regdir} -o '-p 12341'  stop -m fast
-       #not all tests pass - ensure we stop the server
+MODPOSTGRESQL_TEST_CMD = \
+       cd ${WRKSRC}; \
+       ./tools/test-runner.pl
+
+SUBST_VARS +=  MODPOSTGRESQL_TEST_PGHOST
+pre-configure:
+       ${SUBST_CMD} ${WRKSRC}/tools/test-runner.pl
 
 .include <bsd.port.mk>
Index: geo/pgrouting/patches/patch-tools_test-runner_pl
===================================================================
RCS file: /cvs/ports/geo/pgrouting/patches/patch-tools_test-runner_pl,v
retrieving revision 1.1
diff -u -p -r1.1 patch-tools_test-runner_pl
--- geo/pgrouting/patches/patch-tools_test-runner_pl    19 Dec 2014 21:16:55 
-0000      1.1
+++ geo/pgrouting/patches/patch-tools_test-runner_pl    10 Jan 2015 16:16:07 
-0000
@@ -1,13 +1,16 @@
 $OpenBSD: patch-tools_test-runner_pl,v 1.1 2014/12/19 21:16:55 landry Exp $
---- tools/test-runner.pl.orig  Fri Dec 19 21:33:45 2014
-+++ tools/test-runner.pl       Fri Dec 19 21:55:37 2014
-@@ -20,7 +20,8 @@ my $DRYRUN = 0;
+Allow tests to run.
+See also: https://github.com/pgRouting/pgrouting/pull/284
+--- tools/test-runner.pl.orig  Wed Sep 25 00:38:31 2013
++++ tools/test-runner.pl       Sat Jan 10 19:07:01 2015
+@@ -20,8 +20,9 @@ my $DRYRUN = 0;
  my $DEBUG = 0;
  
  my $DBNAME = "pgr_test__db__test";
 -my $DBUSER = 'postgres';
-+my $DBUSER = `whoami`;
-+chomp $DBUSER;
- my $DBHOST = 'localhost';
+-my $DBHOST = 'localhost';
++my $DBUSER = getlogin || getpwuid($<) || "postgres";
++my $DBHOST = '${MODPOSTGRESQL_TEST_PGHOST}';
  my $DBPORT = '5432';
  
+ sub Usage {

Reply via email to