Improve the check-with-tmp-database target

To better manage the environment, and stop the database upon completion of the
tests.
This commit is contained in:
Christopher Baines 2019-10-11 08:32:48 +01:00
parent c40747a5ee
commit eb1709c8e4

View file

@ -50,12 +50,16 @@ install-data-hook:
rm -r "$(DESTDIR)$(moddir)/tests" rm -r "$(DESTDIR)$(moddir)/tests"
check-with-tmp-database: check-with-tmp-database:
$(eval URI := $(shell pg_tmp)) $(eval TMP_DATABASE := $(shell mktemp -d -t guix-data-service-database-XXXX))
$(eval URI := $(shell pg_tmp -d "$(TMP_DATABASE)"))
$(eval GUIX_DATA_SERVICE_DATABASE_URI := $(patsubst postgresql:///test%,postgresql://guix_data_service@localhost/guix_data_service_test%,$(URI))) $(eval GUIX_DATA_SERVICE_DATABASE_URI := $(patsubst postgresql:///test%,postgresql://guix_data_service@localhost/guix_data_service_test%,$(URI)))
psql "$(URI)" --command="CREATE USER guix_data_service" psql --no-psqlrc "$(URI)" --command="CREATE USER guix_data_service"
psql "$(URI)" --command="CREATE DATABASE guix_data_service_test WITH OWNER guix_data_service" psql --no-psqlrc "$(URI)" --command="CREATE DATABASE guix_data_service_test WITH OWNER guix_data_service"
sqitch deploy --target="$(GUIX_DATA_SERVICE_DATABASE_URI)" sqitch deploy --target="$(GUIX_DATA_SERVICE_DATABASE_URI)"
GUIX_DATA_SERVICE_DATABASE_URI="$(GUIX_DATA_SERVICE_DATABASE_URI)" make check # Set TZ and SQITCH_USER_CONFIG to avoid Sqitch tripping up in a minimal
# environment, like a Guix package
TZ=UTC SQITCH_USER_CONFIG=/dev/null GUIX_DATA_SERVICE_DATABASE_URI="$(GUIX_DATA_SERVICE_DATABASE_URI)" make check
pg_tmp stop -w 1 -d "$(TMP_DATABASE)"
SOURCES = \ SOURCES = \
guix-data-service/branch-updated-emails.scm \ guix-data-service/branch-updated-emails.scm \