From a8b583e78ba2bda07953ba94ddd7d4128dba8a20 Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Sat, 24 Feb 2018 12:35:17 -0800 Subject: [PATCH] test interfaces directly in runall.sh and parallel.mk --- bin/tests/system/Makefile.in | 20 +++++++++++--------- bin/tests/system/runall.sh | 18 ++++++++++++++---- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/bin/tests/system/Makefile.in b/bin/tests/system/Makefile.in index 5637a4bc7d..4589f2603a 100644 --- a/bin/tests/system/Makefile.in +++ b/bin/tests/system/Makefile.in @@ -84,14 +84,23 @@ PARALLEL = allow_query rpzrecurse serve-stale \ .PHONY: parallel.mk parallel.mk: - PARALLEL_SANITIZED=`echo $(PARALLEL) | sed "s|\([^ ][^ ]*\)|test-\1|g;" | tr _ -` ; \ + @PARALLEL_SANITIZED=`echo $(PARALLEL) | sed "s|\([^ ][^ ]*\)|test-\1|g;" | tr _ -` ; \ echo ".PHONY: $$PARALLEL_SANITIZED" > $@ ; \ echo "" >> $@ ; \ + echo "check_interfaces:" >> $@ ; \ + echo " @${PERL} testsock.pl > /dev/null 2>&1 || { \\" >> $@ ; \ + echo " echo \"I:NOTE: System tests were skipped because they require that the\"; \\" >> $@ ; \ + echo " echo \"I: IP addresses 10.53.0.1 through 10.53.0.8 be configured\"; \\" >> $@ ; \ + echo " echo \"I: as alias addresses on the loopback interface. Please run\"; \\" >> $@ ; \ + echo " echo \"I: \"bin/tests/system/ifconfig.sh up\" as root to configure them.\"; \\" >> $@ ; \ + echo " exit 1; \\" >> $@ ; \ + echo " }" >> $@ ; \ + echo "" >> $@ ; \ echo "test check: $$PARALLEL_SANITIZED" >> $@ ; \ port=$${STARTPORT:-5000} ; \ for directory in $(PARALLEL) ; do \ echo "" >> $@ ; \ - echo "test-`echo $$directory | tr _ -`:" >> $@ ; \ + echo "test-`echo $$directory | tr _ -`: check_interfaces" >> $@ ; \ echo " @$(SHELL) ./run.sh -r -p $$port $$directory 2>&1 | tee $$directory/test.output" >> $@ ; \ port=`expr $$port + 100` ; \ done @@ -99,13 +108,6 @@ parallel.mk: # Targets to run the tests. test: parallel.mk subdirs - @if ! ${PERL} testsock.pl > /dev/null 2>&1; then \ - echo "I:NOTE: System tests were skipped because they require that the" ; \ - echo "I: IP addresses 10.53.0.1 through 10.53.0.8 be configured" ; \ - echo "I: as alias addresses on the loopback interface. Please run" ; \ - echo "I: \"bin/tests/system/ifconfig.sh up\" as root to configure them." ; \ - exit 1 ; \ - fi @$(MAKE) -f parallel.mk check @$(SHELL) ./runsequential.sh -r @$(SHELL) ./testsummary.sh diff --git a/bin/tests/system/runall.sh b/bin/tests/system/runall.sh index c0e714d614..76f20a4f3a 100644 --- a/bin/tests/system/runall.sh +++ b/bin/tests/system/runall.sh @@ -73,10 +73,20 @@ if [ "$CYGWIN" = "" ]; then make -j $numproc check status=$? else - # Running on Windows: no "make" available, so run the tests sequentially. - # (This is simpler than working out where "nmake" is likely to be found. - # Besides, "nmake" does not support parallel execution so if "nmake" is - # used, the tests would be run sequentially anyway.) + # Running on Windows: no "make" available, so ensure test interfaces are up + # and then run the tests sequentially. (This is simpler than working out + # where "nmake" is likely to be found. Besides, "nmake" does not support + # parallel execution so if "nmake" is used, the tests would be run + # sequentially anyway.) + $PERL testsock.pl || { + cat <<-EOF + I:NOTE: System tests were skipped because they require that the + I: IP addresses 10.53.0.1 through 10.53.0.8 be configured + I: as alias addresses on the loopback interface. Please run + I: "bin/tests/system/ifconfig.sh up" as root to configure them. + EOF + exit 1 + } { for testdir in $SUBDIRS; do $SHELL run.sh $testdir || status=1