From 8f1cdaeed94fb9bdb4a7a4c8aeddae4ef4a0f805 Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Thu, 25 Jul 2019 16:53:01 -0400 Subject: [PATCH] add a system test, confirming that named fails to reload without crashing --- bin/tests/system/geoip/clean.sh | 2 +- bin/tests/system/geoip/ns2/named15.conf.in | 2 +- bin/tests/system/geoip/ns2/named16.conf.in | 49 ++++++++++++++++++++++ bin/tests/system/geoip/tests.sh | 11 +++++ 4 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 bin/tests/system/geoip/ns2/named16.conf.in diff --git a/bin/tests/system/geoip/clean.sh b/bin/tests/system/geoip/clean.sh index 85caf2f86f..f9bdf5b0f1 100644 --- a/bin/tests/system/geoip/clean.sh +++ b/bin/tests/system/geoip/clean.sh @@ -14,7 +14,7 @@ rm -f ns2/example*.db rm -f dig.out.* rndc.out.* rm -f data2/*dat [ -d data2 ] && rmdir data2 -rm -f ns?/named.run +rm -f ns?/named.run ns?/named.run.* rm -f ns?/named.memstats rm -f ns*/named.lock rm -f ns*/managed-keys.bind* ns*/*.mkeys* diff --git a/bin/tests/system/geoip/ns2/named15.conf.in b/bin/tests/system/geoip/ns2/named15.conf.in index 6481ceb8d4..85f198f3d6 100644 --- a/bin/tests/system/geoip/ns2/named15.conf.in +++ b/bin/tests/system/geoip/ns2/named15.conf.in @@ -37,7 +37,7 @@ view two { match-clients { geoip country US; }; zone "example" { type master; - file "../ns2/example2.db"; + file "example2.db"; }; }; diff --git a/bin/tests/system/geoip/ns2/named16.conf.in b/bin/tests/system/geoip/ns2/named16.conf.in new file mode 100644 index 0000000000..68c0e2c5aa --- /dev/null +++ b/bin/tests/system/geoip/ns2/named16.conf.in @@ -0,0 +1,49 @@ +/* + * 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. + */ + +// NS2 + +options { + query-source address 10.53.0.2; + notify-source 10.53.0.2; + transfer-source 10.53.0.2; + port @PORT@; + pid-file "named.pid"; + listen-on { 10.53.0.2; }; + listen-on-v6 { fd92:7065:b8e:ffff::2; }; + recursion no; + dnssec-validation no; + geoip-directory "../data2"; +}; + +key rndc_key { + secret "1234abcd8765"; + algorithm hmac-sha256; +}; + +controls { + inet 10.53.0.2 port @CONTROLPORT@ allow { any; } keys { rndc_key; }; +}; + +view one { + match-clients { geoip continent EU; }; + zone "example" { + type master; + file "example1.db"; + }; +}; + +view none { + zone "example" { + type master; + file "examplebogus.db"; + }; +}; diff --git a/bin/tests/system/geoip/tests.sh b/bin/tests/system/geoip/tests.sh index a0c6d0640c..8b8cccbc3c 100644 --- a/bin/tests/system/geoip/tests.sh +++ b/bin/tests/system/geoip/tests.sh @@ -292,6 +292,7 @@ status=`expr $status + $ret` n=`expr $n + 1` echo_i "reloading server with different geoip-directory ($n)" +ret=0 copy_setports ns2/named15.conf.in ns2/named.conf rndc_reload ns2 10.53.0.2 sleep 3 @@ -313,6 +314,16 @@ fi [ $ret -eq 0 ] || echo_i "failed" status=`expr $status + $ret` +n=`expr $n + 1` +echo_i "reloading server with different geoip-directory, missing continent support ($n)" +nextpart ns2/named.run > /dev/null +copy_setports ns2/named16.conf.in ns2/named.conf +rndc_reload ns2 10.53.0.2 > /dev/null +sleep 3 +nextpart ns2/named.run | grep 'no GeoIP database installed' > /dev/null 2>&1 || ret=1 +[ $ret -eq 0 ] || echo_i "failed" +status=`expr $status + $ret` + n=`expr $n + 1` echo_i "checking other GeoIP options are parsed correctly ($n)" ret=0