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);