From: James Coglan Date: Wed, 29 May 2024 09:39:48 +0000 (+0100) Subject: resolved: tests for dns_resource_key_is_{address, dnssd_ptr, dnssd_two_label_ptr} X-Git-Tag: v257-rc1~843^2~25 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f1cc0c3a1df16e2c4b5548dccffe84fba558ec4a;p=thirdparty%2Fsystemd.git resolved: tests for dns_resource_key_is_{address, dnssd_ptr, dnssd_two_label_ptr} --- 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);