test: add unit test for dns_name_parent()

This commit is contained in:
Yu Watanabe
2025-10-20 12:01:22 +09:00
parent aeef3c313b
commit c6d97d9e08
+36
View File
@@ -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);