#!/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`