[svn] commit: r1809 - in /branches/trac49/src/lib/dns: ./ name.cc name.h tests/name_unittest.cc

BIND 10 source code commits bind10-changes at lists.isc.org
Tue May 11 08:11:05 UTC 2010


Author: jinmei
Date: Tue May 11 08:11:04 2010
New Revision: 1809

Log:
added unit tests for two new utility functions.  they currently fail.

Modified:
    branches/trac49/src/lib/dns/   (props changed)
    branches/trac49/src/lib/dns/name.cc
    branches/trac49/src/lib/dns/name.h
    branches/trac49/src/lib/dns/tests/name_unittest.cc

Modified: branches/trac49/src/lib/dns/name.cc
==============================================================================
--- branches/trac49/src/lib/dns/name.cc (original)
+++ branches/trac49/src/lib/dns/name.cc Tue May 11 08:11:04 2010
@@ -730,6 +730,18 @@
     return (*this);
 }
 
+Name
+createAncestorNameOf(const Name& source, const unsigned int level) {
+    // return something that never matches "expected" one in unit tests
+    return (source.concatenate(level == 0 ? Name("dummy") : Name("DUMMY")));
+}
+
+Name
+createSuffixNameOf(const Name& source, const unsigned int labels) {
+    // return something that never matches "expected" one in unit tests
+    return (source.concatenate(labels == 0 ? Name("dummy") : Name("DUMMY")));
+}
+
 std::ostream&
 operator<<(std::ostream& os, const Name& name) {
     os << name.toText();

Modified: branches/trac49/src/lib/dns/name.h
==============================================================================
--- branches/trac49/src/lib/dns/name.h (original)
+++ branches/trac49/src/lib/dns/name.h Tue May 11 08:11:04 2010
@@ -609,6 +609,12 @@
     return (root_name);
 }
 
+Name
+createAncestorNameOf(const Name& source, unsigned int level);
+
+Name
+createSuffixNameOf(const Name& source, unsigned int labels);
+
 ///
 /// \brief Insert the name as a string into stream.
 ///

Modified: branches/trac49/src/lib/dns/tests/name_unittest.cc
==============================================================================
--- branches/trac49/src/lib/dns/tests/name_unittest.cc (original)
+++ branches/trac49/src/lib/dns/tests/name_unittest.cc Tue May 11 08:11:04 2010
@@ -500,6 +500,27 @@
                  OutOfRange);
 }
 
+TEST_F(NameTest, createAncestorNameOf) {
+    EXPECT_EQ(Name("example.com"), createAncestorNameOf(example_name, 1));
+    EXPECT_EQ(example_name, createAncestorNameOf(example_name, 0));
+    EXPECT_EQ(Name("."), createAncestorNameOf(example_name, 3));
+
+    // Invalid case: the level must be less than the original label count.
+    EXPECT_THROW(createAncestorNameOf(example_name, 4), OutOfRange);
+}
+
+TEST_F(NameTest, createSuffixNameOf) {
+    EXPECT_EQ(Name("."), createSuffixNameOf(example_name, 1));
+    EXPECT_EQ(Name("example.com"), createSuffixNameOf(example_name, 3));
+    EXPECT_EQ(example_name, createSuffixNameOf(example_name,
+                                               example_name.getLabelCount()));
+    // Invalid cases
+    EXPECT_THROW(createSuffixNameOf(example_name, 0), OutOfRange);
+    EXPECT_THROW(createSuffixNameOf(example_name,
+                                    example_name.getLabelCount() + 1),
+                 OutOfRange);
+}
+
 TEST_F(NameTest, downcase) {
     // usual case: all-upper case name to all-lower case
     compareInWireFormat(example_name_upper.downcase(), example_name);




More information about the bind10-changes mailing list