Branch rt46632 introduces multiple fixes and improvements for the
reclimit system test. Technical details can be found in commit log
messages; here is an overview (the speedup figures below were taken from
my machine and may be different elsewhere):
- $TESTSOCK6 is no longer erroneously consulted for detecting IPv6
support, which fixes the consistent failures mentioned above.
- Commit a0f9aaa103 intentionally added delays to the test, which is
the likely reason it has not been noticed that these delays are
unproportional to the number of queries sent during the test. The
reason for that is that adding these delays triggers a minor bug in
ADB-resolver interaction which forces named to wait longer than
necessary before responding with SERVFAIL. Fixing this issue
stripped ~20 seconds off the execution time for reclimit.
- ans2/ans.pl was improved to prevent a fixed-length sleep upon every
query. Doing this stripped another ~30 seconds off execution time.
- ans4/ans.pl was integrated into ans2/ans.pl, decreasing code
duplication and stripping another ~2 seconds off execution time.
- ns3 is now reset in a consistent manner between checks, enabling 4
fixed-length sleeps to be removed, for an 8-second speedup.
- A hard requirement for Net::DNS > 0.78 was added to prereq.sh due to
a bug in older versions which causes false negatives (and is likely
the culprit behind the last failure linked to above as MacMini_64_new
uses Net::DNS 0.74).
- Output formatting was slightly improved.
With these fixes applied, the reclimit system test completes in less
than 3 seconds on my machine. It should still correctly handle builds
without IPv6 support and slower machines, as indicated by a series of
tests I ran on CentOS 7 (with Net::DNS updated from the packaged 0.72
version), Fedora 25, FreeBSD 11.0, OpenBSD 6.1 and Solaris 10. Please
review.