From f1cc0c3a1df16e2c4b5548dccffe84fba558ec4a Mon Sep 17 00:00:00 2001 From: James Coglan Date: Wed, 29 May 2024 10:39:48 +0100 Subject: [PATCH] resolved: tests for dns_resource_key_is_{address, dnssd_ptr, dnssd_two_label_ptr} --- src/resolve/test-dns-rr.c | 106 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/src/resolve/test-dns-rr.c b/src/resolve/test-dns-rr.c index 4f476d20b33..737968916b1 100644 --- a/src/resolve/test-dns-rr.c +++ b/src/resolve/test-dns-rr.c @@ -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); -- 2.47.3