diff --git a/src/lib/dns/cpp/rrparamregistry.cc b/src/lib/dns/cpp/rrparamregistry.cc index b267cd192c..6a9bcab6fa 100644 --- a/src/lib/dns/cpp/rrparamregistry.cc +++ b/src/lib/dns/cpp/rrparamregistry.cc @@ -14,6 +14,7 @@ // $Id$ +#include #include #include #include @@ -213,9 +214,7 @@ bool CICharEqual(char c1, char c2) bool caseStringEqual(const string& s1, const string& s2, size_t n) { - if (s1.size() < n || s2.size() < n) { - return (false); - } + assert(s1.size() >= n && s2.size() >= n); return (mismatch(s1.begin(), s1.begin() + n, s2.begin(), CICharEqual).first == s1.begin() + n); diff --git a/src/lib/dns/cpp/rrparamregistry_unittest.cc b/src/lib/dns/cpp/rrparamregistry_unittest.cc index efb16a05a1..a5d7d99017 100644 --- a/src/lib/dns/cpp/rrparamregistry_unittest.cc +++ b/src/lib/dns/cpp/rrparamregistry_unittest.cc @@ -62,10 +62,17 @@ TEST_F(RRParamRegistryTest, addRemove) EXPECT_EQ(65533, RRClass("TESTCLASS").getCode()); EXPECT_EQ(65534, RRType("TESTTYPE").getCode()); + // the first removal attempt should succeed + EXPECT_TRUE(RRParamRegistry::getRegistry().removeType(65534)); + // then toText() should treat it as an "unknown" + EXPECT_EQ(test_type_unknown_str, RRType(test_type_code).toText()); + // attempt of removing non-existent mapping should result in 'false' + EXPECT_FALSE(RRParamRegistry::getRegistry().removeType(65534)); + + // same set of tests for RR class. EXPECT_TRUE(RRParamRegistry::getRegistry().removeClass(65533)); EXPECT_EQ(test_class_unknown_str, RRClass(test_class_code).toText()); - EXPECT_TRUE(RRParamRegistry::getRegistry().removeType(65534)); - EXPECT_EQ(test_type_unknown_str, RRType(test_type_code).toText()); + EXPECT_FALSE(RRParamRegistry::getRegistry().removeClass(65533)); } TEST_F(RRParamRegistryTest, addError)