]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-dns-search-domain: several cleanups
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 30 Jun 2025 08:17:22 +0000 (17:17 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 2 Jul 2025 23:46:26 +0000 (08:46 +0900)
- use STRV_MAKE() macro,
- add several missing assertions,
- use more suitable ASSERT_XYZ() macros,
- drop TEST(dns_search_domain_unlink_all), as it is already tested in
  TEST(dns_search_domain_new_system_limit).

src/resolve/test-dns-search-domain.c

index e8fc7a482346a8416c3934c2b9662e29a3173d01..9778b3acd6a17caec9d9ca44479ec5e4668c85b3 100644 (file)
@@ -3,15 +3,16 @@
 #include "resolved-dns-search-domain.h"
 #include "resolved-link.h"
 #include "resolved-manager.h"
+#include "strv.h"
 #include "tests.h"
 
-static void check_domains(DnsSearchDomain *head, const char **expected, size_t n) {
-        size_t i = 0;
-
+static void check_domains(DnsSearchDomain *head, char * const *expected) {
         ASSERT_NOT_NULL(head);
         ASSERT_NOT_NULL(expected);
 
+        size_t i = 0, n = strv_length(expected);
         LIST_FOREACH(domains, d, head) {
+                ASSERT_LT(i, n);
                 ASSERT_STREQ(DNS_SEARCH_DOMAIN_NAME(d), expected[i]);
                 i++;
         }
@@ -36,7 +37,7 @@ TEST(dns_search_domain_new_system) {
 
 TEST(dns_search_domain_new_system_limit) {
         Manager manager = {};
-        DnsSearchDomain *sd = NULL;
+        DnsSearchDomain *sd;
 
         for (size_t i = 0; i < MANAGER_SEARCH_DOMAINS_MAX; i++) {
                 ASSERT_OK(dns_search_domain_new(&manager, &sd, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local"));
@@ -44,15 +45,17 @@ TEST(dns_search_domain_new_system_limit) {
                 ASSERT_EQ(manager.n_search_domains, i + 1);
         }
 
+        sd = NULL;
         ASSERT_ERROR(dns_search_domain_new(&manager, &sd, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local"), E2BIG);
-        ASSERT_NOT_NULL(sd);
+        ASSERT_NULL(sd);
 
         dns_search_domain_unlink_all(manager.search_domains);
+        ASSERT_EQ(manager.n_search_domains, 0u);
 }
 
 TEST(dns_search_domain_new_link) {
         Manager manager = {};
-        Link *link = NULL;
+        Link *link;
         _cleanup_(dns_search_domain_unrefp) DnsSearchDomain *sd = NULL;
 
         ASSERT_OK(link_new(&manager, &link, 1));
@@ -68,7 +71,7 @@ TEST(dns_search_domain_new_link) {
 TEST(dns_search_domain_new_link_limit) {
         Manager manager = {};
         _cleanup_(link_freep) Link *link = NULL;
-        DnsSearchDomain *sd = NULL;
+        DnsSearchDomain *sd;
 
         ASSERT_OK(link_new(&manager, &link, 1));
         ASSERT_NOT_NULL(link);
@@ -79,8 +82,9 @@ TEST(dns_search_domain_new_link_limit) {
                 ASSERT_EQ(link->n_search_domains, i + 1);
         }
 
+        sd = NULL;
         ASSERT_ERROR(dns_search_domain_new(&manager, &sd, DNS_SEARCH_DOMAIN_LINK, link, /* delegate= */ NULL, "local"), E2BIG);
-        ASSERT_NOT_NULL(sd);
+        ASSERT_NULL(sd);
 }
 
 /* ================================================================
@@ -89,56 +93,50 @@ TEST(dns_search_domain_new_link_limit) {
 
 TEST(dns_search_domain_unlink_system) {
         Manager manager = {};
-        _cleanup_(dns_search_domain_unrefp) DnsSearchDomain *sd1 = NULL, *sd3 = NULL;
-        DnsSearchDomain *sd2 = NULL;
+        _cleanup_(dns_search_domain_unrefp) DnsSearchDomain *sd1 = NULL, *sd2 = NULL, *sd3 = NULL;
 
-        dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local"));
         ASSERT_NOT_NULL(sd1);
 
-        dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "vpn.example.com");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "vpn.example.com"));
         ASSERT_NOT_NULL(sd2);
 
-        dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "org");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "org"));
         ASSERT_NOT_NULL(sd3);
 
         ASSERT_TRUE(sd2->linked);
         ASSERT_EQ(manager.n_search_domains, 3u);
 
-        dns_search_domain_unlink(sd2);
-
+        dns_search_domain_unlink(TAKE_PTR(sd2));
         ASSERT_EQ(manager.n_search_domains, 2u);
 
-        const char *expected[] = { "local", "org" };
-        check_domains(manager.search_domains, expected, 2);
+        check_domains(manager.search_domains, STRV_MAKE("local", "org"));
 }
 
 TEST(dns_search_domain_unlink_link) {
         Manager manager = {};
-        Link *link = NULL;
-        _cleanup_(dns_search_domain_unrefp) DnsSearchDomain *sd1 = NULL, *sd3 = NULL;
-        DnsSearchDomain *sd2 = NULL;
+        _cleanup_(link_freep) Link *link = NULL;
+        DnsSearchDomain *sd1, *sd2, *sd3;
 
         ASSERT_OK(link_new(&manager, &link, 1));
         ASSERT_NOT_NULL(link);
 
-        dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_LINK, link, /* delegate= */ NULL, "local");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_LINK, link, /* delegate= */ NULL, "local"));
         ASSERT_NOT_NULL(sd1);
 
-        dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_LINK, link, /* delegate= */ NULL, "vpn.example.com");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_LINK, link, /* delegate= */ NULL, "vpn.example.com"));
         ASSERT_NOT_NULL(sd2);
 
-        dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_LINK, link, /* delegate= */ NULL, "org");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_LINK, link, /* delegate= */ NULL, "org"));
         ASSERT_NOT_NULL(sd3);
 
         ASSERT_TRUE(sd2->linked);
         ASSERT_EQ(link->n_search_domains, 3u);
 
         dns_search_domain_unlink(sd2);
-
         ASSERT_EQ(link->n_search_domains, 2u);
 
-        const char *expected[] = { "local", "org" };
-        check_domains(link->search_domains, expected, 2);
+        check_domains(link->search_domains, STRV_MAKE("local", "org"));
 }
 
 /* ================================================================
@@ -149,13 +147,13 @@ TEST(dns_search_domain_mark_all) {
         Manager manager = {};
         _cleanup_(dns_search_domain_unrefp) DnsSearchDomain *sd1 = NULL, *sd2 = NULL, *sd3 = NULL;
 
-        dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local"));
         ASSERT_NOT_NULL(sd1);
 
-        dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "vpn.example.com");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "vpn.example.com"));
         ASSERT_NOT_NULL(sd2);
 
-        dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "org");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "org"));
         ASSERT_NOT_NULL(sd3);
 
         ASSERT_FALSE(sd1->marked);
@@ -177,27 +175,27 @@ TEST(dns_search_domain_move_back_and_unmark) {
         Manager manager = {};
         _cleanup_(dns_search_domain_unrefp) DnsSearchDomain *sd1 = NULL, *sd2 = NULL, *sd3 = NULL;
 
-        dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local"));
         ASSERT_NOT_NULL(sd1);
 
-        dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "vpn.example.com");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "vpn.example.com"));
         ASSERT_NOT_NULL(sd2);
 
-        dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "org");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "org"));
         ASSERT_NOT_NULL(sd3);
 
         dns_search_domain_move_back_and_unmark(sd1);
-        check_domains(manager.search_domains, (const char *[]) { "local", "vpn.example.com", "org" }, 3);
+        check_domains(manager.search_domains, STRV_MAKE("local", "vpn.example.com", "org"));
 
-        sd1->marked = 1;
+        sd1->marked = true;
 
         dns_search_domain_move_back_and_unmark(sd1);
-        check_domains(manager.search_domains, (const char *[]) { "vpn.example.com", "org", "local" }, 3);
+        check_domains(manager.search_domains, STRV_MAKE("vpn.example.com", "org", "local"));
 
-        sd3->marked = 1;
+        sd3->marked = true;
 
         dns_search_domain_move_back_and_unmark(sd3);
-        check_domains(manager.search_domains, (const char *[]) { "vpn.example.com", "local", "org" }, 3);
+        check_domains(manager.search_domains, STRV_MAKE("vpn.example.com", "local", "org"));
 }
 
 /* ================================================================
@@ -206,55 +204,34 @@ TEST(dns_search_domain_move_back_and_unmark) {
 
 TEST(dns_search_domain_unlink_marked) {
         Manager manager = {};
-        DnsSearchDomain *sd1 = NULL, *sd2 = NULL;
-        _cleanup_(dns_search_domain_unrefp) DnsSearchDomain *sd3 = NULL;
+        _cleanup_(dns_search_domain_unrefp) DnsSearchDomain *sd1 = NULL, *sd2 = NULL, *sd3 = NULL;
 
-        dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local"));
         ASSERT_NOT_NULL(sd1);
 
-        dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "vpn.example.com");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "vpn.example.com"));
         ASSERT_NOT_NULL(sd2);
 
-        dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "org");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "org"));
         ASSERT_NOT_NULL(sd3);
 
-        dns_search_domain_unlink_marked(sd1);
+        ASSERT_FALSE(dns_search_domain_unlink_marked(sd1));
         ASSERT_EQ(manager.n_search_domains, 3u);
-        check_domains(manager.search_domains, (const char *[]) { "local", "vpn.example.com", "org" }, 3);
+        check_domains(manager.search_domains, STRV_MAKE("local", "vpn.example.com", "org"));
 
-        sd2->marked = 1;
+        sd2->marked = true;
 
-        dns_search_domain_unlink_marked(sd1);
+        ASSERT_TRUE(dns_search_domain_unlink_marked(sd1));
+        TAKE_PTR(sd2);
         ASSERT_EQ(manager.n_search_domains, 2u);
-        check_domains(manager.search_domains, (const char *[]) { "local", "org" }, 2);
+        check_domains(manager.search_domains, STRV_MAKE("local", "org"));
 
-        sd1->marked = 1;
+        sd1->marked = true;
 
-        dns_search_domain_unlink_marked(sd1);
+        ASSERT_TRUE(dns_search_domain_unlink_marked(sd1));
+        TAKE_PTR(sd1);
         ASSERT_EQ(manager.n_search_domains, 1u);
-        check_domains(manager.search_domains, (const char *[]) { "org" }, 1);
-}
-
-/* ================================================================
- * dns_search_domain_unlink_all()
- * ================================================================ */
-
-TEST(dns_search_domain_unlink_all) {
-        Manager manager = {};
-        DnsSearchDomain *sd1 = NULL, *sd2 = NULL, *sd3 = NULL;
-
-        dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local");
-        ASSERT_NOT_NULL(sd1);
-
-        dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "vpn.example.com");
-        ASSERT_NOT_NULL(sd2);
-
-        dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "org");
-        ASSERT_NOT_NULL(sd3);
-
-        dns_search_domain_unlink_all(sd1);
-
-        ASSERT_EQ(manager.n_search_domains, 0u);
+        check_domains(manager.search_domains, STRV_MAKE("org"));
 }
 
 /* ================================================================
@@ -263,27 +240,28 @@ TEST(dns_search_domain_unlink_all) {
 
 TEST(dns_search_domain_find) {
         Manager manager = {};
-        _cleanup_(dns_search_domain_unrefp) DnsSearchDomain *sd1 = NULL, *sd2 = NULL, *sd3 = NULL, *ret = NULL;
+        _cleanup_(dns_search_domain_unrefp) DnsSearchDomain *sd1 = NULL, *sd2 = NULL, *sd3 = NULL;
+        DnsSearchDomain *ret;
 
-        dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "local"));
         ASSERT_NOT_NULL(sd1);
 
-        dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "vpn.example.com");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "vpn.example.com"));
         ASSERT_NOT_NULL(sd2);
 
-        dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "org");
+        ASSERT_OK(dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_SYSTEM, /* link= */ NULL, /* delegate= */ NULL, "org"));
         ASSERT_NOT_NULL(sd3);
 
-        ASSERT_TRUE(dns_search_domain_find(sd1, "local", &ret));
-        ASSERT_TRUE(ret == sd1);
+        ASSERT_OK_POSITIVE(dns_search_domain_find(sd1, "local", &ret));
+        ASSERT_PTR_EQ(ret, sd1);
 
-        ASSERT_TRUE(dns_search_domain_find(sd1, "org", &ret));
-        ASSERT_TRUE(ret == sd3);
+        ASSERT_OK_POSITIVE(dns_search_domain_find(sd1, "org", &ret));
+        ASSERT_PTR_EQ(ret, sd3);
 
-        ASSERT_TRUE(dns_search_domain_find(sd1, "vpn.example.com", &ret));
-        ASSERT_TRUE(ret == sd2);
+        ASSERT_OK_POSITIVE(dns_search_domain_find(sd1, "vpn.example.com", &ret));
+        ASSERT_PTR_EQ(ret, sd2);
 
-        ASSERT_FALSE(dns_search_domain_find(sd1, "co.uk", &ret));
+        ASSERT_OK_ZERO(dns_search_domain_find(sd1, "co.uk", &ret));
         ASSERT_NULL(ret);
 }