* feat(sql): Fork pgtap to support arm64 This forks pgtap-docker and builds the image locally, and updates our references to use our forked image. * fixup! feat(sql): Fork pgtap to support arm64
53 lines
1.1 KiB
Bash
53 lines
1.1 KiB
Bash
#!/bin/sh
|
|
|
|
function usage() { echo "Usage: $0 -h host -d database -p port -u username -w password -t 'tests/*.sql'" 1>&2; exit 1; }
|
|
|
|
while getopts d:h:p:u:w:b:n:t: OPTION
|
|
do
|
|
case $OPTION in
|
|
d)
|
|
DATABASE=$OPTARG
|
|
;;
|
|
h)
|
|
HOST=$OPTARG
|
|
;;
|
|
p)
|
|
PORT=$OPTARG
|
|
;;
|
|
u)
|
|
USER=$OPTARG
|
|
;;
|
|
w)
|
|
PASSWORD=$OPTARG
|
|
;;
|
|
t)
|
|
TESTS=$OPTARG
|
|
;;
|
|
H)
|
|
usage
|
|
;;
|
|
esac
|
|
done
|
|
|
|
echo "Waiting for database..."
|
|
timeout 240s sh -c "until pg_isready -h $HOST -p $PORT; do sleep 1; done"
|
|
echo
|
|
|
|
echo "Running tests: $TESTS"
|
|
# install pgtap
|
|
PGPASSWORD=$PASSWORD psql -q -h $HOST -p $PORT -d $DATABASE -U $USER -f /pgtap/sql/pgtap.sql
|
|
|
|
rc=$?
|
|
# exit if pgtap failed to install
|
|
if [[ $rc != 0 ]] ; then
|
|
echo "pgTap was not installed properly. Unable to run tests!"
|
|
exit $rc
|
|
fi
|
|
# run the tests
|
|
PGPASSWORD=$PASSWORD pg_prove -h $HOST -p $PORT -d $DATABASE -U $USER $TESTS
|
|
rc=$?
|
|
# uninstall pgtap
|
|
PGPASSWORD=$PASSWORD psql -q -h $HOST -p $PORT -d $DATABASE -U $USER -f /pgtap/sql/uninstall_pgtap.sql > /dev/null 2>&1
|
|
# exit with return code of the tests
|
|
exit $rc
|