]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: tests for dns_resource_record_clamp_ttl()
authorJames Coglan <james@neighbourhood.ie>
Wed, 29 May 2024 15:29:56 +0000 (16:29 +0100)
committerLuca Boccassi <bluca@debian.org>
Tue, 23 Jul 2024 11:44:35 +0000 (12:44 +0100)
src/resolve/test-dns-rr.c

index 7b5102f7148837656b8014b6408c7e34ba213d5c..ffb76efeccaf2258703c2e60fa666c17c57b59b3 100644 (file)
@@ -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);