diff --git a/bin/tests/system/rrsetorder/clean.sh b/bin/tests/system/rrsetorder/clean.sh index d5b245cc8c..c80daaf4b4 100644 --- a/bin/tests/system/rrsetorder/clean.sh +++ b/bin/tests/system/rrsetorder/clean.sh @@ -14,8 +14,9 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: clean.sh,v 1.8 2008/04/24 23:46:59 tbox Exp $ +# $Id: clean.sh,v 1.9 2011/12/23 00:38:23 marka Exp $ +rm -f dig.out.test* rm -f dig.out.cyclic dig.out.fixed dig.out.random rm -f dig.out.0 dig.out.1 dig.out.2 dig.out.3 rm -f ns2/root.bk diff --git a/bin/tests/system/rrsetorder/dig.out.cyclic.good1 b/bin/tests/system/rrsetorder/dig.out.cyclic.good1 new file mode 100644 index 0000000000..c272c756e2 --- /dev/null +++ b/bin/tests/system/rrsetorder/dig.out.cyclic.good1 @@ -0,0 +1,4 @@ +1.2.3.1 +1.2.3.2 +1.2.3.3 +1.2.3.4 diff --git a/bin/tests/system/rrsetorder/dig.out.cyclic.good2 b/bin/tests/system/rrsetorder/dig.out.cyclic.good2 new file mode 100644 index 0000000000..6a39e3f3eb --- /dev/null +++ b/bin/tests/system/rrsetorder/dig.out.cyclic.good2 @@ -0,0 +1,4 @@ +1.2.3.2 +1.2.3.3 +1.2.3.4 +1.2.3.1 diff --git a/bin/tests/system/rrsetorder/dig.out.cyclic.good3 b/bin/tests/system/rrsetorder/dig.out.cyclic.good3 new file mode 100644 index 0000000000..6082a255fc --- /dev/null +++ b/bin/tests/system/rrsetorder/dig.out.cyclic.good3 @@ -0,0 +1,4 @@ +1.2.3.3 +1.2.3.4 +1.2.3.1 +1.2.3.2 diff --git a/bin/tests/system/rrsetorder/dig.out.cyclic.good4 b/bin/tests/system/rrsetorder/dig.out.cyclic.good4 new file mode 100644 index 0000000000..a5530c658f --- /dev/null +++ b/bin/tests/system/rrsetorder/dig.out.cyclic.good4 @@ -0,0 +1,4 @@ +1.2.3.4 +1.2.3.1 +1.2.3.2 +1.2.3.3 diff --git a/bin/tests/system/rrsetorder/tests.sh b/bin/tests/system/rrsetorder/tests.sh index a05e34f282..2ebe9a6844 100644 --- a/bin/tests/system/rrsetorder/tests.sh +++ b/bin/tests/system/rrsetorder/tests.sh @@ -14,12 +14,13 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: tests.sh,v 1.8 2008/10/09 21:27:52 each Exp $ +# $Id: tests.sh,v 1.9 2011/12/23 00:38:23 marka Exp $ SYSTEMTESTTOP=.. . $SYSTEMTESTTOP/conf.sh status=0 +n=0 if grep "^#define DNS_RDATASET_FIXED" $TOP/config.h > /dev/null 2>&1 ; then test_fixed=true @@ -31,47 +32,57 @@ fi # # # +n=`expr $n + 1` if $test_fixed; then - echo "I: Checking order fixed (master)" - ret=0 + echo "I: Checking order fixed (master) ($n)" for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 do + ret=0 $DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \ - -p 5300 @10.53.0.1 fixed.example > dig.out.fixed || ret=1 - cmp -s dig.out.fixed dig.out.fixed.good || ret=1 + -p 5300 @10.53.0.1 fixed.example > dig.out.test$n || ret=1 + cmp -s dig.out.test$n dig.out.fixed.good || ret=1 + [ $ret = 0 ] && break done if [ $ret != 0 ]; then echo "I:failed"; fi status=`expr $status + $ret` +else + echo "I: Skipped: Checking order fixed (master) ($n)" fi # # # -echo "I: Checking order cyclic (master)" +n=`expr $n + 1` +echo "I: Checking order cyclic (master) ($n)" ret=0 -matches=0 -for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +for i in 1 2 3 4 do - j=`expr $i % 4` - $DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \ - -p 5300 @10.53.0.1 cyclic.example > dig.out.cyclic || ret=1 - if [ $i -le 4 ]; then - cp dig.out.cyclic dig.out.$j - else - cmp -s dig.out.cyclic dig.out.$j && matches=`expr $matches + 1` - fi + eval match$i=0 done -cmp -s dig.out.0 dig.out.1 && ret=1 -cmp -s dig.out.0 dig.out.2 && ret=1 -cmp -s dig.out.0 dig.out.3 && ret=1 -cmp -s dig.out.1 dig.out.2 && ret=1 -cmp -s dig.out.1 dig.out.3 && ret=1 -cmp -s dig.out.2 dig.out.3 && ret=1 -if [ $matches -ne 16 ]; then ret=1; fi +for i in a b c d e f g h +do +$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \ + -p 5300 @10.53.0.1 cyclic.example > dig.out.cyclic || ret=1 + match=0 + for j in 1 2 3 4 + do + eval "cmp -s dig.out.cyclic dig.out.cyclic.good$j && match$j=1 match=1" + if [ $match -eq 1 ]; then break; fi + done + if [ $match -eq 0 ]; then ret=1; echo "I:unexpected order"; fi +done +match=0 +for i in 1 2 3 4 +do + eval "match=\`expr \$match + \$match$i\`" +done +echo "I: Cyclic selection return $match of 4 possible orders in 8 samples" +if [ $match -ne 4 ]; then echo ret=1; fi if [ $ret != 0 ]; then echo "I:failed"; fi status=`expr $status + $ret` -echo "I: Checking order random (master)" +n=`expr $n + 1` +echo "I: Checking order random (master) ($n)" ret=0 for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 do @@ -102,47 +113,56 @@ status=`expr $status + $ret` # # # +n=`expr $n + 1` if $test_fixed; then - echo "I: Checking order fixed (slave)" + echo "I: Checking order fixed (slave) ($n)" ret=0 for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 do $DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \ - -p 5300 @10.53.0.2 fixed.example > dig.out.fixed || ret=1 - cmp -s dig.out.fixed dig.out.fixed.good || ret=1 + -p 5300 @10.53.0.2 fixed.example > dig.out.test$n || ret=1 + cmp -s dig.out.test$n dig.out.fixed.good || ret=1 done if [ $ret != 0 ]; then echo "I:failed"; fi status=`expr $status + $ret` +else + echo "I: Skipped: Checking order fixed (slave) ($n)" fi # # # -echo "I: Checking order cyclic (slave)" +n=`expr $n + 1` +echo "I: Checking order cyclic (slave) ($n)" ret=0 -matches=0 -for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +for i in 1 2 3 4 do - j=`expr $i % 4` - $DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \ - -p 5300 @10.53.0.2 cyclic.example > dig.out.cyclic || ret=1 - if [ $i -le 4 ]; then - cp dig.out.cyclic dig.out.$j - else - cmp -s dig.out.cyclic dig.out.$j && matches=`expr $matches + 1` - fi + eval match$i=0 done -cmp -s dig.out.0 dig.out.1 && ret=1 -cmp -s dig.out.0 dig.out.2 && ret=1 -cmp -s dig.out.0 dig.out.3 && ret=1 -cmp -s dig.out.1 dig.out.2 && ret=1 -cmp -s dig.out.1 dig.out.3 && ret=1 -cmp -s dig.out.2 dig.out.3 && ret=1 -if [ $matches -ne 16 ]; then ret=1; fi +for i in a b c d e f g h +do +$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \ + -p 5300 @10.53.0.2 cyclic.example > dig.out.cyclic || ret=1 + match=0 + for j in 1 2 3 4 + do + eval "cmp -s dig.out.cyclic dig.out.cyclic.good$j && match$j=1 match=1" + if [ $match -eq 1 ]; then break; fi + done + if [ $match -eq 0 ]; then ret=1; echo "I:unexpected order"; fi +done +match=0 +for i in 1 2 3 4 +do + eval "match=\`expr \$match + \$match$i\`" +done +echo "I: Cyclic selection return $match of 4 possible orders in 8 samples" +if [ $match -ne 4 ]; then echo ret=1; fi if [ $ret != 0 ]; then echo "I:failed"; fi status=`expr $status + $ret` -echo "I: Checking order random (slave)" +n=`expr $n + 1` +echo "I: Checking order random (slave) ($n)" ret=0 for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 do @@ -174,7 +194,8 @@ echo "I: Shutting down slave" (cd ..; sh stop.sh rrsetorder ns2 ) -echo "I: Checking for slave's on disk copy of zone" +n=`expr $n + 1` +echo "I: Checking for slave's on disk copy of zone ($n)" if [ ! -f ns2/root.bk ] then @@ -189,47 +210,59 @@ echo "I: Re-starting slave" # # # +n=`expr $n + 1` if $test_fixed; then - echo "I: Checking order fixed (slave loaded from disk)" - ret=0 + echo "I: Checking order fixed (slave loaded from disk) ($n)" for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 do + ret=0 $DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \ - -p 5300 @10.53.0.2 fixed.example > dig.out.fixed || ret=1 - cmp -s dig.out.fixed dig.out.fixed.good || ret=1 + -p 5300 @10.53.0.2 fixed.example > dig.out.test$n || ret=1 + cmp -s dig.out.test$n dig.out.fixed.good || ret=1 + [ $ret = 0 ] && break + sleep 1 done if [ $ret != 0 ]; then echo "I:failed"; fi status=`expr $status + $ret` +else + echo "I: Skipped: Checking order fixed (slave loaded from disk) ($n)" + fi # # # -echo "I: Checking order cyclic (slave loaded from disk)" +n=`expr $n + 1` +echo "I: Checking order cyclic (slave loaded from disk) ($n)" ret=0 -matches=0 -for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +for i in 1 2 3 4 do - j=`expr $i % 4` - $DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \ - -p 5300 @10.53.0.2 cyclic.example > dig.out.cyclic || ret=1 - if [ $i -le 4 ]; then - cp dig.out.cyclic dig.out.$j - else - cmp -s dig.out.cyclic dig.out.$j && matches=`expr $matches + 1` - fi + eval match$i=0 done -cmp -s dig.out.0 dig.out.1 && ret=1 -cmp -s dig.out.0 dig.out.2 && ret=1 -cmp -s dig.out.0 dig.out.3 && ret=1 -cmp -s dig.out.1 dig.out.2 && ret=1 -cmp -s dig.out.1 dig.out.3 && ret=1 -cmp -s dig.out.2 dig.out.3 && ret=1 -if [ $matches -ne 16 ]; then ret=1; fi +for i in a b c d e f g h +do +$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \ + -p 5300 @10.53.0.2 cyclic.example > dig.out.cyclic || ret=1 + match=0 + for j in 1 2 3 4 + do + eval "cmp -s dig.out.cyclic dig.out.cyclic.good$j && match$j=1 match=1" + if [ $match -eq 1 ]; then break; fi + done + if [ $match -eq 0 ]; then ret=1; echo "I:unexpected order"; fi +done +match=0 +for i in 1 2 3 4 +do + eval "match=\`expr \$match + \$match$i\`" +done +echo "I: Cyclic selection return $match of 4 possible orders in 8 samples" +if [ $match -ne 4 ]; then echo ret=1; fi if [ $ret != 0 ]; then echo "I:failed"; fi status=`expr $status + $ret` -echo "I: Checking order random (slave loaded from disk)" +n=`expr $n + 1` +echo "I: Checking order random (slave loaded from disk) ($n)" ret=0 for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 do @@ -260,47 +293,57 @@ status=`expr $status + $ret` # # # +n=`expr $n + 1` if $test_fixed; then - echo "I: Checking order fixed (cache)" + echo "I: Checking order fixed (cache) ($n)" ret=0 for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 do $DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \ - -p 5300 @10.53.0.3 fixed.example > dig.out.fixed || ret=1 - cmp -s dig.out.fixed dig.out.fixed.good || ret=1 + -p 5300 @10.53.0.3 fixed.example > dig.out.test$n || ret=1 + cmp -s dig.out.test$n dig.out.fixed.good || ret=1 done if [ $ret != 0 ]; then echo "I:failed"; fi status=`expr $status + $ret` +else + echo "I: Skipped: Checking order fixed (cache) ($n)" fi # # # -echo "I: Checking order cyclic (cache)" +n=`expr $n + 1` +echo "I: Checking order cyclic (cache) ($n)" ret=0 -matches=0 -for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +for i in 1 2 3 4 do - j=`expr $i % 4` - $DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \ - -p 5300 @10.53.0.3 cyclic.example > dig.out.cyclic || ret=1 - if [ $i -le 4 ]; then - cp dig.out.cyclic dig.out.$j - else - cmp -s dig.out.cyclic dig.out.$j && matches=`expr $matches + 1` - fi + eval match$i=0 done -cmp -s dig.out.0 dig.out.1 && ret=1 -cmp -s dig.out.0 dig.out.2 && ret=1 -cmp -s dig.out.0 dig.out.3 && ret=1 -cmp -s dig.out.1 dig.out.2 && ret=1 -cmp -s dig.out.1 dig.out.3 && ret=1 -cmp -s dig.out.2 dig.out.3 && ret=1 -if [ $matches -ne 16 ]; then ret=1; fi +for i in a b c d e f g h +do +$DIG +nosea +nocomm +nocmd +noquest +noadd +noauth +nocomm +nostat +short \ + -p 5300 @10.53.0.3 cyclic.example > dig.out.cyclic || ret=1 + match=0 + for j in 1 2 3 4 + do + eval "cmp -s dig.out.cyclic dig.out.cyclic.good$j && match$j=1 match=1" + if [ $match -eq 1 ]; then break; fi + done + if [ $match -eq 0 ]; then ret=1; echo "I:unexpected order"; fi +done +match=0 +for i in 1 2 3 4 +do + eval "match=\`expr \$match + \$match$i\`" +done +echo "I: Cyclic selection return $match of 4 possible orders in 8 samples" +if [ $match -ne 4 ]; then echo ret=1; fi if [ $ret != 0 ]; then echo "I:failed"; fi status=`expr $status + $ret` +n=`expr $n + 1` -echo "I: Checking order random (cache)" +n=`expr $n + 1` +echo "I: Checking order random (cache) ($n)" ret=0 for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 do