resolved: tests for dns_search_domain_unlink()

This commit is contained in:
James Coglan
2024-07-23 13:22:34 +01:00
committed by Luca Boccassi
parent b65d6ab5dc
commit 5fef5552a6
+70
View File
@@ -71,4 +71,74 @@ TEST(dns_search_domain_new_link_limit) {
ASSERT_NOT_NULL(sd);
}
/* ================================================================
* dns_search_domain_unlink()
* ================================================================ */
TEST(dns_search_domain_unlink_system) {
Manager manager = {};
_cleanup_(dns_search_domain_unrefp) DnsSearchDomain *sd1 = NULL, *sd3 = NULL;
DnsSearchDomain *sd2 = NULL;
const char *names[2];
size_t i = 0;
dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_SYSTEM, NULL, "local");
ASSERT_NOT_NULL(sd1);
dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_SYSTEM, NULL, "vpn.example.com");
ASSERT_NOT_NULL(sd2);
dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_SYSTEM, NULL, "org");
ASSERT_NOT_NULL(sd3);
ASSERT_TRUE(sd2->linked);
ASSERT_EQ(manager.n_search_domains, 3u);
dns_search_domain_unlink(sd2);
ASSERT_EQ(manager.n_search_domains, 2u);
LIST_FOREACH(domains, d, manager.search_domains) {
names[i++] = DNS_SEARCH_DOMAIN_NAME(d);
}
ASSERT_STREQ(names[0], "local");
ASSERT_STREQ(names[1], "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;
const char *names[2];
unsigned int i = 0;
link_new(&manager, &link, 1);
ASSERT_NOT_NULL(link);
dns_search_domain_new(&manager, &sd1, DNS_SEARCH_DOMAIN_LINK, link, "local");
ASSERT_NOT_NULL(sd1);
dns_search_domain_new(&manager, &sd2, DNS_SEARCH_DOMAIN_LINK, link, "vpn.example.com");
ASSERT_NOT_NULL(sd2);
dns_search_domain_new(&manager, &sd3, DNS_SEARCH_DOMAIN_LINK, link, "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);
LIST_FOREACH(domains, d, link->search_domains) {
names[i++] = DNS_SEARCH_DOMAIN_NAME(d);
}
ASSERT_STREQ(names[0], "local");
ASSERT_STREQ(names[1], "org");
}
DEFINE_TEST_MAIN(LOG_DEBUG);