openbsd-ports/databases/postgresql/postgresql.port.mk
zhuk 5d1ad0f6ea Create postgres (super)user by default after creating test DB cluster.
This was in my tree for ages, triggered again by thread on ports@.
Since this port module is used only for tests, bulk builds won't be affected.

@afresh1 agress this is a nice thing to have by default.
2019-12-16 19:14:09 +00:00

48 lines
1.5 KiB
Makefile

# $OpenBSD: postgresql.port.mk,v 1.7 2019/12/16 19:14:09 zhuk Exp $
#
# 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-pg
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 -E UTF8 --nosync; \
${LOCALBASE}/bin/pg_ctl start -w -D ${_MODPOSTGRESQL_TEST_PGDATA} \
-l ${WRKDIR}/pg-test.log \
-o "-F -h '' -k ${MODPOSTGRESQL_TEST_PGHOST}"; \
${LOCALBASE}/bin/createuser -s postgres || \
(${LOCALBASE}/bin/pg_ctl stop -D ${_MODPOSTGRESQL_TEST_PGDATA} \
-m i && exit 1); \
export PGUSER=postgres;
.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