- 20 Mar, 2019 1 commit
-
-
Michał Kępień authored
"rndc dumpdb" works asynchronously, i.e. the requested dump may not yet be fully written to disk by the time "rndc" returns. Prevent false positives for the "serve-stale" system test by only checking dump contents after the line indicating that it is complete is written.
-
- 19 Mar, 2019 14 commits
-
-
Ondřej Surý authored
-
Ondřej Surý authored
Reduce the software entropy in the BIND source code by removing unused bin/tests/virtual-time/ directory.
-
Matthijs Mekking authored
-
Matthijs Mekking authored
This tests both the cases when the DLV trust anchor is of an unsupported or disabled algorithm, as well as if the DLV zone contains a key with an unsupported or disabled algorithm.
-
Some values returned by dstkey_fromconfig() indicate that key loading should be interrupted, others do not. There are also certain subsequent checks to be made after parsing a key from configuration and the results of these checks also affect the key loading process. All of this complicates the key loading logic. In order to make the relevant parts of the code easier to follow, reduce the body of the inner for loop in load_view_keys() to a single call to a new function, process_key(). Move dstkey_fromconfig() error handling to process_key() as well and add comments to clearly describe the effects of various key loading errors.
-
Matthijs Mekking authored
-
Matthijs Mekking authored
More specifically: ignore configured trusted and managed keys that match a disabled algorithm. The behavioral change is that associated responses no longer SERVFAIL, but return insecure.
-
Matthijs Mekking authored
Move from conf.sh.in to conf.sh.common as they will also need to be added to conf.sh.win32. Add variables for testing disabled algorithms.
-
Matthijs Mekking authored
-
Matthijs Mekking authored
-
Ondřej Surý authored
-
Ondřej Surý authored
-
Michał Kępień authored
bin/tests/system/stop.pl only waits for the PID file to be cleaned up while named cleans up the lock file after the PID file. Thus, the aforementioned script may consider a named instance to be fully shut down when in fact it is not. Fix by also checking whether the lock file exists when determining a given instance's shutdown status. This change assumes that if a named instance uses a lock file, it is called "named.lock". Also rename clean_pid_file() to pid_file_exists(), so that it is called more appropriately (it does not clean up the PID file itself, it only returns the server's identifier if its PID file is not yet cleaned up).
-
Michał Kępień authored
MR !1141 broke the way stop.pl is invoked when start.pl fails: - start.pl changes the working directory to $testdir/$server before attempting to start $server, - commit 27ee629e causes the $testdir variable in stop.pl to be determined using the $SYSTEMTESTTOP environment variable, which is set to ".." by all tests.sh scripts, - commit e227815a makes start.pl pass $test (the test's name) rather than $testdir (the path to the test's directory) to stop.pl when a given server fails to start. Thus, when a server is restarted from within a tests.sh script and such a restart fails, stop.pl attempts to look for the server directory in a nonexistent location ($testdir/$server/../$test, i.e. $testdir/$test, instead of $testdir/../$test). Fix the issue by changing the working directory before stop.pl is invoked in the scenario described above.
-
- 15 Mar, 2019 1 commit
-
-
Evan Hunt authored
-
- 14 Mar, 2019 2 commits
-
-
Test named logs control characters, special characters and large cmd line respectively as octal escaped, special escaped and elipsis
-
-
- 12 Mar, 2019 2 commits
-
-
Michał Kępień authored
On Unix systems, the CYGWIN environment variable is not set at all when BIND system tests are run. If a named instance crashes on shutdown or otherwise fails to clean up its pidfile and the CYGWIN environment variable is not set, stop.pl will print an uninitialized value warning on standard error. Prevent this by using defined().
-
ifconfig.sh depends on config.guess for platform guessing. It uses it to choose between ifconfig or ip tools to configure interfaces. If system-wide automake script is installed and local was not found, use platform guess. It should work well on mostly any sane platform. Still prefers local guess, but passes when if cannot find it.
-
- 11 Mar, 2019 7 commits
-
-
Michał Kępień authored
When a zone is converted from NSEC to NSEC3, the private record at zone apex indicating that NSEC3 chain creation is in progress may be removed during a different (later) zone_nsec3chain() call than the one which adds the NSEC3PARAM record. The "delzsk.example" zone check only waits for the NSEC3PARAM record to start appearing in dig output while private records at zone apex directly affect "rndc signing -list" output. This may trigger false positives for the "autosign" system test as the output of the "rndc signing -list" command used for checking ZSK deletion progress may contain extra lines which are not accounted for. Ensure the private record is removed from zone apex before triggering ZSK deletion in the aforementioned check. Also future-proof the ZSK deletion progress check by making it only look at lines it should care about.
-
-
Michał Kępień authored
For checks querying a named instance with "dnssec-accept-expired yes;" set, authoritative responses have a TTL of 300 seconds. Assuming empty resolver cache, TTLs of RRsets in the ANSWER section of the first response to a given query will always match their authoritative counterparts. Also note that for a DNSSEC-validating named resolver, validated RRsets replace any existing non-validated RRsets with the same owner name and type, e.g. cached from responses received while resolving CD=1 queries. Since TTL capping happens before a validated RRset is inserted into the cache and RRSIG expiry time does not impose an upper TTL bound when "dnssec-accept-expired yes;" is set and, as pointed out above, the original TTLs of the relevant RRsets equal 300 seconds, the RRsets in the ANSWER section of the responses to expiring.example/SOA and expired.example/SOA queries sent with CD=0 should always be exactly 120 seconds, never a lower value. Make the relevant TTL checks stricter to reflect that.
-
Michał Kępień authored
Always expecting a TTL of exactly 300 seconds for RRsets found in the ADDITIONAL section of responses received for CD=1 queries sent during TTL capping checks is too strict since these responses will contain records cached from multiple DNS messages received during the resolution process. In responses to queries sent with CD=1, ns.expiring.example/A in the ADDITIONAL section will come from a delegation returned by ns2 while the ANSWER section will come from an authoritative answer returned by ns3. If the queries to ns2 and ns3 happen at different Unix timestamps, RRsets cached from the older response will have a different TTL by the time they are returned to dig, triggering a false positive. Allow a safety margin of 60 seconds for checks inspecting the ADDITIONAL section of responses to queries sent with CD=1 to fix the issue. A safety margin this large is likely overkill, but it is used nevertheless for consistency with similar safety margins used in other TTL capping checks.
-
Michał Kępień authored
Commit c032c54d inadvertently changed the DNS message section inspected by one of the TTL capping checks from ADDITIONAL to ANSWER, introducing a discrepancy between that check's description and its actual meaning. Revert to inspecting the ADDITIONAL section in the aforementioned check.
-
Michał Kępień authored
Changes introduced by commit 6b8e4d6e were incomplete as not all time-sensitive checks were updated to match revised "nta-lifetime" and "nta-recheck" values. Prevent rare false positives by updating all NTA-related checks so that they work reliably with "nta-lifetime 12s;" and "nta-recheck 9s;". Update comments as well to prevent confusion.
-
-
- 08 Mar, 2019 5 commits
-
-
Ondřej Surý authored
-
Ondřej Surý authored
-
Ondřej Surý authored
-
Michał Kępień authored
During "dlv" system test setup, the "sed" regex used for mangling the DNSKEY RRset for the "druz" zone does not include the plus sign ("+"), which may: - cause the replacement to happen near the end of DNSKEY RDATA, which can cause the latter to become an invalid Base64 string, - prevent the replacement from being performed altogether. Both cases prevent the "dlv" system test from behaving as intended and may trigger false positives. Add the missing character to the aforementioned regex to ensure the replacement is always performed on bytes 10-25 of DNSKEY RDATA.
-
-
- 07 Mar, 2019 2 commits
-
-
Evan Hunt authored
-
-
- 06 Mar, 2019 1 commit
-
-
Mark Andrews authored
-
- 05 Mar, 2019 1 commit
-
-
The "check key refreshes are resumed after root servers become available" check may trigger a false positive for the "mkeys" system test if the second example/TXT query sent by dig is received by ns5 less than a second after it receives a REFUSED response to the upstream query it sends to ns1 in order to resolve the first example/TXT query sent by dig. Since that REFUSED response from ns1 causes ns5 to return a SERVFAIL answer to dig, example/TXT is added to the SERVFAIL cache, which is enabled by default with a TTL of 1 second. This in turn may cause ns5 to return a cached SERVFAIL response to the second example/TXT query sent by dig, i.e. make ns5 not perform full query processing as expected by the check. Since the primary purpose of the check in question is to ensure that key refreshes are resumed once initially unavailable root servers become available, the optimal solution appears to be disabling SERVFAIL cache for ns5 as doing that still allows the check to fulfill its purpose and it is arguably more prudent than always sleeping for 1 second.
-
- 04 Mar, 2019 2 commits
-
-
Matthijs Mekking authored
For consistency between all system tests, add missing setup.sh scripts for tests which do not have one yet and ensure every setup.sh script calls its respective clean.sh script.
-
Matthijs Mekking authored
Temporary files created by a given system test should be removed by its clean.sh script, not its setup.sh script. Remove redundant "rm" invocations from setup.sh scripts. Move required "rm" invocations from setup.sh scripts to their corresponding clean.sh scripts.
-
- 01 Mar, 2019 2 commits
-
-
Petr Menšík authored
Do not use variable from configure to detect the feature.
-
If dots are not escaped in the "1.2.3.4" regular expressions used for checking whether IP address 1.2.3.4 is present in the tested resolver's answers, a COOKIE that matches such a regular expression will trigger a false positive for the "resolver" system test. Properly escape dots in the aforementioned regular expressions to prevent that from happening.
-