#!/bin/sh

set -e

PGUSER=${AUTOPKGTEST_NORMAL_USER:-$USER}
PGTESTDB="pgtcl_test_$(date +%s)_$$"

pgadmin(){
    runuser -u postgres -- "$@"
}

cleanup() {
    local -
    set +e
    pgadmin dropdb --echo $PGTESTDB
    pgadmin dropuser --echo $PGUSER
    service postgresql stop
    patch -p1 -R < debian/tests/patches/pgtcl.test.patch
}
trap 'cleanup' EXIT

# Patch to use installed library
patch -p1 < debian/tests/patches/pgtcl.test.patch

service postgresql start
pgadmin createuser --echo $PGUSER
pgadmin createdb --echo --owner $PGUSER $PGTESTDB

runuser -u $PGUSER -- sh <<END
set -e
cat <<EOF > "\$HOME/.conninfo.tcl"
array set conninfo {
    host    /run/postgresql
    port    5432
    dbname  $PGTESTDB
    user    $PGUSER
}
EOF

cd ./tests

# Limit to subset of pgtcl tests that pass.
tclsh all.tcl -file 'pgtcl*.test' -verbose t -skip 'pgtcl-4.[56] pgtcl-6.[12346]'

echo 'Test import sampledata'
psql --quiet --echo-errors --dbname $PGTESTDB -c '\i create.sql'
for f in import_sampledata*.tcl; do
    echo ---- \$f start
    tclsh \$f
done
echo ====== SUCCESS =====
END
