if [ $count != 1 ]; then return 1; fi
fi
- if [ "$PERL_JSON" ]; then
+ if [ "$PERL_JSON" ] && [ -x "$JQ" ]; then
getxfrins json j$n || return 1
# We expect 4 transfers
- count=$(grep -c -E '"state":"(Zone Transfer Request|First Data|Receiving AXFR Data)"' xfrins.json.j$n)
+ count=$("$JQ" '.views._default.xfrins | length' <xfrins.json.j$n)
if [ $count != 4 ]; then return 1; fi
# We expect 3 of 4 to be retransfers
- count=$(grep -c -F '"firstrefresh":"No"' xfrins.json.j$n)
+ count=$("$JQ" '.views._default.xfrins | map(select(.firstrefresh == "No")) | length' <xfrins.json.j$n)
if [ $count != 3 ]; then return 1; fi
# We expect 1 of 4 to be a new transfer
- count=$(grep -c -F '"firstrefresh":"Yes"' xfrins.json.j$n)
+ count=$("$JQ" '.views._default.xfrins | map(select(.firstrefresh == "Yes")) | length' <xfrins.json.j$n)
if [ $count != 1 ]; then return 1; fi
fi
}
status=$((status + ret))
n=$((n + 1))
-if [ "$PERL_JSON" ]; then
+if [ "$PERL_JSON" ] && [ -x "$JQ" ]; then
echo_i "Checking zone transfer transports ($n)"
ret=0
cp xfrins.json.j$((n - 2)) xfrins.json.j$n
echo_i "Skipping XML statistics checks"
fi
- if $FEATURETEST --have-json-c && [ -x "${CURL}" ]; then
+ if $FEATURETEST --have-json-c && [ -x "${CURL}" ] && [ -x "${JQ}" ]; then
echo_i "getting JSON statisistcs for (synth-from-dnssec ${description};) ($n)"
ret=0
json=json.out$n
echo_i "check JSON for 'CoveringNSEC' with (synth-from-dnssec ${description};) ($n)"
ret=0
- count=$(grep '"CoveringNSEC":' $json | wc -l)
+ count=$("${JQ}" '.views | map(select(.resolver.cachestats | has("CoveringNSEC"))) | length' <$json)
test $count = 2 || ret=1
- zero=$(grep '"CoveringNSEC":0' $json | wc -l)
+ zero=$("${JQ}" '.views | map(select(.resolver.cachestats.CoveringNSEC == 0)) | length' <$json)
if [ ${synth} = yes ]; then
test $zero = 1 || ret=1
else
echo_i "check JSON for '$synthesized}' with (synth-from-dnssec ${description};) ($n)"
ret=0
if [ ${synth} = yes ]; then
- grep '"'$synthesized'":'$count'' $json >/dev/null || ret=1
+ test $("${JQ}" ".nsstats.${synthesized}" <$json) -eq $count || ret=1
else
- grep '"'$synthesized'":' $json >/dev/null && ret=1
+ "${JQ}" -e '.nsstats | has("'"${synthesized}"'")' <$json >/dev/null && ret=1
fi
n=$((n + 1))
if [ $ret != 0 ]; then echo_i "failed"; fi