From: Michał Kępień Date: Tue, 17 Jul 2018 09:21:39 +0000 (+0200) Subject: [squash] Put Perl code extracting a tree from a cache dump in a separate function X-Git-Tag: v9.13.3~103^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=122a1a00be93ed3cdf6e572083a3dcd5705a5ee3;p=thirdparty%2Fbind9.git [squash] Put Perl code extracting a tree from a cache dump in a separate function --- diff --git a/bin/tests/system/cacheclean/tests.sh b/bin/tests/system/cacheclean/tests.sh index 7a51ae025cd..fb9248ce2b4 100755 --- a/bin/tests/system/cacheclean/tests.sh +++ b/bin/tests/system/cacheclean/tests.sh @@ -81,6 +81,21 @@ in_cache () { return 0 } +# Extract records at and below name "$1" from the cache dump in file "$2". +filter_tree () { + tree="$1" + file="$2" + perl -n -e ' + next if /^;/; + if (/'"$tree"'/ || (/^\t/ && $print)) { + $print = 1; + } else { + $print = 0; + } + print if $print; + ' "$file" +} + n=`expr $n + 1` echo_i "check correctness of routine cache cleaning ($n)" $DIG $DIGOPTS +tcp +keepopen -b 10.53.0.7 -f dig.batch > dig.out.ns2 || status=1 @@ -98,7 +113,7 @@ echo_i "reset and check that records are correctly cached initially ($n)" ret=0 load_cache dump_cache -nrecords=`grep -v '^;' ns2/named_dump.db.$n | perl -nle 'if (/flushtest\.example/ || (/^\t/ && $out)) {$out=1;} else {$out=0;} print if ($out);' | egrep '(TXT|ANY)'| wc -l` +nrecords=`filter_tree flushtest.example ns2/named_dump.db.$n | egrep '(TXT|ANY)' | wc -l` [ $nrecords -eq 18 ] || { ret=1; echo_i "found $nrecords records expected 18"; } if [ $ret != 0 ]; then echo_i "failed"; fi status=`expr $status + $ret` @@ -108,7 +123,7 @@ echo_i "check flushing of the full cache ($n)" ret=0 clear_cache dump_cache -nrecords=`grep -v '^;' ns2/named_dump.db.$n | perl -nle 'if (/flushtest\.example/ || (/^\t/ && $out)) {$out=1;} else {$out=0;} print if ($out);' | wc -l` +nrecords=`filter_tree flushtest.example ns2/named_dump.db.$n | wc -l` [ $nrecords -eq 0 ] || ret=1 if [ $ret != 0 ]; then echo_i "failed"; fi status=`expr $status + $ret` @@ -192,7 +207,7 @@ n=`expr $n + 1` echo_i "check the number of cached records remaining ($n)" ret=0 dump_cache -nrecords=`grep -v '^;' ns2/named_dump.db.$n | perl -nle 'if (/flushtest\.example/ || (/^\t/ && $out)) {$out=1;} else {$out=0;} print if ($out);' | egrep '(TXT|ANY)' | wc -l` +nrecords=`filter_tree flushtest.example ns2/named_dump.db.$n | grep -v '^;' | egrep '(TXT|ANY)' | wc -l` [ $nrecords -eq 17 ] || { ret=1; echo_i "found $nrecords records expected 17"; } if [ $ret != 0 ]; then echo_i "failed"; fi status=`expr $status + $ret` @@ -210,7 +225,7 @@ n=`expr $n + 1` echo_i "check the number of cached records remaining ($n)" ret=0 dump_cache -nrecords=`grep -v '^;' ns2/named_dump.db.$n | perl -nle 'if (/flushtest\.example/ || (/^\t/ && $out)) {$out=1;} else {$out=0;} print if ($out);' | egrep '(TXT|ANY)' | wc -l` +nrecords=`filter_tree flushtest.example ns2/named_dump.db.$n | egrep '(TXT|ANY)' | wc -l` [ $nrecords -eq 1 ] || { ret=1; echo_i "found $nrecords records expected 1"; } if [ $ret != 0 ]; then echo_i "failed"; fi status=`expr $status + $ret`