summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/travis_prepare.sh60
-rwxr-xr-xscripts/travis_test.sh30
2 files changed, 90 insertions, 0 deletions
diff --git a/scripts/travis_prepare.sh b/scripts/travis_prepare.sh
new file mode 100755
index 0000000..2b1e12e
--- /dev/null
+++ b/scripts/travis_prepare.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+set -e
+
+# Prepare the test databases in Travis CI.
+# The script should be run with sudo.
+# The script is not idempotent: it assumes the machine in a clean state
+# and is designed for a sudo-enabled Trusty environment.
+
+set_param () {
+ # Set a parameter in a postgresql.conf file
+ version=$1
+ param=$2
+ value=$3
+
+ sed -i "s/^\s*#\?\s*$param.*/$param = $value/" \
+ "/etc/postgresql/$version/psycopg/postgresql.conf"
+}
+
+create () {
+ version=$1
+ port=$2
+ dbname=psycopg2_test
+
+ pg_createcluster -p $port --start-conf manual $version psycopg
+
+ # for two-phase commit testing
+ set_param "$version" max_prepared_transactions 10
+
+ # for replication testing
+ set_param "$version" max_wal_senders 5
+ set_param "$version" max_replication_slots 5
+ if [ "$version" == "9.2" -o "$version" == "9.3" ]
+ then
+ set_param "$version" wal_level hot_standby
+ else
+ set_param "$version" wal_level logical
+ fi
+
+ echo "local replication travis trust" \
+ >> "/etc/postgresql/$version/psycopg/pg_hba.conf"
+
+
+ pg_ctlcluster "$version" psycopg start
+
+ sudo -u postgres psql -c "create user travis replication" "port=$port"
+ sudo -u postgres psql -c "create database $dbname" "port=$port"
+ sudo -u postgres psql -c "grant create on database $dbname to travis" "port=$port"
+ sudo -u postgres psql -c "create extension hstore" "port=$port dbname=$dbname"
+}
+
+
+# Would give a permission denied error in the travis build dir
+cd /
+
+create 9.6 54396
+create 9.5 54395
+create 9.4 54394
+create 9.3 54393
+create 9.2 54392
diff --git a/scripts/travis_test.sh b/scripts/travis_test.sh
new file mode 100755
index 0000000..0c60b93
--- /dev/null
+++ b/scripts/travis_test.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+# Run the tests in all the databases
+# The script is designed for a Trusty environment.
+
+set -e
+
+run_test () {
+ version=$1
+ port=$2
+ dbname=psycopg2_test
+
+ printf "\n\nRunning tests against PostgreSQL $version\n\n"
+ export PSYCOPG2_TESTDB=$dbname
+ export PSYCOPG2_TESTDB_PORT=$port
+ export PSYCOPG2_TESTDB_USER=travis
+ export PSYCOPG2_TEST_REPL_DSN=
+ unset PSYCOPG2_TEST_GREEN
+ python -c "from psycopg2 import tests; tests.unittest.main(defaultTest='tests.test_suite')"
+
+ printf "\n\nRunning tests against PostgreSQL $version (green mode)\n\n"
+ export PSYCOPG2_TEST_GREEN=1
+ python -c "from psycopg2 import tests; tests.unittest.main(defaultTest='tests.test_suite')"
+}
+
+run_test 9.6 54396
+run_test 9.5 54395
+run_test 9.4 54394
+run_test 9.3 54393
+run_test 9.2 54392