Mercurial > gemma
view schema/run_tests.sh @ 5654:358130887c72
Added tag v5.7.1 for changeset 9b3779f649c2
author | Sascha Wilde <wilde@sha-bang.de> |
---|---|
date | Tue, 08 Aug 2023 15:07:00 +0200 |
parents | 722b7c305319 |
children |
line wrap: on
line source
#!/bin/sh -e # This is Free Software under GNU Affero General Public License v >= 3.0 # without warranty, see README.md and license for details. # # SPDX-License-Identifier: AGPL-3.0-or-later # License-Filename: LICENSES/AGPL-3.0.txt # # Copyright (C) 2018, 2019 by via donau # – Österreichische Wasserstraßen-Gesellschaft mbH # Software engineering by Intevation GmbH # # Author(s): # * Tom Gottfried <tom@intevation.de> ME=`basename "$0"` BASEDIR=`dirname "$0"` usage() { cat <<EOF $ME [OPTION]... Options: -d, --db=NAME create (and drop if exists) the database NAME. Default: "gemma_test" -p, --port=PORT connect do the postgresql cluster at PORT. Default is the postgresql standard port 5432 --help display this help and exit EOF } # Defaults: db=gemma_test port=5432 # Parse options: OPTS=`getopt \ -l help,db:,port: \ -o d:p: -n "$ME" -- "$@"` [ $? -eq 0 ] || { usage ; exit 1 ; } eval set -- "$OPTS" while true ; do case "$1" in --db|-d) db="$2" shift 2 ;; --port|-p) port="$2" shift 2 ;; --help) { usage ; exit 0 ; } ;; --) shift break ;; esac done dropdb --if-exists -p "$port" "$db" ./install-db.sh -d "$db" -p "$port" psql -qv ON_ERROR_STOP= -c 'CREATE EXTENSION pgtap' -d "$db" -p "$port" # Collect test roles to be dropped # Concatenate with dummy role to prevent syntax error if there is no test role TEST_ROLES=$(psql -d "$db" -p "$port" -qtc \ "SELECT concat_ws(',', 'test', string_agg(rolname, ',')) FROM pg_roles WHERE rolname LIKE 'test%'") # Drop test roles, add test data and run tests psql -qXv ON_ERROR_STOP= -v -d "$db" -p "$port" \ -c 'SET client_min_messages TO WARNING' \ -c "DROP ROLE IF EXISTS $TEST_ROLES" \ -f "$BASEDIR"/tap_tests_data.sql \ -c "SELECT plan(89 + ( SELECT count(*)::int FROM information_schema.tables WHERE table_schema = 'waterway'))" \ -f "$BASEDIR"/gemma_tests.sql \ -f "$BASEDIR"/isrs_tests.sql \ -f "$BASEDIR"/auth_tests.sql \ -f "$BASEDIR"/manage_users_tests.sql \ -f "$BASEDIR"/import_tests.sql \ -c 'SELECT * FROM finish()'