Files
bind9/bin/tests/system/Makefile.in
Stephen Morris 0342f7e559 [rt46602] Ensure that tests running in parallel use unique ports
Via an intermediate make file, tests that have been modified to be able
to run in parallel are assigned unique query and control port numbers
(other than 5300 and 9953 respectively).  Tests that have not yet been
modified all use ports 5300 and 9953, so must be run sequentially.

(cherry picked from commit e7429b124b)
(cherry picked from commit 4f68e67e5c)
(cherry picked from commit 704e2324e3)
2018-02-25 09:21:52 -08:00

108 lines
2.8 KiB
Makefile

# Copyright (C) 2004, 2007, 2008, 2010-2016 Internet Systems Consortium, Inc. ("ISC")
# Copyright (C) 2000, 2001 Internet Software Consortium.
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
srcdir = @srcdir@
VPATH = @srcdir@
top_srcdir = @top_srcdir@
VERSION=@BIND9_VERSION@
@BIND9_MAKE_INCLUDES@
SUBDIRS = dlzexternal lwresd rsabigexponent tkey
CINCLUDES = ${ISC_INCLUDES} ${DNS_INCLUDES}
CDEFINES = @USE_GSSAPI@
CWARNINGS =
DNSLIBS =
ISCLIBS = ../../../lib/isc/libisc.@A@
DNSDEPLIBS =
ISCDEPLIBS =
DEPLIBS =
LIBS = @LIBS@
OBJS = feature-test.@O@
SRCS = feature-test.c
TARGETS = feature-test@EXEEXT@
@BIND9_MAKE_RULES@
feature-test@EXEEXT@: feature-test.@O@
${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ feature-test.@O@ ${ISCLIBS} ${LIBS}
# Running the scripts below is bypassed when a separate # build directory is
# used.
# Define the tests that can be run in parallel. This should be identical to
# the definition of PARALLELDIRS in conf.sh. These tests do not use query
# port 5300 or control port 9953.
PARALLEL = allow_query serve-stale rpzrecurse
# Produce intermediate makefile that assigns unique port numbers to each
# parallel test.
parallel.mk:
@echo ".PHONY: $(PARALLEL)" > $@ ; \
echo "" >> $@ ; \
echo "check: $(PARALLEL)" >> $@ ; \
port=5299 ; \
for directory in $(PARALLEL) ; do \
port=$$(($$port + 2)) ; \
controlport=$$(($$port + 1)) ; \
echo "" >> $@ ; \
echo "$$directory:" >> $@ ; \
echo " @$(SHELL) ./run.sh -p $$port -c $$controlport $$directory" >> $@ ; \
done
# Targets to run the tests that can be done in parallel (which have unique
# ports assigned to them) and the tests which must be run sequentially (because
# they all use query port 5300 and control port 9953).
parallel: parallel.mk
$(MAKE) -f parallel.mk
sequential:
if test -f ./runall.sh; then $(SHELL) ./runall.sh; fi
# Standard targets.
check: test
test: parallel sequential
testclean clean distclean::
if test -f ./cleanall.sh; then sh ./cleanall.sh; fi
rm -f systests.output
rm -f random.data
rm -f parallel.mk
rm -f ${TARGETS}
rm -f ${OBJS}
distclean::
rm -f conf.sh
installdirs:
install::
uninstall::