unbound/testdata/subnet_cache_lookup.tdir/subnet_cache_lookup.test
W.C.A. Wijngaards 1e37f86ef5 - unbound-control cache_lookup +t allows tld and root names. And
subnet cache contents are printed.
Changelog, documentation and unit test.
2025-08-15 13:03:31 +02:00

121 lines
2.8 KiB
Text

# #-- subnet_cache_lookup.test --#
# source the master var file when it's there
[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
# use .tpkg.var.test for in test variable passing
[ -f .tpkg.var.test ] && source .tpkg.var.test
PRE="../.."
# do the test
echo "> dig www.example.com."
dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
if grep SERVFAIL outfile; then
echo "> try again"
dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 1
dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
if grep SERVFAIL outfile; then
echo "> try again"
sleep 10
dig @127.0.0.1 -p $UNBOUND_PORT www.example.com. | tee outfile
fi
#echo "> cat logfiles"
#cat fwd.log
#cat unbound.log
echo "> check answer"
if grep www.example.com outfile | grep "10.20.30.40"; then
echo "OK"
else
echo "Not OK"
exit 1
fi
echo "> unbound-control status"
$PRE/unbound-control -c ub.conf status
if test $? -ne 0; then
echo "wrong exit value."
exit 1
else
echo "exit value: OK"
fi
echo "> unbound-control cache_lookup example.com"
$PRE/unbound-control -c ub.conf cache_lookup example.com 2>&1 | tee outfile
if test $? -ne 0; then
echo "wrong exit value."
exit 1
fi
echo "> check unbound-control output"
if grep "subnet" outfile; then
echo "OK"
else
echo "Not OK"
exit 1
fi
echo "> use proxy-protocol to put more addresses in the edns subnet cache"
$PRE/streamtcp -f 127.0.0.1@$PROXY_PORT -p 1.1.3.4 www.example.net. A IN | tee outfile
if grep www.example.net outfile | grep "10.20.30.41"; then
echo "OK"
else
echo "Not OK"
exit 1
fi
$PRE/streamtcp -f 127.0.0.1@$PROXY_PORT -p 1.2.3.4 www.example.net. A IN | tee outfile
if grep www.example.net outfile | grep "10.20.30.42"; then
echo "OK"
else
echo "Not OK"
exit 1
fi
$PRE/streamtcp -f 127.0.0.1@$PROXY_PORT -p 1.3.3.4 www.example.net. A IN | tee outfile
if grep www.example.net outfile | grep "10.20.30.43"; then
echo "OK"
else
echo "Not OK"
exit 1
fi
$PRE/streamtcp -f 127.0.0.1@$PROXY_PORT -p 1.4.3.4 www.example.net. A IN | tee outfile
if grep www.example.net outfile | grep "10.20.30.44"; then
echo "OK"
else
echo "Not OK"
exit 1
fi
echo "> unbound-control cache_lookup example.net"
$PRE/unbound-control -c ub.conf cache_lookup example.net 2>&1 | tee outfile
if test $? -ne 0; then
echo "wrong exit value."
exit 1
fi
echo "> check unbound-control output"
if grep "subnet" outfile; then
echo "OK"
else
echo "Not OK"
exit 1
fi
exit 0