summaryrefslogtreecommitdiffstats
path: root/debian/tests/installcheck
blob: 08e505582a15fab7c2f2b9aec52bda4edabf3102 (plain)
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
40
41
42
#!/bin/sh

set -eux

SOURCE=$(dpkg-parsechangelog -SSource)
MAJOR=${SOURCE#*-}
top_srcdir=$PWD

cd src/test/regress

# compile regress.so
make -f $top_srcdir/debian/tests/Makefile.regress PG_CONFIG=/usr/lib/postgresql/$MAJOR/bin/pg_config with_llvm=no

# tell regression files that regress.so is not installed
sed -i -e "s:@libdir@/regress:$PWD/regress:" input/*.source output/*.source

# when root, execute testsuite as user postgres since it insists on wiping the tablespace directory
if [ $(id -u) = 0 ]; then
  SU="su postgres"
else
  SU="sh"
fi

$SU <<EOF
set -eux

# create tablespace and results directories
OUTPUT=\$(mktemp -d /tmp/regress.XXXXXX)
trap "rm -rf \$OUTPUT" EXIT

# run the regression tests
if ! pg_virtualenv -v $MAJOR \
  /usr/lib/postgresql/$MAJOR/lib/pgxs/src/test/regress/pg_regress \
    --schedule=parallel_schedule \
    --make-testtablespace-dir \
    --outputdir=\$OUTPUT \
    --temp-config=/usr/share/postgresql-common/server/test-with-jit.conf
  then
    head -100 \$OUTPUT/regression.diffs
    exit 1
fi
EOF