Commit Graph
3719 Commits
Author SHA1 Message Date
Michał Kępień e56a528c70 Do not spam console if "git status --ignored" fails during tests
The "git status" command in Git versions before 1.7.2 does not support
the "--ignored" option.  Prevent spamming the console when running
system tests from a Git repository on a host with an ancient Git version
installed.

(cherry picked from commit 2be97feb46)
2018-07-13 12:14:46 +02:00
Michał Kępień 106b56d7c9 Remove IDN subtest from the "digdelv" system test
The output of certain "dig +idnout" invocations may be locale-dependent.
Remove the "dig +idnout" subtest from the "digdelv" system test as IDN
support is already thoroughly tested by the "idna" system test.

(cherry picked from commit fd30a03f2b)
2018-07-13 12:14:46 +02:00
Michał Kępień 7fe0f00a3b Improve error handling in idn_ace_to_locale()
While idn2_to_unicode_8zlz() takes a 'flags' argument, it is ignored and
thus cannot be used to perform IDN checks on the output string.

The bug in libidn2 versions before 2.0.5 was not that a call to
idn2_to_unicode_8zlz() with certain flags set did not cause IDN checks
to be performed.  The bug was that idn2_to_unicode_8zlz() did not check
whether a conversion can be performed between UTF-8 and the current
locale's character encoding.  In other words, with libidn2 version
2.0.5+, if the current locale's character encoding is ASCII, then
idn2_to_unicode_8zlz() will fail when it is passed any Punycode string
which decodes to a non-ASCII string, even if it is a valid IDNA2008
name.

Rework idn_ace_to_locale() so that invalid IDNA2008 names are properly
and consistently detected for all libidn2 versions and locales.

Update the "idna" system test accordingly.  Add checks for processing a
server response containing Punycode which decodes to an invalid IDNA2008
name.  Fix invalid subtest description.

(cherry picked from commit b896fc4972)
2018-07-13 12:14:14 +02:00
Michał Kępień 4c7eea4437 Include conf.sh from all prereq.sh scripts
Every prereq.sh script must include bin/tests/system/conf.sh, otherwise
if some prerequisite is not met, errors about echo_i not being found
will be printed instead of actual error messages.

(cherry picked from commit cc0e8cda71)
2018-07-13 08:23:15 +02:00
Mark AndrewsandEvan Hunt 9f126bac32 add test for bad dig option '+ednsopt=:' being handled gracefully
(cherry picked from commit ad86878d61)
2018-07-11 11:58:52 -07:00
Mukund SivaramanandEvan Hunt d54a38d733 Add system tests for "tcp-self" update-policy
(cherry picked from commit a7e6a584ea)
2018-07-11 11:05:37 -07:00
Ondřej Surý bbd82796bd Add .gitignore for PKCS#11 test files
(cherry picked from commit 96907d636d)
2018-07-11 08:11:21 +02:00
Michał Kępień 77929046ec Do not use Net::DNS::Nameserver in the "serve-stale" system test
Net::DNS versions older than 0.67 respond to queries sent to a
Net::DNS::Nameserver even if its ReplyHandler returns undef.  This makes
the "serve-stale" system test fail as it takes advantage of the newer
behavior.  Since the latest Net::DNS version available with stock
RHEL/CentOS 6 packages is 0.65 and we officially support that operating
system, bin/tests/system/serve-stale/ans2/ans.pl should behave
consistently for various Net::DNS versions.  Ensure that by reworking it
so that it does not use Net::DNS::Nameserver.

(cherry picked from commit c4209418a5)
2018-07-10 15:15:18 +02:00
Michał Kępień 655dccf4ea Fix a Net::DNS version quirk in the "resolver" system test
Net::DNS versions older than 0.68 insert a ./ANY RR into the QUESTION
section if the latter is empty.  Since the latest Net::DNS version
available with stock RHEL/CentOS 6 packages is 0.65 and we officially
support that operating system, bin/tests/system/resolver/ans8/ans.pl
should behave consistently for various Net::DNS versions.  Ensure that
by making handleUDP() return the query ID and flags generated by
Net::DNS with 8 zero bytes appended.

(cherry picked from commit 6c3c6aea37)
2018-07-10 15:07:38 +02:00
Witold Kręcicki e263fe91c0 Don't synthesize NXDOMAIN from NSEC for records under a DNAME
(cherry picked from commit 7f60bb39df)
2018-07-10 09:50:30 +02:00
Mukund SivaramanandEvan Hunt ed29b84e16 return FORMERR when question section is empty if COOKIE is not present
(cherry picked from commit 06d3106002)
2018-06-26 14:36:34 -07:00
Mark AndrewsandEvan Hunt 665f9093d2 construct a symtab of valid in-view targets then check that the target exists
(cherry picked from commit e01a4bcb20)
2018-06-26 09:03:47 -07:00
Michał Kępień 6a2c606690 Do not use IANA DNSSEC keys in the "rpz" system test
With "dnssec-validation" now defaulting to "auto", it needs to be
explicitly set to "yes" (the previous default value) for all validating
resolvers used in system tests.  Ensure that requirement is satisfied by
the resolvers used in the "rpz" system test.

