1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#!/bin/sh
set -e
SRCDIR=$(pwd)
# Make sure to have a writable copy of the source
WORKDIR=$(mktemp -d -t regresscheck.XXXXXX)
cleanup () {
mkdir -p $SRCDIR/tmp_check/log
cp -a $WORKDIR/tmp_check/log/* $SRCDIR/tmp_check/log
rm -rf $WORKDIR
}
trap cleanup 0 HUP INT QUIT ILL ABRT PIPE TERM
cp -r $SRCDIR/* $WORKDIR/
cd $WORKDIR
# If executed as root become nobody
if [ $(id -u) -eq 0 ]
then
chown postgres -R $WORKDIR/
SU='su postgres -p -c'
else
SU='bash -c'
fi
# Execute pg_prove for all the supported versions
for v in $(pg_buildext installed-versions); do
echo "### $v ###"
VERSION_PATH="/usr/lib/postgresql/$v/bin:$PATH"
if ! $SU "PATH=$VERSION_PATH make installcheck PROVE='prove -I.'"; then
set +e
for log in tmp_check/log/*; do
echo "*** $log (last 100 lines) ***"
tail -100 $log
done
exit 1
fi
done
|