]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: test for DNS_RESOURCE_RECORD_RDATA()
authorJames Coglan <james@neighbourhood.ie>
Wed, 29 May 2024 08:20:08 +0000 (09:20 +0100)
committerLuca Boccassi <bluca@debian.org>
Tue, 23 Jul 2024 11:44:34 +0000 (12:44 +0100)
src/resolve/meson.build
src/resolve/test-dns-rr.c [new file with mode: 0644]

index b1fcb990af2c2c30e83d50f24c5ead74db44e2fe..20caecee0f9a527669deaf55e98e4f6c624be2d6 100644 (file)
@@ -171,6 +171,9 @@ executables += [
         resolve_test_template + {
                 'sources' : files('test-dns-packet-extract.c'),
         },
+        resolve_test_template + {
+                'sources' : files('test-dns-rr.c'),
+        },
         resolve_test_template + {
                 'sources' : files(
                         'test-resolved-etc-hosts.c',
diff --git a/src/resolve/test-dns-rr.c b/src/resolve/test-dns-rr.c
new file mode 100644 (file)
index 0000000..d08ec4a
--- /dev/null
@@ -0,0 +1,35 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "dns-type.h"
+#include "resolved-dns-rr.h"
+
+#include "log.h"
+#include "tests.h"
+
+/* ================================================================
+ * DNS_RESOURCE_RECORD_RDATA()
+ * ================================================================ */
+
+TEST(dns_resource_record_rdata) {
+        DnsResourceRecord rr = (DnsResourceRecord) {
+                .wire_format = (void *)"abcdefghi",
+                .wire_format_size = 9,
+                .wire_format_rdata_offset = 3
+        };
+
+        const void *ptr = DNS_RESOURCE_RECORD_RDATA(&rr);
+        ASSERT_STREQ(ptr, "defghi");
+
+        size_t size = DNS_RESOURCE_RECORD_RDATA_SIZE(&rr);
+        ASSERT_EQ(size, 6u);
+
+        rr.wire_format = NULL;
+
+        ptr = DNS_RESOURCE_RECORD_RDATA(&rr);
+        ASSERT_NULL(ptr);
+
+        size = DNS_RESOURCE_RECORD_RDATA_SIZE(&rr);
+        ASSERT_EQ(size, 0u);
+}
+
+DEFINE_TEST_MAIN(LOG_DEBUG);