From c6d97d9e08b98ebd02f95db4efa8a85c14fcf555 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 20 Oct 2025 12:01:22 +0900 Subject: [PATCH] test: add unit test for dns_name_parent() --- src/test/test-dns-domain.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/test/test-dns-domain.c b/src/test/test-dns-domain.c index f1d11305c1d..3f0a384214d 100644 --- a/src/test/test-dns-domain.c +++ b/src/test/test-dns-domain.c @@ -842,4 +842,40 @@ TEST(dns_name_dot_suffixed) { assert_se(dns_name_dot_suffixed("foo.bar\\.\\.\\.\\.") == 0); } +TEST(dns_name_parent) { + const char *name = "hoge.hoge.foo.bar.example.com"; + + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("hoge")); + ASSERT_STREQ(name, "hoge.foo.bar.example.com"); + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("hoge")); + ASSERT_STREQ(name, "foo.bar.example.com"); + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("foo")); + ASSERT_STREQ(name, "bar.example.com"); + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("bar")); + ASSERT_STREQ(name, "example.com"); + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("example")); + ASSERT_STREQ(name, "com"); + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("com")); + ASSERT_STREQ(name, ""); + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("")); + ASSERT_STREQ(name, ""); + + name = "hoge.hoge.foo.bar.example.com."; + + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("hoge")); + ASSERT_STREQ(name, "hoge.foo.bar.example.com."); + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("hoge")); + ASSERT_STREQ(name, "foo.bar.example.com."); + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("foo")); + ASSERT_STREQ(name, "bar.example.com."); + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("bar")); + ASSERT_STREQ(name, "example.com."); + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("example")); + ASSERT_STREQ(name, "com."); + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("com")); + ASSERT_STREQ(name, ""); /* The trailint dot is suppressed. */ + ASSERT_OK_EQ(dns_name_parent(&name), (int) STRLEN("")); + ASSERT_STREQ(name, ""); +} + DEFINE_TEST_MAIN(LOG_DEBUG); -- 2.47.3