(cherry picked from commit ff6b717955)
2018-06-26 12:43:47 +02:00
Michał Kępień cee0c23d0a Determine "rpz" system test mode based on $mode rather than $DNSRPS_TEST_MODE
Change 4897 modified the way the $DNSRPS_TEST_MODE variable is used in
bin/tests/system/rpz/tests.sh without updating all references to it,
which i.a. causes the $native and $dnsrps variables to not be set in the
default testing mode, effectively preventing failed checks from being
propagated to the final result of the test.  Use $mode instead of
$DNSRPS_TEST_MODE where appropriate to fix error handling in the "rpz"
system test.

(cherry picked from commit 730c6651a0)
2018-06-26 12:43:47 +02:00
Mukund SivaramanandMark Andrews 19bad5a7f3 Add system test
(cherry picked from commit 2bf388a31b)
2018-06-25 17:33:15 +10:00
Mark Andrews 4f332dc936 Restore default rrset-order to random.
(cherry picked from commit e8154b50d4)
2018-06-19 11:18:19 +10:00
Evan HuntandOndřej Surý be145bc8b6 add a regression test for default allow-recursion settings 2018-06-14 14:45:56 +02:00
Michał Kępień ff7015a0f8 Treat records below a DNAME as out-of-zone data
DNAME records indicate bottom of zone and thus no records below a DNAME
should be DNSSEC-signed or included in NSEC(3) chains.  Add a helper
function, has_dname(), for detecting DNAME records at a given node.
Prevent signing DNAME-obscured records.  Check that DNAME-obscured
records are not signed.

(cherry picked from commit 75c0d85fc4)
2018-06-13 12:57:03 +02:00
Michał Kępień 2cad382552 Add helper variables in mkeys system test
The keyfile and key ID for the original managed key do not change
throughout the mkeys system test.  Keep them in helper variables to
prevent calling "cat" multiple times and improve code readability.

(cherry picked from commit 68f056b2a0)
2018-06-13 07:59:07 +02:00
Michał Kępień dce66f7635 Replace duplicated code snippet with calls to helper functions
Reduce code duplication by replacing a code snippet repeated throughout
system tests using "trusted-keys" and/or "managed-keys" configuration
sections with calls to keyfile_to_{managed,trusted}_keys() helper
functions.

(cherry picked from commit 120af964ce)
2018-06-13 07:58:39 +02:00
Michał Kępień 21d3658bcb Add helper functions for converting keyfile data into configuration sections
Add a set of helper functions for system test scripts which enable
converting key data from a set of keyfiles to either a "trusted-keys"
section or a "managed-keys" section suitable for including in a
resolver's configuration file.

(cherry picked from commit 2392b8bc7d)
2018-06-13 07:58:10 +02:00
Evan Hunt 86787d0ad1 ensure that we attempt to validate glue if it's signed
- incidentally fixed a bug in the dnssec system test where TTLs in the
  answer section rather than the additional section were being checked

(cherry picked from commit 8d923a05a9)
2018-06-08 11:49:34 -07:00
Mukund SivaramanandMark Andrews a5933fa2bb Add system test 2018-06-08 16:34:29 +10:00
Mark Andrews 1783fa5aba add duplicate signature test
(cherry picked from commit 0db5b087ed)
2018-06-06 17:05:47 +10:00
Evan Hunt 3e1a0c2b62 use "ip" on linux, falling back to "ifconfig" when it isn't available
(cherry picked from commit d7c5400798)
2018-06-05 21:44:45 -07:00
Evan Hunt e4487b160c expand address range in ifconfig.sh to include more than one subnet
(cherry picked from commit 41b29a436b)
2018-06-05 21:44:45 -07:00
Mukund SivaramanandMark Andrews ac7c74425e Don't insert 2nd space between NSEC3 nexthash and typemap fields
(cherry picked from commit d4ea1edd2c)
2018-06-04 13:01:18 +10:00
Evan Hunt 59715255cf fix openbsd color-display problem in system test output
(cherry picked from commit 1e31fdb76d)
2018-05-25 13:01:25 -07:00
Evan Hunt 3e57b352be files were left in place after catz run because of non-portable bracket use
(cherry picked from commit af73e16c9c)
2018-05-24 16:18:24 -07:00
Evan Hunt 61de568197 copyrights 2018-05-23 09:52:09 -07:00
Mark Andrews 8ad96c7a76 add HOME.ARPA to the list of empty zones
(cherry picked from commit 10dd0b3efe)
2018-05-23 11:13:10 +10:00
Mark Andrews a14ecc9e46 fix handling of failed tests
(cherry picked from commit 4283f9552f)
2018-05-23 11:08:14 +10:00
Mukund SivaramanandOndřej Surý d6a4760031 Add system test
(cherry picked from commit 303391ea41)
2018-05-16 08:29:25 +02:00
Ondřej Surý c35de9b383 Remove $Id markers, Principal Author and Reviewed tags from the full source tree
(cherry picked from commit 55a10b7acd)
2018-05-11 14:19:35 +02:00
Ondřej Surý 1c003f1230 Update tests to not use '>&-' that closes file descriptor, but instead use correct redirection to '>/dev/null'
(cherry picked from commit 3f66b8acb0)
2018-05-11 13:11:10 +02:00
Ondřej SurýandMichał Kępień fa846bbed0 Address GCC 8 -Wstringop-truncation warning
(cherry picked from commit 9845c4c4a7)
2018-05-10 10:52:00 +02:00
Mark AndrewsandOndřej Surý 03e4dc4c6b add dnssec prerequisite test to rootkeysentinel
(cherry picked from commit e713f83064)
2018-05-03 16:42:47 +02:00
Michał KępieńandEvan Hunt 8a58a60772 Apply raw zone deltas to yet unsigned secure zones
When inline signing is enabled for a zone without creating signing keys
for it, changes subsequently applied to the raw zone will not be
reflected in the secure zone due to the dns_update_signaturesinc() call
inside receive_secure_serial() failing.  Given that an inline zone will
be served (without any signatures) even with no associated signing keys
being present, keep applying raw zone deltas to the secure zone until
keys become available in an attempt to follow the principle of least
astonishment.

