#!/bin/sh

DBNAME=pltest

echo -n "*** Destroy $DBNAME."
dropdb $DBNAME > test.log 2>&1
# drop failure is ok...
echo " Done. ***"

echo -n "*** Create $DBNAME."
if createdb $DBNAME >> test.log 2>&1 ; then
  echo " Done. ***"
else
  echo " Failed!  See test.log. ***"
  exit 1
fi

echo -n "*** Create plpython."
if createlang plpythonu $DBNAME >> test.log 2>&1 ; then
  echo " Done. ***"
else
  echo " Failed!  See test.log. ***"
  exit 1
fi

echo -n "*** Create tables"
psql -q $DBNAME < plpython_schema.sql >> test.log 2>&1
echo -n ", data"
psql -q $DBNAME < plpython_populate.sql >> test.log 2>&1
echo -n ", and functions and triggers."
psql -q $DBNAME < plpython_function.sql >> test.log 2>&1
echo " Done. ***"

echo -n "*** Running feature tests."
psql -q -e $DBNAME < plpython_test.sql > feature.output 2>&1
echo " Done. ***"

echo -n "*** Running error handling tests."
psql -q -e $DBNAME < plpython_error.sql > error.output 2>&1
echo " Done. ***"

echo -n "*** Checking the results of the feature tests."
if diff -c feature.expected feature.output > feature.diff 2>&1 ; then
  echo -n " passed!"
else
  echo -n " failed!  Please examine feature.diff."
fi
echo " Done. ***"

echo -n "*** Checking the results of the error handling tests."
if diff -c error.expected error.output > error.diff 2>&1 ; then
  echo -n " passed!"
else
  echo -n " failed!  Please examine error.diff."
fi
echo " Done. ***"
