Alvaro Herrera 3d53b9ef1a
Fix trap in a few shell scripts
The original `trap` lines in these scripts are incomplete: in case of
any signal, they delete the working directory but let the script run to
completion, which is useless because it will only proceed to complain
about the working directory being removed.  Add `exit` there, with the
original exit value (not rm's).

Since this is mostly just cosmetic, no backpatch.

Discussion: https://postgr.es/m/20220913181002.hzsosy7qkemb7ky7@alvherre.pgsql
2022-09-20 18:50:16 +02:00

58 lines
1.3 KiB
Bash
Executable File

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