blob: 77dda889dfcd07162d1ef28c887f145e229ce133 (
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
#!/bin/bash -ex
# Test for empty APLOGNO() macro use; if the script changes
# any files, the git diff will be non-empty and fail.
if test -v TEST_LOGNO; then
find server modules os -name \*.c | xargs perl \
docs/log-message-tags/update-log-msg-tags
git diff --exit-code .
: PASSED
exit 0
fi
### Installed apr/apr-util don't include the *.m4 files but the
### Debian packages helpfully install them, so use the system APR to buildconf
./buildconf --with-apr=/usr/bin/apr-1-config ${BUILDCONFIG}
PREFIX=${PREFIX:-$HOME/build/httpd-root}
# For trunk, "make check" is sufficient to run the test suite.
# For 2.4.x, the test suite must be run manually
if test ! -v SKIP_TESTING; then
CONFIG="$CONFIG --enable-load-all-modules"
if grep -q ^check: Makefile.in; then
CONFIG="--with-test-suite=test/perl-framework $CONFIG"
WITH_TEST_SUITE=1
fi
fi
if test -v APR_VERSION; then
CONFIG="$CONFIG --with-apr=$HOME/root/apr-${APR_VERSION}"
else
CONFIG="$CONFIG --with-apr=/usr"
fi
if test -v APU_VERSION; then
CONFIG="$CONFIG --with-apr-util=$HOME/root/apr-util-${APU_VERSION}"
else
CONFIG="$CONFIG --with-apr-util=/usr"
fi
./configure --prefix=$PREFIX $CONFIG
make $MFLAGS
if test -v TEST_INSTALL; then
make install
pushd $PREFIX
test `./bin/apxs -q PREFIX` = $PREFIX
test `$PWD/bin/apxs -q PREFIX` = $PREFIX
./bin/apxs -g -n foobar
cd foobar; make
popd
fi
if ! test -v SKIP_TESTING; then
set +e
if test -v TEST_MALLOC; then
# Enable enhanced glibc malloc debugging, see mallopt(3)
export MALLOC_PERTURB_=65 MALLOC_CHECK_=3
export LIBC_FATAL_STDERR_=1
fi
if test -v TEST_UBSAN; then
export UBSAN_OPTIONS="log_path=$PWD/ubsan.log"
fi
if test -v WITH_TEST_SUITE; then
make check TESTS="${TESTS}" TEST_CONFIG="${TEST_ARGS}"
RV=$?
else
test -v TEST_INSTALL || make install
pushd test/perl-framework
perl Makefile.PL -apxs $PREFIX/bin/apxs
make test APACHE_TEST_EXTRA_ARGS="${TEST_ARGS} ${TESTS}"
RV=$?
popd
fi
if test -v TEST_SSL -a $RV -eq 0; then
pushd test/perl-framework
for cache in shmcb redis:localhost:6379 memcache:localhost:11211; do
SSL_SESSCACHE=$cache ./t/TEST -sslproto TLSv1.2 -defines TEST_SSL_SESSCACHE t/ssl
RV=$?
test $RV -eq 0 || break
done
popd
fi
if test -v LITMUS -a $RV -eq 0; then
pushd test/perl-framework
mkdir -p t/htdocs/modules/dav
./t/TEST -start
# litmus uses $TESTS, so unset it.
unset TESTS
litmus http://localhost:8529/modules/dav/
RV=$?
./t/TEST -stop
popd
fi
if grep -q 'Segmentation fault' test/perl-framework/t/logs/error_log; then
grep --color=always -C5 'Segmentation fault' test/perl-framework/t/logs/error_log
RV=2
fi
if test -v TEST_UBSAN && ls ubsan.log.* &> /dev/null; then
cat ubsan.log.*
RV=3
fi
# With LIBC_FATAL_STDERR_/MALLOC_CHECK_ glibc will abort when
# malloc errors are detected. This should get caught by the
# segfault grep above, but in case it is not, catch it here too:
if grep 'glibc detected' test/perl-framework/t/logs/error_log; then
grep --color=always -C20 'glibc detected' test/perl-framework/t/logs/error_log
RV=4
fi
exit $RV
fi
|