Add another prefetch check in the resolver system test

The test triggers a prefetch, but fails to check if it acutally
happened, which prevented it from catching a bug when the record's
TTL value matches the configured prefetch eligibility value.

Check that prefetch happened by comparing the TTL values.
This commit is contained in:
Aram Sargsyan 2022-10-18 13:06:19 +00:00
parent 87efea8955
commit 89fa9a6592
2 changed files with 7 additions and 3 deletions

View file

@ -21,9 +21,9 @@ $TTL 300
ns A 10.53.0.4
fetch.tld. NS ns.fetch.tld.
ns.fetch.tld. A 10.53.0.6
fetchall 10 TXT A short ttl
fetchall 10 A 1.2.3.4
fetchall 10 AAAA ::1
fetchall 10 AAAA ::1
fetchall 10 TXT A short ttl
no-edns-version.tld. NS ns.no-edns-version.tld.
ns.no-edns-version.tld. A 10.53.0.6
edns-version.tld. NS ns.edns-version.tld.

View file

@ -444,8 +444,12 @@ sleep "${ttl1:-0}"
dig_with_opts @10.53.0.5 fetchall.tld any > dig.out.2.${n} || ret=1
ttl2=$(awk '/"A" "short" "ttl"/ { print $2 }' dig.out.2.${n})
sleep 1
# check that the nameserver is still alive
# check that prefetch occurred;
# note that only one record is prefetched, which is the TXT record in this case,
# because of the order of the records in the cache
dig_with_opts @10.53.0.5 fetchall.tld any > dig.out.3.${n} || ret=1
ttl3=$(awk '/"A" "short" "ttl"/ { print $2 }' dig.out.3.${n})
test "${ttl3:-0}" -gt "${ttl2:-1}" || ret=1
if [ $ret != 0 ]; then echo_i "failed"; fi
status=$((status + ret))