]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Define basic test cases for dns__zone_updatesigs()
authorMichał Kępień <michal@isc.org>
Tue, 13 Mar 2018 13:06:13 +0000 (14:06 +0100)
committerEvan Hunt <each@isc.org>
Thu, 10 May 2018 16:45:50 +0000 (09:45 -0700)
Add some basic test cases ensuring dns__zone_updatesigs() behaves as
expected.

(cherry picked from commit 8b9d2c27b4b96bd0f981e8a8fb608a3bfcdb1e0a)
(cherry picked from commit 3e93e4bb62fbde95053ca624ad54d3f93a503240)
(cherry picked from commit 505267f320c2302f967201669d1fe5d96286aba5)
(cherry picked from commit 5a957ec9e12f2ea9548aa995c2a132c881fb6b3d)

lib/dns/tests/sigs_test.c

index 3029501751b9424c54fe23760484aa4556b3f8b0..637c5aba7ea1b0b60fd63e2685063660c84735e1 100644 (file)
@@ -319,8 +319,104 @@ ATF_TC_BODY(updatesigs, tc) {
         * contents introduced by each test are preserved between tests.
         */
 
+       const zonechange_t changes_add[] = {
+               { DNS_DIFFOP_ADD, "foo.example", 300, "TXT", "foo" },
+               { DNS_DIFFOP_ADD, "bar.example", 600, "TXT", "bar" },
+               ZONECHANGE_SENTINEL,
+       };
+       const zonediff_t zonediff_add[] = {
+               { DNS_DIFFOP_ADDRESIGN, "foo.example", 300, "TXT" },
+               { DNS_DIFFOP_ADD, "foo.example", 300, "TXT" },
+               { DNS_DIFFOP_ADDRESIGN, "bar.example", 600, "TXT" },
+               { DNS_DIFFOP_ADD, "bar.example", 600, "TXT" },
+               ZONEDIFF_SENTINEL,
+       };
+       const updatesigs_test_params_t test_add = {
+               .description = "add new RRsets",
+               .changes = changes_add,
+               .zonediff = zonediff_add,
+       };
+
+       const zonechange_t changes_append[] = {
+               { DNS_DIFFOP_ADD, "foo.example", 300, "TXT", "foo1" },
+               { DNS_DIFFOP_ADD, "foo.example", 300, "TXT", "foo2" },
+               ZONECHANGE_SENTINEL,
+       };
+       const zonediff_t zonediff_append[] = {
+               { DNS_DIFFOP_DELRESIGN, "foo.example", 300, "TXT" },
+               { DNS_DIFFOP_ADDRESIGN, "foo.example", 300, "TXT" },
+               { DNS_DIFFOP_ADD, "foo.example", 300, "TXT" },
+               { DNS_DIFFOP_ADD, "foo.example", 300, "TXT" },
+               ZONEDIFF_SENTINEL,
+       };
+       const updatesigs_test_params_t test_append = {
+               .description = "append multiple RRs to an existing RRset",
+               .changes = changes_append,
+               .zonediff = zonediff_append,
+       };
+
+       const zonechange_t changes_replace[] = {
+               { DNS_DIFFOP_DEL, "bar.example", 600, "TXT", "bar" },
+               { DNS_DIFFOP_ADD, "bar.example", 600, "TXT", "rab" },
+               ZONECHANGE_SENTINEL,
+       };
+       const zonediff_t zonediff_replace[] = {
+               { DNS_DIFFOP_DELRESIGN, "bar.example", 600, "TXT" },
+               { DNS_DIFFOP_ADDRESIGN, "bar.example", 600, "TXT" },
+               { DNS_DIFFOP_DEL, "bar.example", 600, "TXT" },
+               { DNS_DIFFOP_ADD, "bar.example", 600, "TXT" },
+               ZONEDIFF_SENTINEL,
+       };
+       const updatesigs_test_params_t test_replace = {
+               .description = "replace an existing RRset",
+               .changes = changes_replace,
+               .zonediff = zonediff_replace,
+       };
+
+       const zonechange_t changes_delete[] = {
+               { DNS_DIFFOP_DEL, "bar.example", 600, "TXT", "rab" },
+               ZONECHANGE_SENTINEL,
+       };
+       const zonediff_t zonediff_delete[] = {
+               { DNS_DIFFOP_DELRESIGN, "bar.example", 600, "TXT" },
+               { DNS_DIFFOP_DEL, "bar.example", 600, "TXT" },
+               ZONEDIFF_SENTINEL,
+       };
+       const updatesigs_test_params_t test_delete = {
+               .description = "delete an existing RRset",
+               .changes = changes_delete,
+               .zonediff = zonediff_delete,
+       };
+
+       const zonechange_t changes_mixed[] = {
+               { DNS_DIFFOP_ADD, "baz.example", 900, "TXT", "baz1" },
+               { DNS_DIFFOP_ADD, "baz.example", 900, "A", "127.0.0.1" },
+               { DNS_DIFFOP_ADD, "baz.example", 900, "TXT", "baz2" },
+               { DNS_DIFFOP_ADD, "baz.example", 900, "AAAA", "::1" },
+               ZONECHANGE_SENTINEL,
+       };
+       const zonediff_t zonediff_mixed[] = {
+               { DNS_DIFFOP_ADDRESIGN, "baz.example", 900, "TXT" },
+               { DNS_DIFFOP_ADD, "baz.example", 900, "TXT" },
+               { DNS_DIFFOP_ADD, "baz.example", 900, "TXT" },
+               { DNS_DIFFOP_ADDRESIGN, "baz.example", 900, "A" },
+               { DNS_DIFFOP_ADD, "baz.example", 900, "A" },
+               { DNS_DIFFOP_ADDRESIGN, "baz.example", 900, "AAAA" },
+               { DNS_DIFFOP_ADD, "baz.example", 900, "AAAA" },
+               ZONEDIFF_SENTINEL,
+       };
+       const updatesigs_test_params_t test_mixed = {
+               .description = "add different RRsets with common owner name",
+               .changes = changes_mixed,
+               .zonediff = zonediff_mixed,
+       };
+
        const updatesigs_test_params_t *tests[] = {
-               NULL,
+               &test_add,
+               &test_append,
+               &test_replace,
+               &test_delete,
+               &test_mixed,
        };
 
        /*