]> 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)
committerMichał Kępień <michal@isc.org>
Wed, 9 May 2018 11:32:11 +0000 (13:32 +0200)
Add some basic test cases ensuring dns__zone_updatesigs() behaves as
expected.

lib/dns/tests/sigs_test.c

index 885bbfa00dbbd926292d610e40638e6e277e6ab8..90f513aa62dacf17deca2df8b7ea3e5ba8a67f93 100644 (file)
@@ -317,8 +317,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,
        };
 
        /*