summary refs log tree commit diff
path: root/docker/run_pg_tests.sh
diff options
context:
space:
mode:
authorAmber Brown <hawkowl@atleastfornow.net>2018-09-20 18:12:45 +1000
committerGitHub <noreply@github.com>2018-09-20 18:12:45 +1000
commit741571cf22b342f2cfaf5c47f324397af7072bb3 (patch)
tree533b49f29941694a0849cd3382dceb4429171907 /docker/run_pg_tests.sh
parentAdd a regression test for logging on failed connections (#3912) (diff)
downloadsynapse-741571cf22b342f2cfaf5c47f324397af7072bb3.tar.xz
Add a way to run tests in PostgreSQL in Docker (#3699)
Diffstat (limited to 'docker/run_pg_tests.sh')
-rwxr-xr-xdocker/run_pg_tests.sh20
1 files changed, 20 insertions, 0 deletions
diff --git a/docker/run_pg_tests.sh b/docker/run_pg_tests.sh
new file mode 100755
index 0000000000..e77424c41a
--- /dev/null
+++ b/docker/run_pg_tests.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# This script runs the PostgreSQL tests inside a Docker container. It expects
+# the relevant source files to be mounted into /src (done automatically by the
+# caller script). It will set up the database, run it, and then use the tox
+# configuration to run the tests.
+
+set -e
+
+# Set PGUSER so Synapse's tests know what user to connect to the database with
+export PGUSER=postgres
+
+# Initialise & start the database
+su -c '/usr/lib/postgresql/9.6/bin/initdb -D /var/lib/postgresql/data -E "UTF-8" --lc-collate="en_US.UTF-8" --lc-ctype="en_US.UTF-8" --username=postgres' postgres
+su -c '/usr/lib/postgresql/9.6/bin/pg_ctl -w -D /var/lib/postgresql/data start' postgres
+
+# Run the tests
+cd /src
+export TRIAL_FLAGS="-j 4"
+tox --workdir=/tmp -e py27-postgres