From: Yu Watanabe Date: Mon, 20 Oct 2025 03:01:22 +0000 (+0900) Subject: test: add unit test for dns_name_parent() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c6d97d9e08b98ebd02f95db4efa8a85c14fcf555;p=thirdparty%2Fsystemd.git test: add unit test for dns_name_parent() --- 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);