check: allow config tests to pass if necessary
When MPM DSOs are enabled, Apache::Test's invocation of `httpd -V` runs
a full configuration test. To pass, ensure that *all* instances of the
configured prefix path in the test configuration are pointing to a real
directory in check/.
@@ -28,7 +28,7 @@ DISTCLEAN_TARGETS = include/ap_config_auto.h include/ap_config_layout.h \
build/pkg/pkginfo build/config_vars.sh bsd_converted
EXTRACLEAN_TARGETS = configure include/ap_config_auto.h.in generated_lists \
httpd.spec
-PHONY_TARGETS := check check-conf check-include
+PHONY_TARGETS := check check-conf check-dirs check-include
include $(top_builddir)/build/rules.mk
include $(top_srcdir)/build/program.mk
@@ -328,16 +328,18 @@ check-conf:
( \
n_lm=`awk 'BEGIN {n=0} /@@LoadModule@@/ {n+=1} END {print n}' < $$i`; \
if test $$n_lm -eq 0 -o "x$(MPM_MODULE)$(DSO_MODULES)" = "x"; then \
- sed -e 's#@@ServerRoot@@#$(prefix)#g' \
+ sed -e 's#@@ServerRoot@@#$(top_builddir)/check#g' \
-e 's#@@Port@@#$(PORT)#g' \
-e 's#@@SSLPort@@#$(SSLPORT)#g' \
+ -e 's#$(prefix)#$(top_builddir)/check#g' \
-e '/@@LoadModule@@/d' \
< $$i; \
else \
sed -n -e '/@@LoadModule@@/q' \
- -e 's#@@ServerRoot@@#$(prefix)#g' \
+ -e 's#@@ServerRoot@@#$(top_builddir)/check#g' \
-e 's#@@Port@@#$(PORT)#g' \
-e 's#@@SSLPort@@#$(SSLPORT)#g' \
+ -e 's#$(prefix)#$(top_builddir)/check#g' \
-e 'p' \
< $$i; \
if echo " $(DSO_MODULES) "|$(EGREP) " cgi " > /dev/null ; then \
@@ -379,9 +381,10 @@ check-conf:
done; \
sed -e '1,/@@LoadModule@@/d' \
-e '/@@LoadModule@@/d' \
- -e 's#@@ServerRoot@@#$(prefix)#g' \
+ -e 's#@@ServerRoot@@#$(top_builddir)/check#g' \
-e 's#@@Port@@#$(PORT)#g' \
-e 's#@@SSLPort@@#$(SSLPORT)#g' \
+ -e 's#$(prefix)#$(top_builddir)/check#g' \
< $$i; \
fi \
) > $(top_builddir)/check/conf/$$i; \
@@ -393,6 +396,13 @@ check-conf:
done ; \
done ;
+# Sometimes (e.g. when MPM DSOs are enabled) the test suite runs a full
+# configuration check on our in-tree build. To pass, we have to have all of the
+# correct directories, even though they won't be used.
+check-dirs:
+ @mkdir -p check/htdocs
+ @mkdir -p check/logs
+
# A version of apxs with the PREFIX overridden to point inside the build tree.
check/apxs:
mkdir -p check
@@ -408,7 +418,7 @@ check/build/config_vars.mk: build/config_vars.out
echo "sbindir = $(top_builddir)" >> $@
# Run the Apache::Test suite if it has been configured with --with-test-suite.
-check: check-include check-conf check/build/config_vars.mk check/apxs
+check: check-include check-dirs check-conf check/build/config_vars.mk check/apxs
@if test "x$(TEST_SUITE_LOCATION)" = "xno"; then \
echo 'Re-run configure with the --with-test-suite option to enable in-tree tests.'; \
false; \
