From 33527a9b0c318312120747321f7895e2cddac566 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 30 Jun 2025 17:17:22 +0900 Subject: [PATCH] test-dns-search-domain: several cleanups - 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 | 144 ++++++++++++--------------- 1 file changed, 61 insertions(+), 83 deletions(-) diff --git a/src/resolve/test-dns-search-domain.c b/src/resolve/test-dns-search-domain.c index e8fc7a48234..9778b3acd6a 100644 --- a/src/resolve/test-dns-search-domain.c +++ b/src/resolve/test-dns-search-domain.c @@ -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); } -- 2.47.3