| #!/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 "ret=$?; rm -rf /tmp/$$; exit $ret" 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` |