mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 23:25:38 +00:00
Add tests for "order none" RRset ordering rules
Make sure "order none" RRset ordering rules are tested in the "rrsetorder" system test just like all other rule types are. As the check for the case of no "rrset-order" rule matching a given RRset also tests "order none" (rather than "order random", as the test code may suggest at first glance), replace the test code for that case so that it matches other "order none" tests.
This commit is contained in:
5
bin/tests/system/checkconf/good-rrset-order-none.conf
Normal file
5
bin/tests/system/checkconf/good-rrset-order-none.conf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
options {
|
||||||
|
rrset-order {
|
||||||
|
order none;
|
||||||
|
};
|
||||||
|
};
|
@@ -10,7 +10,7 @@
|
|||||||
# information regarding copyright ownership.
|
# information regarding copyright ownership.
|
||||||
|
|
||||||
rm -f dig.out.test*
|
rm -f dig.out.test*
|
||||||
rm -f dig.out.cyclic dig.out.fixed dig.out.random dig.out.nomatch
|
rm -f dig.out.cyclic dig.out.fixed dig.out.random dig.out.nomatch dig.out.none
|
||||||
rm -f dig.out.0 dig.out.1 dig.out.2 dig.out.3
|
rm -f dig.out.0 dig.out.1 dig.out.2 dig.out.3
|
||||||
rm -f dig.out.cyclic2
|
rm -f dig.out.cyclic2
|
||||||
rm -f ns2/root.bk
|
rm -f ns2/root.bk
|
||||||
|
@@ -24,6 +24,7 @@ options {
|
|||||||
name "fixed.example" order fixed;
|
name "fixed.example" order fixed;
|
||||||
name "random.example" order random;
|
name "random.example" order random;
|
||||||
name "cyclic.example" order cyclic;
|
name "cyclic.example" order cyclic;
|
||||||
|
name "none.example" order none;
|
||||||
type NS order random;
|
type NS order random;
|
||||||
order cyclic;
|
order cyclic;
|
||||||
};
|
};
|
||||||
|
@@ -42,3 +42,8 @@ nomatch.example. A 1.2.3.1
|
|||||||
nomatch.example. A 1.2.3.2
|
nomatch.example. A 1.2.3.2
|
||||||
nomatch.example. A 1.2.3.3
|
nomatch.example. A 1.2.3.3
|
||||||
nomatch.example. A 1.2.3.4
|
nomatch.example. A 1.2.3.4
|
||||||
|
;
|
||||||
|
none.example. A 1.2.3.1
|
||||||
|
none.example. A 1.2.3.2
|
||||||
|
none.example. A 1.2.3.3
|
||||||
|
none.example. A 1.2.3.4
|
||||||
|
@@ -24,6 +24,7 @@ options {
|
|||||||
name "fixed.example" order fixed;
|
name "fixed.example" order fixed;
|
||||||
name "random.example" order random;
|
name "random.example" order random;
|
||||||
name "cyclic.example" order cyclic;
|
name "cyclic.example" order cyclic;
|
||||||
|
name "none.example" order none;
|
||||||
type NS order random;
|
type NS order random;
|
||||||
order cyclic;
|
order cyclic;
|
||||||
};
|
};
|
||||||
|
@@ -24,6 +24,7 @@ options {
|
|||||||
name "fixed.example" order fixed;
|
name "fixed.example" order fixed;
|
||||||
name "random.example" order random;
|
name "random.example" order random;
|
||||||
name "cyclic.example" order cyclic;
|
name "cyclic.example" order cyclic;
|
||||||
|
name "none.example" order none;
|
||||||
type NS order random;
|
type NS order random;
|
||||||
order cyclic;
|
order cyclic;
|
||||||
};
|
};
|
||||||
|
@@ -142,6 +142,21 @@ if [ $match -lt `expr ${GOOD_RANDOM_NO} / 3` ]; then ret=1; fi
|
|||||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
status=`expr $status + $ret`
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
|
echo_i "Checking order none (primary)"
|
||||||
|
ret=0
|
||||||
|
# Fetch the "reference" response and ensure it contains the expected records.
|
||||||
|
$DIGCMD @10.53.0.1 none.example > dig.out.none || ret=1
|
||||||
|
for i in 1 2 3 4; do
|
||||||
|
grep -F -q 1.2.3.$i dig.out.none || ret=1
|
||||||
|
done
|
||||||
|
# Ensure 20 further queries result in the same response as the "reference" one.
|
||||||
|
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
|
||||||
|
$DIGCMD @10.53.0.1 none.example > dig.out.test$i || ret=1
|
||||||
|
$DIFF dig.out.none dig.out.test$i >/dev/null || ret=1
|
||||||
|
done
|
||||||
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
@@ -236,6 +251,21 @@ if [ $match -lt `expr ${GOOD_RANDOM_NO} / 3` ]; then ret=1; fi
|
|||||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
status=`expr $status + $ret`
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
|
echo_i "Checking order none (secondary)"
|
||||||
|
ret=0
|
||||||
|
# Fetch the "reference" response and ensure it contains the expected records.
|
||||||
|
$DIGCMD @10.53.0.2 none.example > dig.out.none || ret=1
|
||||||
|
for i in 1 2 3 4; do
|
||||||
|
grep -F -q 1.2.3.$i dig.out.none || ret=1
|
||||||
|
done
|
||||||
|
# Ensure 20 further queries result in the same response as the "reference" one.
|
||||||
|
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
|
||||||
|
$DIGCMD @10.53.0.2 none.example > dig.out.test$i || ret=1
|
||||||
|
$DIFF dig.out.none dig.out.test$i >/dev/null || ret=1
|
||||||
|
done
|
||||||
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
echo_i "Shutting down secondary"
|
echo_i "Shutting down secondary"
|
||||||
|
|
||||||
(cd ..; $SHELL stop.sh rrsetorder ns2 )
|
(cd ..; $SHELL stop.sh rrsetorder ns2 )
|
||||||
@@ -346,6 +376,21 @@ if [ $match -lt `expr ${GOOD_RANDOM_NO} / 3` ]; then ret=1; fi
|
|||||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
status=`expr $status + $ret`
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
|
echo_i "Checking order none (secondary loaded from disk)"
|
||||||
|
ret=0
|
||||||
|
# Fetch the "reference" response and ensure it contains the expected records.
|
||||||
|
$DIGCMD @10.53.0.2 none.example > dig.out.none || ret=1
|
||||||
|
for i in 1 2 3 4; do
|
||||||
|
grep -F -q 1.2.3.$i dig.out.none || ret=1
|
||||||
|
done
|
||||||
|
# Ensure 20 further queries result in the same response as the "reference" one.
|
||||||
|
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
|
||||||
|
$DIGCMD @10.53.0.2 none.example > dig.out.test$i || ret=1
|
||||||
|
$DIFF dig.out.none dig.out.test$i >/dev/null || ret=1
|
||||||
|
done
|
||||||
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
@@ -443,6 +488,21 @@ echo_i "Random selection return $match of ${GOOD_RANDOM_NO} possible orders in 3
|
|||||||
if [ $match -lt `expr ${GOOD_RANDOM_NO} / 3` ]; then ret=1; fi
|
if [ $match -lt `expr ${GOOD_RANDOM_NO} / 3` ]; then ret=1; fi
|
||||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
|
|
||||||
|
echo_i "Checking order none (cache)"
|
||||||
|
ret=0
|
||||||
|
# Fetch the "reference" response and ensure it contains the expected records.
|
||||||
|
$DIGCMD @10.53.0.3 none.example > dig.out.none || ret=1
|
||||||
|
for i in 1 2 3 4; do
|
||||||
|
grep -F -q 1.2.3.$i dig.out.none || ret=1
|
||||||
|
done
|
||||||
|
# Ensure 20 further queries result in the same response as the "reference" one.
|
||||||
|
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
|
||||||
|
$DIGCMD @10.53.0.3 none.example > dig.out.test$i || ret=1
|
||||||
|
$DIFF dig.out.none dig.out.test$i >/dev/null || ret=1
|
||||||
|
done
|
||||||
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
echo_i "Checking default order (cache)"
|
echo_i "Checking default order (cache)"
|
||||||
ret=0
|
ret=0
|
||||||
for i in $GOOD_RANDOM
|
for i in $GOOD_RANDOM
|
||||||
@@ -468,33 +528,22 @@ done
|
|||||||
echo_i "Default selection return $match of ${GOOD_RANDOM_NO} possible orders in 36 samples"
|
echo_i "Default selection return $match of ${GOOD_RANDOM_NO} possible orders in 36 samples"
|
||||||
if [ $match -lt `expr ${GOOD_RANDOM_NO} / 3` ]; then ret=1; fi
|
if [ $match -lt `expr ${GOOD_RANDOM_NO} / 3` ]; then ret=1; fi
|
||||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
|
|
||||||
echo_i "Checking default order no match in rrset-order (no shuffling)"
|
|
||||||
ret=0
|
|
||||||
for i in $GOOD_RANDOM
|
|
||||||
do
|
|
||||||
eval match$i=0
|
|
||||||
done
|
|
||||||
for i in a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 9
|
|
||||||
do
|
|
||||||
$DIGCMD @10.53.0.4 nomatch.example > dig.out.nomatch|| ret=1
|
|
||||||
match=0
|
|
||||||
for j in $GOOD_RANDOM
|
|
||||||
do
|
|
||||||
eval "$DIFF dig.out.nomatch dig.out.random.good$j >/dev/null && match$j=1 match=1"
|
|
||||||
if [ $match -eq 1 ]; then break; fi
|
|
||||||
done
|
|
||||||
if [ $match -eq 0 ]; then ret=1; fi
|
|
||||||
done
|
|
||||||
match=0
|
|
||||||
for i in $GOOD_RANDOM
|
|
||||||
do
|
|
||||||
eval "match=\`expr \$match + \$match$i\`"
|
|
||||||
done
|
|
||||||
echo_i "Consistent selection return $match of ${GOOD_RANDOM_NO} possible orders in 36 samples"
|
|
||||||
if [ $match -ne 1 ]; then ret=1; fi
|
|
||||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
|
||||||
|
|
||||||
status=`expr $status + $ret`
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
|
echo_i "Checking default order no match in rrset-order (cache)"
|
||||||
|
ret=0
|
||||||
|
# Fetch the "reference" response and ensure it contains the expected records.
|
||||||
|
$DIGCMD @10.53.0.4 nomatch.example > dig.out.nomatch || ret=1
|
||||||
|
for i in 1 2 3 4; do
|
||||||
|
grep -F -q 1.2.3.$i dig.out.nomatch || ret=1
|
||||||
|
done
|
||||||
|
# Ensure 20 further queries result in the same response as the "reference" one.
|
||||||
|
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
|
||||||
|
$DIGCMD @10.53.0.4 nomatch.example > dig.out.test$i || ret=1
|
||||||
|
$DIFF dig.out.nomatch dig.out.test$i >/dev/null || ret=1
|
||||||
|
done
|
||||||
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
echo_i "exit status: $status"
|
echo_i "exit status: $status"
|
||||||
[ $status -eq 0 ] || exit 1
|
[ $status -eq 0 ] || exit 1
|
||||||
|
Reference in New Issue
Block a user