From 1500512f2321e08bbea6866cc6fc2bf7d42a8a5f Mon Sep 17 00:00:00 2001 From: James Coglan Date: Wed, 29 May 2024 16:29:56 +0100 Subject: [PATCH] resolved: tests for dns_resource_record_clamp_ttl() --- src/resolve/test-dns-rr.c | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/resolve/test-dns-rr.c b/src/resolve/test-dns-rr.c index 7b5102f7148..ffb76efecca 100644 --- a/src/resolve/test-dns-rr.c +++ b/src/resolve/test-dns-rr.c @@ -2130,4 +2130,45 @@ TEST(dns_resource_record_equal_svcb_param_different) { ASSERT_FALSE(dns_resource_record_equal(a, b)); } +/* ================================================================ + * dns_resource_record_clamp_ttl() + * ================================================================ */ + +TEST(dns_resource_record_clamp_ttl_in_place) { + DnsResourceRecord *rr = NULL, *orig = NULL; + + rr = dns_resource_record_new_full(DNS_CLASS_IN, DNS_TYPE_A, "www.example.com"); + ASSERT_NOT_NULL(rr); + orig = rr; + rr->ttl = 3600; + + ASSERT_FALSE(dns_resource_record_clamp_ttl(&rr, 4800)); + ASSERT_EQ(rr->ttl, 3600u); + + ASSERT_TRUE(dns_resource_record_clamp_ttl(&rr, 2400)); + ASSERT_EQ(rr->ttl, 2400u); + + ASSERT_TRUE(rr == orig); + + dns_resource_record_unref(rr); +} + +TEST(dns_resource_record_clamp_ttl_copy) { + _cleanup_(dns_resource_record_unrefp) DnsResourceRecord *rr = NULL, *orig = NULL; + + rr = dns_resource_record_new_full(DNS_CLASS_IN, DNS_TYPE_A, "www.example.com"); + ASSERT_NOT_NULL(rr); + orig = dns_resource_record_ref(rr); + rr->ttl = 3600; + + ASSERT_FALSE(dns_resource_record_clamp_ttl(&rr, 4800)); + ASSERT_EQ(rr->ttl, 3600u); + + ASSERT_TRUE(dns_resource_record_clamp_ttl(&rr, 2400)); + ASSERT_EQ(rr->ttl, 2400u); + + ASSERT_FALSE(rr == orig); + ASSERT_EQ(orig->ttl, 3600u); +} + DEFINE_TEST_MAIN(LOG_DEBUG); -- 2.47.3