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 {