From: James Coglan Date: Thu, 30 May 2024 16:22:30 +0000 (+0100) Subject: resolved: tests for dns_question_new_address() X-Git-Tag: v257-rc1~842^2~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7ce89229c715efcf1371426060263f9a0783651b;p=thirdparty%2Fsystemd.git resolved: tests for dns_question_new_address() --- diff --git a/src/resolve/test-dns-question.c b/src/resolve/test-dns-question.c index 6ea6ef7670b..3513b7630e7 100644 --- a/src/resolve/test-dns-question.c +++ b/src/resolve/test-dns-question.c @@ -50,4 +50,52 @@ TEST(dns_question_add_with_space) { assert(dns_question_isempty(question) == 0); } +/* ================================================================ + * dns_question_new_address() + * ================================================================ */ + +TEST(dns_question_new_address_ipv4) { + _cleanup_(dns_question_unrefp) DnsQuestion *question = NULL; + _cleanup_(dns_resource_key_unrefp) DnsResourceKey *key = NULL; + + ASSERT_OK(dns_question_new_address(&question, AF_INET, "www.example.com", 0)); + ASSERT_NOT_NULL(question); + + key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_A, "www.example.com"); + ASSERT_NOT_NULL(key); + + ASSERT_EQ(dns_question_size(question), 1u); + ASSERT_TRUE(dns_question_contains_key(question, key)); +} + +TEST(dns_question_new_address_ipv6) { + _cleanup_(dns_question_unrefp) DnsQuestion *question = NULL; + _cleanup_(dns_resource_key_unrefp) DnsResourceKey *key = NULL; + + ASSERT_OK(dns_question_new_address(&question, AF_INET6, "www.example.com", 0)); + ASSERT_NOT_NULL(question); + + key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_AAAA, "www.example.com"); + ASSERT_NOT_NULL(key); + + ASSERT_EQ(dns_question_size(question), 1u); + ASSERT_TRUE(dns_question_contains_key(question, key)); +} + +#if HAVE_LIBIDN || HAVE_LIBIDN2 +TEST(dns_question_new_address_convert_idna) { + _cleanup_(dns_question_unrefp) DnsQuestion *question = NULL; + _cleanup_(dns_resource_key_unrefp) DnsResourceKey *key = NULL; + + ASSERT_OK(dns_question_new_address(&question, AF_INET, "www.\xF0\x9F\x98\xB1.com", 1)); + ASSERT_NOT_NULL(question); + + key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_A, "www.xn--s38h.com"); + ASSERT_NOT_NULL(key); + + ASSERT_EQ(dns_question_size(question), 1u); + ASSERT_TRUE(dns_question_contains_key(question, key)); +} +#endif + DEFINE_TEST_MAIN(LOG_DEBUG);