#!/bin/sh

# src/tools/pgtest [-n] [...]

# This runs a build/initdb/regression test suite
#
# This will start a temporary postmaster, so you have to
# have enough kernel resources to run two postmasters or
# stop your main postmaster before running this script.
#
# Use -n to prevent 'make clean'

MAKE="make"

[ ! -d src ] && echo "This must be run from the top of the PostgreSQL source tree" 1>&2 && exit 1

trap "rm -rf /tmp/$$" 0 1 2 3 15
mkdir /tmp/$$
TMP="/tmp/$$"

if [ "X$1" != "X-n" ]
then	CLEAN="Y"
else	CLEAN=""
	shift
fi

rm -f tmp_install/log/install.log

# Run "make check" and store return code in $TMP/ret.
# Display output but also capture it in $TMP/0.
(
	if [ "$CLEAN" ]
	then	$MAKE "$@" clean 2>&1
		echo "$?" > $TMP/ret
	fi
	if [ $(cat $TMP/ret) -eq 0 ]
	then	$MAKE "$@" 2>&1 && $MAKE "$@" check 2>&1
		echo "$?" > $TMP/ret
	fi
) | tee  $TMP/0

# Grab possible warnings from install.log
[ -e tmp_install/log/install.log ] && cat tmp_install/log/install.log >> $TMP/0

# If success, display warnings
if [ $(cat $TMP/ret) -eq 0 ]
then	cat $TMP/0 |
	# The following grep's have to be adjusted for your setup because
	# certain warnings are acceptable.
	grep -i warning |
	grep -v setproctitle |
	grep -v find_rule |
	grep -v yy_flex_realloc
fi

# return original make error code
exit `cat $TMP/ret`
