resolved: tests for dns_search_domain_find()
authorJames Coglan <james@neighbourhood.ie>
Fri, 31 May 2024 14:15:48 +0000 (15:15 +0100)
committerLuca Boccassi <bluca@debian.org>
Tue, 23 Jul 2024 12:22:34 +0000 (13:22 +0100)
src/resolve/test-dns-search-domain.c

index b0d9a01fae2812d8f2c33ef9085a8987149f7757..45adb9129cb4f85a947bda89b632b0c9489fc5dd 100644 (file)
@@ -259,4 +259,34 @@ TEST(dns_search_domain_unlink_all) {
         ASSERT_EQ(manager.n_search_domains, 0u);
 }
 
+/* ================================================================
+ * dns_search_domain_find()
+ * ================================================================ */
+
+TEST(dns_search_domain_find) {
+        Manager manager = {};
+        _cleanup_(dns_search_domain_unrefp) DnsSearchDomain *sd1 = NULL, *sd2 = NULL, *sd3 = NULL, *ret = NULL;
+
+        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(dns_search_domain_find(sd1, "local", &ret));
+        ASSERT_TRUE(ret == sd1);
+
+        ASSERT_TRUE(dns_search_domain_find(sd1, "org", &ret));
+        ASSERT_TRUE(ret == sd3);
+
+        ASSERT_TRUE(dns_search_domain_find(sd1, "vpn.example.com", &ret));
+        ASSERT_TRUE(ret == sd2);
+
+        ASSERT_FALSE(dns_search_domain_find(sd1, "co.uk", &ret));
+        ASSERT_NULL(ret);
+}
+
 DEFINE_TEST_MAIN(LOG_DEBUG);