diff options
Diffstat (limited to '')
-rw-r--r-- | bin/tests/system/conf.sh.win32 | 344 |
1 files changed, 344 insertions, 0 deletions
diff --git a/bin/tests/system/conf.sh.win32 b/bin/tests/system/conf.sh.win32 new file mode 100644 index 0000000..589dab5 --- /dev/null +++ b/bin/tests/system/conf.sh.win32 @@ -0,0 +1,344 @@ +#!/bin/sh +# +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +# +# Common configuration data for system tests, to be sourced into +# other shell scripts. +# + +# For specific stuff (currently kill HUP -> rdnc reload in notify) +CYGWIN=1 + +# Find the top of the BIND9 tree. +TOP=${SYSTEMTESTTOP:=.}/../../.. + +# Make it absolute so that it continues to work after we cd. +TOP=`cd $TOP && pwd` + +# Visual Studio build configurations are Release and Debug +VSCONF=Debug + +ARPANAME=$TOP/Build/$VSCONF/arpaname@EXEEXT@ +CHECKCONF=$TOP/Build/$VSCONF/named-checkconf@EXEEXT@ +CHECKDS="$PYTHON `cygpath -w $TOP/bin/python/dnssec-checkds.py`" +CHECKZONE=$TOP/Build/$VSCONF/named-checkzone@EXEEXT@ +COVERAGE="$PYTHON `cygpath -w $TOP/bin/python/dnssec-coverage.py`" +DDNSCONFGEN=$TOP/Build/$VSCONF/ddns-confgen@EXEEXT@ +DELV=$TOP/Build/$VSCONF/delv@EXEEXT@ +DIG=$TOP/Build/$VSCONF/dig@EXEEXT@ +DNSTAPREAD=$TOP/Build/$VSCONF/dnstap-read@EXEEXT@ +DSFROMKEY=$TOP/Build/$VSCONF/dnssec-dsfromkey@EXEEXT@ +FEATURETEST=$TOP/Build/$VSCONF/feature-test@EXEEXT@ +FSTRM_CAPTURE=@FSTRM_CAPTURE@ +GENRANDOM=$TOP/Build/$VSCONF/genrandom@EXEEXT@ +IMPORTKEY=$TOP/Build/$VSCONF/dnssec-importkey@EXEEXT@ +JOURNALPRINT=$TOP/Build/$VSCONF/named-journalprint@EXEEXT@ +KEYFRLAB=$TOP/Build/$VSCONF/dnssec-keyfromlabel@EXEEXT@ +KEYGEN=$TOP/Build/$VSCONF/dnssec-keygen@EXEEXT@ +KEYMGR="$PYTHON `cygpath -w $TOP/bin/python/dnssec-keymgr.py`" +# We must use "named -l" instead of "lwresd" because argv[0] is lost +# if the program is libtoolized. +LWRESD="$TOP/Build/$VSCONF/named@EXEEXT@ -l" +MDIG=$TOP/Build/$VSCONF/mdig@EXEEXT@ +NAMED=$TOP/Build/$VSCONF/named@EXEEXT@ +NSLOOKUP=$TOP/Build/$VSCONF/nslookup@EXEEXT@ +NSUPDATE=$TOP/Build/$VSCONF/nsupdate@EXEEXT@ +NZD2NZF=$TOP/Build/$VSCONF/named-nzd2nzf@EXEEXT@ +PK11DEL="$TOP/Build/$VSCONF/pkcs11-destroy@EXEEXT@ -s ${SLOT:-0} -p ${HSMPIN:-1234} -w 0" +PK11GEN="$TOP/Build/$VSCONF/pkcs11-keygen@EXEEXT@ -q -s ${SLOT:-0} -p ${HSMPIN:-1234}" +PK11LIST="$TOP/Build/$VSCONF/pkcs11-list@EXEEXT@ -s ${SLOT:-0} -p ${HSMPIN:-1234}" +RESOLVE=$TOP/lib/samples/resolve +REVOKE=$TOP/Build/$VSCONF/dnssec-revoke@EXEEXT@ +RNDC=$TOP/Build/$VSCONF/rndc@EXEEXT@ +RNDCCONFGEN=$TOP/Build/$VSCONF/rndc-confgen@EXEEXT@ +RRCHECKER=$TOP/Build/$VSCONF/named-rrchecker@EXEEXT@ +SAMPLEUPDATE=$TOP/Build/$VSCONF/update@EXEEXT@ +SETTIME=$TOP/Build/$VSCONF/dnssec-settime@EXEEXT@ +SIGNER=$TOP/Build/$VSCONF/dnssec-signzone@EXEEXT@ +TSIGKEYGEN=$TOP/Build/$VSCONF/tsig-keygen@EXEEXT@ +VERIFY=$TOP/Build/$VSCONF/dnssec-verify@EXEEXT@ + +# to port WIRETEST=$TOP/Build/$VSCONF/wire_test@EXEEXT@ + +# this is given as argument to native WIN32 executables +RANDFILE=`cygpath -w $TOP/bin/tests/system/random.data` + +BIGKEY=$TOP/Build/$VSCONF/bigkey@EXEEXT@ +GENCHECK=$TOP/Build/$VSCONF/gencheck@EXEEXT@ +KEYCREATE=$TOP/Build/$VSCONF/keycreate@EXEEXT@ +KEYDELETE=$TOP/Build/$VSCONF/keydelete@EXEEXT@ +LWTEST=$TOP/Build/$VSCONF/lwtest@EXEEXT@ +MAKEJOURNAL=$TOP/Build/$VSCONF/makejournal@EXEEXT@ +PIPEQUERIES=$TOP/Build/$VSCONF/pipequeries@EXEEXT@ +# to port SAMPLEUPDATE=$TOP/lib/samples/sample-update + +# we don't want a KRB5_CONFIG setting breaking the tests +KRB5_CONFIG=NUL + +# The "stress" test is not run by default since it creates enough +# load on the machine to make it unusable to other users. +# The "dialup", "delzone", and "dupsigs" tests are also not run by +# default because they take a very long time to complete. +# +# List of tests that use ports 5300 and 9953. For this reason, these must +# be run sequentially. +SEQUENTIALDIRS="acl additional addzone autosign builtin \ + cacheclean case \ + checkconf @CHECKDS@ checknames checkzone cookie @COVERAGE@ \ + database digdelv dlv dlvauto dlz dlzexternal \ + dns64 dnssec @DNSTAP@ dscp dsdigest dyndb ecdsa eddsa \ + ednscompliance emptyzones \ + fetchlimit filter-aaaa formerr forward geoip glue gost idna inline ixfr \ + @KEYMGR@ legacy limits logfileconfig lwresd masterfile masterformat \ + metadata mkeys names notify nslookup nsupdate nzd2nzf pending \ + @PKCS11_TEST@ pipelined reclimit redirect resolver rndc rpz \ + rrchecker rrl rrsetorder rsabigexponent runtime sfcache \ + smartsign sortlist spf staticstub statistics statschannel stub tcp \ + tkey tsig tsiggss unknown upforwd verify views wildcard xfer \ + xferquota zero zonechecks" + +# List of tests that use unique ports (other than 5300 and 9953). These +# tests can be run in parallel. +# +# This symbol must be kept in step with the PARALLEL macro in Makefile.in +PARALLELDIRS="allow_query catz rpzrecurse" + +SUBDIRS="$SEQUENTIALDIRS $PARALLELDIRS" + +# missing: chain integrity +# extra: dname ednscompliance forward + +#Things that are different on Windows +KILL="/bin/kill -f" +DIFF="diff --strip-trailing-cr" +DOS2UNIX=dos2unix +# No trailing period +TP= + +# Configure is launched from native environment, but tests are run in Cygwin - +# so any detection is unreliable. +SHELL="/bin/bash -o igncr" +CURL=/usr/bin/curl +XMLLINT=/usr/bin/xmllint +PERL=/usr/bin/perl + +if test -n "$PERL" +then + if $PERL -e "use IO::Socket::INET6;" 2> /dev/null + then + TESTSOCK6="$PERL $TOP/bin/tests/system/testsock6.pl" + else + TESTSOCK6=false + fi +else + TESTSOCK6=false +fi + +if grep "^#define WANT_IPV6 1" $TOP/config.h > /dev/null 2>&1 ; then + TESTSOCK6="$TESTSOCK6" +else + TESTSOCK6=false +fi + + +PYTHON=@PYTHON@ + +# +# Determine if we support various optional features. +# +CHECK_DSA=@CHECK_DSA@ +HAVEXMLSTATS=@XMLSTATS@ +HAVEJSONSTATS=@JSONSTATS@ +ZLIB=@ZLIB@ +NZD=@NZD_TOOLS@ + +. ${TOP}/version + +# +# Set up color-coded test output +# +if test -t 1 && type tput > /dev/null; then + COLOR_END=`tput setaf 4` # blue + COLOR_FAIL=`tput setaf 1` # red + COLOR_INFO=`tput bold` # bold + COLOR_NONE=`tput sgr0` + COLOR_PASS=`tput setaf 2` # green + COLOR_START=`tput setaf 4` # blue + COLOR_WARN=`tput setaf 3` # yellow +else + # set to empty strings so printf succeeds + COLOR_END='' + COLOR_FAIL='' + COLOR_INFO='' + COLOR_NONE='' + COLOR_PASS='' + COLOR_START='' + COLOR_WARN='' +fi + +echofail () { + printf "${COLOR_FAIL}%s${COLOR_NONE}\n" "$*" +} +echowarn () { + printf "${COLOR_WARN}%s${COLOR_NONE}\n" "$*" +} +echopass () { + printf "${COLOR_PASS}%s${COLOR_NONE}\n" "$*" +} +echoinfo () { + printf "${COLOR_INFO}%s${COLOR_NONE}\n" "$*" +} +echostart () { + printf "${COLOR_START}%s${COLOR_NONE}\n" "$*" +} +echoend () { + printf "${COLOR_END}%s${COLOR_NONE}\n" "$*" +} + +TESTNAME="`basename $PWD`" + +echo_i() { + echo "$@" | while read LINE ; do + echoinfo "I:$TESTNAME:$LINE" + done +} + +cat_i() { + while read LINE ; do + echoinfo "I:$SYSTESTDIR:$LINE" + done +} + +digcomp() { + output=`$PERL $SYSTEMTESTTOP/digcomp.pl "$@"` + result=$? + [ -n "$output" ] && { echo "digcomp failed:"; echo "$output"; } | cat_i + return $result +} + +# +# Useful functions in test scripts +# + +# keyfile_to_keys_section: helper function for keyfile_to_*_keys() which +# converts keyfile data into a configuration section using the supplied +# parameters +keyfile_to_keys_section() { + section_name=$1 + key_prefix=$2 + shift + shift + echo "$section_name {" + for keyname in $*; do + awk '!/^; /{ + printf "\t\""$1"\" " + printf "'"$key_prefix"'" + printf $4 " " $5 " " $6 " \"" + for (i=7; i<=NF; i++) printf $i + printf "\";\n" + }' $keyname.key + done + echo "};" +} + +# keyfile_to_trusted_keys: convert key data contained in the keyfile(s) +# provided to a "trusted-keys" section suitable for including in a +# resolver's configuration file +keyfile_to_trusted_keys() { + keyfile_to_keys_section "trusted-keys" "" $* +} + +# keyfile_to_managed_keys: convert key data contained in the keyfile(s) +# provided to a "managed-keys" section suitable for including in a +# resolver's configuration file +keyfile_to_managed_keys() { + keyfile_to_keys_section "managed-keys" "initial-key " $* +} + +# nextpart: read everything that's been appended to a file since the +# last time 'nextpart' was called. +nextpart () { + [ -f $1.prev ] || echo "0" > $1.prev + prev=`cat $1.prev` + awk "NR > $prev "'{ print } + END { print NR > "/dev/stderr" }' $1 2> $1.prev +} + +# copy_setports - Copy Configuration File and Replace Ports +# +# Convenience function to copy a configuration file, replacing the tokens +# QUERYPORT, CONTROLPORT and EXTRAPORT[1-8] with the values of the equivalent +# environment variables. (These values are set by "run.sh", which calls the +# scripts invoking this function.) +# +# Usage: +# copy_setports infile outfile + +copy_setports() { + # The indirect method of handling the substitution of the PORT variables + # (defining "atsign" then substituting for it in the "sed" statement) is + # required because to prevent the "Configure" script (in the the + # bin9/win32utils directory) replacing the the <at>PORT<at> substitution + # tokens when it processes this file and produces conf.sh. + atsign="@" + sed -e "s/${atsign}PORT${atsign}/${PORT}/g" \ + -e "s/${atsign}EXTRAPORT1${atsign}/${EXTRAPORT1}/g" \ + -e "s/${atsign}EXTRAPORT2${atsign}/${EXTRAPORT2}/g" \ + -e "s/${atsign}EXTRAPORT3${atsign}/${EXTRAPORT3}/g" \ + -e "s/${atsign}EXTRAPORT4${atsign}/${EXTRAPORT4}/g" \ + -e "s/${atsign}EXTRAPORT5${atsign}/${EXTRAPORT5}/g" \ + -e "s/${atsign}EXTRAPORT6${atsign}/${EXTRAPORT6}/g" \ + -e "s/${atsign}EXTRAPORT7${atsign}/${EXTRAPORT7}/g" \ + -e "s/${atsign}EXTRAPORT8${atsign}/${EXTRAPORT8}/g" \ + -e "s/${atsign}CONTROLPORT${atsign}/${CONTROLPORT}/g" $1 > $2 +} + +# +# Export command paths +# +export ARPANAME +export BIGKEY +export CHECKZONE +export DESCRIPTION +export DIG +export FEATURETEST +export FSTRM_CAPTURE +export GENCHECK +export JOURNALPRINT +export KEYCREATE +export KEYDELETE +export KEYFRLAB +export KEYGEN +export KEYSETTOOL +export KEYSIGNER +export KRB5_CONFIG +export LWRESD +export LWTEST +export MAKEJOURNAL +export MDIG +export NAMED +export NSLOOKUP +export NSUPDATE +export NZD2NZF +export PERL +export PIPEQUERIES +export PK11DEL +export PK11GEN +export PK11LIST +export PYTHON +export RANDFILE +export RESOLVE +export RNDC +export RRCHECKER +export SAMPLEUPDATE +export SIGNER +export SUBDIRS +export TESTSOCK6 |