From 3904553446bd00fb9749de8200d5efa17de8c285 Mon Sep 17 00:00:00 2001 From: James Coglan Date: Tue, 28 May 2024 14:05:39 +0100 Subject: [PATCH] resolved: tests for dns_answer_remove_by_answer_keys() --- src/resolve/test-dns-answer.c | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) 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); -- 2.47.3