(cherry picked from commit 6acf326969)
2018-04-25 12:09:04 -07:00
Mark AndrewsandEvan Hunt b9e6b124aa add system test for root-key-sentinel
(cherry picked from commit a23b305e6b)
2018-04-22 12:46:03 -07:00
Evan Hunt a6cbac45eb Alter distclean rule to prevent recursing into the same directory twice
Commit f87e0c03ee removed the "system" directory from the TESTDIRS
variable in bin/tests/Makefile.in in an attempt to fix "make distclean"
which was broken since commit 0d784de16a.  However, this change
prevented any system tests from being run when "make test" is invoked.

We now put it back into both SUBDIRS and TESTDIRS, but with a modified
rule to check for the existence of a Makefile in each subdirectory before
trying to run make there. This prevents "make distclean" from trying to
run again in a directory where it's already been run.

(cherry picked from commit 93ee6b8a22)
2018-04-10 20:04:31 -07:00
Michał KępieńandEvan Hunt 706f865a20 Do not access dns_fixedname_t fields directly
Employ dns_fixedname_name() and dns_fixedname_initname() to no longer
directly access dns_fixedname_t fields.

(cherry picked from commit 39ddf9991f)
2018-04-10 13:09:37 -07:00
Michał KępieńandEvan Hunt 0041aeb751 Use dns_fixedname_initname() where possible
Replace dns_fixedname_init() calls followed by dns_fixedname_name()
calls with calls to dns_fixedname_initname() where it is possible
without affecting current behavior and/or performance.

This patch was mostly prepared using Coccinelle and the following
semantic patch:

    @@
    expression fixedname, name;
    @@
    -	dns_fixedname_init(&fixedname);
    	...
    -	name = dns_fixedname_name(&fixedname);
    +	name = dns_fixedname_initname(&fixedname);

The resulting set of changes was then manually reviewed to exclude false
positives and apply minor tweaks.

It is likely that more occurrences of this pattern can be refactored in
an identical way.  This commit only takes care of the low-hanging fruit.

(cherry picked from commit 4df4a8e731)
2018-04-10 13:09:24 -07:00
Mark Andrews 342e146fe3 system should only be in SUBDIRS 2018-04-06 13:04:15 +10:00
Kevin ChenandOndřej Surý a8d7b3a12b Add a Net::DNS prereq for digdelv, fetchlimit, rpzrecurse, and zero
tests to avoid failed tests when Net::DNS is not present.

(cherry picked from commit 8b1b809ab4)
2018-04-04 23:00:56 +02:00
Stephen Morris 7f6d484d76 Check libidn2 version before proceding with one of the tests.
A known issue in libidn2 causes one of the tests of a fake A-label
to fail.  The problem should be corrected in version 2.0.5 of
libidn2.
2018-04-04 09:47:53 -04:00
Ondřej SurýandStephen Morris 5b9975e38f Use C.UTF-8 if available, and en_US.UTF-8 is available, otherwise do nothing and let the test break 2018-04-04 09:47:53 -04:00
Stephen Morris 5633f8afda Set known locale prior to running tests. 2018-04-04 09:47:53 -04:00
Stephen Morris 38fe1ce60f Fix check for the presence of IDNA. 2018-04-04 09:47:53 -04:00
Stephen Morris 5f00b9dad7 Added additional tests for invalid punycode strings. 2018-04-04 09:47:53 -04:00
Stephen Morris 2df1a2ef20 Initial set of IDNA tests. 2018-04-04 09:47:53 -04:00