From: James Coglan Date: Tue, 28 May 2024 13:05:39 +0000 (+0100) Subject: resolved: tests for dns_answer_remove_by_answer_keys() X-Git-Tag: v257-rc1~841^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3904553446bd00fb9749de8200d5efa17de8c285;p=thirdparty%2Fsystemd.git resolved: tests for dns_answer_remove_by_answer_keys() --- diff --git a/src/resolve/test-dns-answer.c b/src/resolve/test-dns-answer.c index 82ddb318bdd..ec7d302db85 100644 --- a/src/resolve/test-dns-answer.c +++ b/src/resolve/test-dns-answer.c @@ -489,4 +489,47 @@ TEST(dns_answer_remove_by_rr_all) { ASSERT_NULL(answer); } +TEST(dns_answer_remove_by_answer_keys_partial) { + _cleanup_(dns_answer_unrefp) DnsAnswer *a = prepare_answer(); + _cleanup_(dns_answer_unrefp) DnsAnswer *b = prepare_answer(); + + dns_answer_remove_by_answer_keys(&a, b); + + ASSERT_NULL(a); +} + +TEST(dns_answer_remove_by_answer_keys_all) { + _cleanup_(dns_answer_unrefp) DnsAnswer *a = prepare_answer(); + _cleanup_(dns_answer_unrefp) DnsAnswer *b = prepare_answer(); + DnsResourceKey *key = NULL; + + key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_A, "b.example.com"); + ASSERT_NOT_NULL(key); + dns_answer_remove_by_key(&b, key); + dns_resource_key_unref(key); + + ASSERT_EQ(dns_answer_size(a), 3u); + ASSERT_EQ(dns_answer_size(b), 2u); + + dns_answer_remove_by_answer_keys(&a, b); + + ASSERT_EQ(dns_answer_size(a), 1u); + ASSERT_EQ(dns_answer_size(b), 2u); + + key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_A, "a.example.com"); + ASSERT_NOT_NULL(key); + ASSERT_FALSE(dns_answer_match_key(a, key, NULL)); + dns_resource_key_unref(key); + + key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_A, "b.example.com"); + ASSERT_NOT_NULL(key); + ASSERT_TRUE(dns_answer_match_key(a, key, NULL)); + dns_resource_key_unref(key); + + key = dns_resource_key_new(DNS_CLASS_IN, DNS_TYPE_A, "c.example.com"); + ASSERT_NOT_NULL(key); + ASSERT_FALSE(dns_answer_match_key(a, key, NULL)); + dns_resource_key_unref(key); +} + DEFINE_TEST_MAIN(LOG_DEBUG);