]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: tests for dns_resource_key_is_{address, dnssd_ptr, dnssd_two_label_ptr}
authorJames Coglan <james@neighbourhood.ie>
Wed, 29 May 2024 09:39:48 +0000 (10:39 +0100)
committerLuca Boccassi <bluca@debian.org>
Tue, 23 Jul 2024 11:44:35 +0000 (12:44 +0100)
src/resolve/test-dns-rr.c

index 4f476d20b33cad64608aefff6463422f05d734dc..737968916b14fe83c79e2b9e3defc91a01c20b19 100644 (file)
@@ -160,4 +160,110 @@ TEST(dns_resource_key_new_append_suffix_not_root) {
         ASSERT_STREQ(dns_resource_key_name(target), "www.example.com");
 }
 
+/* ================================================================
+ * dns_resource_key_is_*()
+ * ================================================================ */
+
+TEST(dns_resource_key_is_address) {
+        DnsResourceKey *key = NULL;
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_A, "www.example.com");
+        ASSERT_NOT_NULL(key);
+        ASSERT_TRUE(dns_resource_key_is_address(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_AAAA, "www.example.com");
+        ASSERT_NOT_NULL(key);
+        ASSERT_TRUE(dns_resource_key_is_address(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_A6, "www.example.com");
+        ASSERT_NOT_NULL(key);
+        ASSERT_FALSE(dns_resource_key_is_address(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_CNAME, "www.example.com");
+        ASSERT_NOT_NULL(key);
+        ASSERT_FALSE(dns_resource_key_is_address(key));
+        dns_resource_key_unref(key);
+}
+
+TEST(dns_resource_key_is_dnssd_ptr) {
+        DnsResourceKey *key = NULL;
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_PTR, "_tcp.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_TRUE(dns_resource_key_is_dnssd_ptr(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_PTR, "foo._tcp.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_TRUE(dns_resource_key_is_dnssd_ptr(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_PTR, "_udp.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_TRUE(dns_resource_key_is_dnssd_ptr(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_PTR, "bar._udp.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_TRUE(dns_resource_key_is_dnssd_ptr(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_A, "_tcp.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_FALSE(dns_resource_key_is_dnssd_ptr(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_PTR, "_abc.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_FALSE(dns_resource_key_is_dnssd_ptr(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_PTR, "foo_tcp.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_FALSE(dns_resource_key_is_dnssd_ptr(key));
+        dns_resource_key_unref(key);
+}
+
+TEST(dns_resource_key_is_dnssd_two_label_ptr) {
+        DnsResourceKey *key = NULL;
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_PTR, "_tcp.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_FALSE(dns_resource_key_is_dnssd_two_label_ptr(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_PTR, "foo._tcp.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_TRUE(dns_resource_key_is_dnssd_two_label_ptr(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_PTR, "_udp.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_FALSE(dns_resource_key_is_dnssd_two_label_ptr(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_PTR, "bar._udp.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_TRUE(dns_resource_key_is_dnssd_two_label_ptr(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_A, "foo._tcp.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_FALSE(dns_resource_key_is_dnssd_two_label_ptr(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_PTR, "foo._abc.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_FALSE(dns_resource_key_is_dnssd_two_label_ptr(key));
+        dns_resource_key_unref(key);
+
+        key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_PTR, "foo_tcp.local");
+        ASSERT_NOT_NULL(key);
+        ASSERT_FALSE(dns_resource_key_is_dnssd_two_label_ptr(key));
+        dns_resource_key_unref(key);
+}
+
 DEFINE_TEST_MAIN(LOG_DEBUG);