diff --git a/bin/tests/system/ttl/clean.sh b/bin/tests/system/ttl/clean.sh index 17b09d77d4..3bb41d9247 100644 --- a/bin/tests/system/ttl/clean.sh +++ b/bin/tests/system/ttl/clean.sh @@ -11,11 +11,7 @@ # See the COPYRIGHT file distributed with this work for additional # information regarding copyright ownership. -rm -f ./dig.out.* rm -f ./*/named.conf rm -f ./*/named.memstats rm -f ./*/named.run -rm -f ./ns*/named.lock -rm -f ./ns*/_default.nzf -rm -f ./ns*/_default.nzd* -rm -f ./ns*/managed-keys.bind* ns*/*.mkeys* +rm -f ./ns*/managed-keys.bind* diff --git a/bin/tests/system/ttl/setup.sh b/bin/tests/system/ttl/setup.sh index 46c18c406a..6929ec541d 100644 --- a/bin/tests/system/ttl/setup.sh +++ b/bin/tests/system/ttl/setup.sh @@ -13,6 +13,5 @@ . ../conf.sh -$SHELL clean.sh copy_setports ns1/named.conf.in ns1/named.conf copy_setports ns2/named.conf.in ns2/named.conf diff --git a/bin/tests/system/ttl/tests.sh b/bin/tests/system/ttl/tests.sh deleted file mode 100644 index 4b0ffa5c3d..0000000000 --- a/bin/tests/system/ttl/tests.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh - -# Copyright (C) Internet Systems Consortium, Inc. ("ISC") -# -# SPDX-License-Identifier: MPL-2.0 -# -# 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 https://mozilla.org/MPL/2.0/. -# -# See the COPYRIGHT file distributed with this work for additional -# information regarding copyright ownership. - -. ../conf.sh - -dig_with_options() { "$DIG" +noadd +nosea +nostat +noquest +nocomm +nocmd -p "${PORT}" "$@"; } - -status=0 -t=0 - -echo_i "testing min-cache-ttl" -t=$((t+1)) -dig_with_options IN SOA min-example. @10.53.0.2 > dig.out.${t} -TTL=$(< dig.out.${t} awk '{ print $2; }') -[ "$TTL" -eq 60 ] || status=$((status+1)) - -echo_i "testing min-ncache-ttl" -t=$((t+1)) -dig_with_options IN MX min-example. @10.53.0.2 > dig.out.${t} -TTL=$(< dig.out.${t} awk '{ print $2; }') -[ "$TTL" -eq 30 ] || status=$((status+1)) - -echo_i "testing max-cache-ttl" -t=$((t+1)) -dig_with_options IN SOA max-example. @10.53.0.2 > dig.out.${t} -TTL=$(< dig.out.${t} awk '{ print $2; }') -[ "$TTL" -eq 120 ] || status=$((status+1)) - -echo_i "testing max-ncache-ttl" -t=$((t+1)) -dig_with_options IN MX max-example. @10.53.0.2 > dig.out.${t} -TTL=$(< dig.out.${t} awk '{ print $2; }') -[ "$TTL" -eq 60 ] || status=$((status+1)) - -echo_i "exit status: $status" -[ $status -eq 0 ] || exit 1 diff --git a/bin/tests/system/ttl/tests_cache_ttl.py b/bin/tests/system/ttl/tests_cache_ttl.py new file mode 100644 index 0000000000..9025283bd2 --- /dev/null +++ b/bin/tests/system/ttl/tests_cache_ttl.py @@ -0,0 +1,32 @@ +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# SPDX-License-Identifier: MPL-2.0 +# +# 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 https://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +import pytest + +pytest.importorskip("dns") +import dns.message +import dns.query + + +@pytest.mark.parametrize( + "qname,rdtype,expected_ttl", + [ + ("min-example.", "SOA", 60), + ("min-example.", "MX", 30), + ("max-example.", "SOA", 120), + ("max-example.", "MX", 60), + ], +) +def test_cache_ttl(qname, rdtype, expected_ttl, named_port): + msg = dns.message.make_query(qname, rdtype) + response = dns.query.udp(msg, "10.53.0.2", timeout=10, port=named_port) + for rr in response.answer + response.authority: + assert rr.ttl == expected_ttl