From: James Coglan Date: Wed, 29 May 2024 15:29:56 +0000 (+0100) Subject: resolved: tests for dns_resource_record_clamp_ttl() X-Git-Tag: v257-rc1~843^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1500512f2321e08bbea6866cc6fc2bf7d42a8a5f;p=thirdparty%2Fsystemd.git resolved: tests for dns_resource_record_clamp_ttl() --- 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);