[svn] commit: r363 - in /branches/jinmei-dnsmessageapi/src/lib/dns/cpp: name.cc name_unittest.cc testdata/name_fromWire10 testdata/name_fromWire11 testdata/name_fromWire12 testdata/name_fromWire9

BIND 10 source code commits bind10-changes at lists.isc.org
Mon Dec 14 20:04:54 UTC 2009


Author: jinmei
Date: Mon Dec 14 20:04:54 2009
New Revision: 363

Log:
more test cases

Added:
    branches/jinmei-dnsmessageapi/src/lib/dns/cpp/testdata/name_fromWire10
    branches/jinmei-dnsmessageapi/src/lib/dns/cpp/testdata/name_fromWire11
    branches/jinmei-dnsmessageapi/src/lib/dns/cpp/testdata/name_fromWire12
    branches/jinmei-dnsmessageapi/src/lib/dns/cpp/testdata/name_fromWire9
Modified:
    branches/jinmei-dnsmessageapi/src/lib/dns/cpp/name.cc
    branches/jinmei-dnsmessageapi/src/lib/dns/cpp/name_unittest.cc

Modified: branches/jinmei-dnsmessageapi/src/lib/dns/cpp/name.cc
==============================================================================
--- branches/jinmei-dnsmessageapi/src/lib/dns/cpp/name.cc (original)
+++ branches/jinmei-dnsmessageapi/src/lib/dns/cpp/name.cc Mon Dec 14 20:04:54 2009
@@ -241,7 +241,7 @@
 {
     unsigned int new_current;
     std::vector<unsigned char> offsets;
-    offsets.reserve(Name::MAX_WIRE / 2);
+    offsets.reserve(Name::MAX_LABELS);
 
     /*
      * Initialize things to make the compiler happy; they're not required.
@@ -562,7 +562,6 @@
     transform(suffix.offsets_.begin(), suffix.offsets_.end(),
               back_inserter(retname.offsets_),
               bind2nd(OffsetAdjuster(), this->length_ - 1));
-    assert(retname.offsets_.back() == retname.length_ - 1);
     assert(retname.offsets_.size() == labels);
     retname.labels_ = labels;
 

Modified: branches/jinmei-dnsmessageapi/src/lib/dns/cpp/name_unittest.cc
==============================================================================
--- branches/jinmei-dnsmessageapi/src/lib/dns/cpp/name_unittest.cc (original)
+++ branches/jinmei-dnsmessageapi/src/lib/dns/cpp/name_unittest.cc Mon Dec 14 20:04:54 2009
@@ -38,6 +38,7 @@
     NameTest() : example_name("www.example.com") {}
     Name example_name;
 
+    static const size_t MAX_WIRE = Name::MAX_WIRE;
     static const size_t MAX_LABELS = Name::MAX_LABELS;
     //
     // helper methods
@@ -176,6 +177,24 @@
     EXPECT_EQ(true, nameFactoryFromWire("testdata/name_fromWire8", 383) ==
               Name("vix.com"));
 
+    //
+    // Additional test cases
+    //
+
+    // large names, a long but valid one, and invalid (too long) one.
+    EXPECT_EQ(MAX_WIRE,
+              nameFactoryFromWire("testdata/name_fromWire9", 0).getLength());
+    EXPECT_THROW(nameFactoryFromWire("testdata/name_fromWire10", 0).getLength(),
+                 isc::dns::TooLongName);
+
+    // A name with possible maximum number of labels; awkward but valid
+    EXPECT_EQ(nameFactoryFromWire("testdata/name_fromWire11", 0).getLabels(),
+              MAX_LABELS);
+
+    // Wire format including an invalid label length
+    EXPECT_THROW(nameFactoryFromWire("testdata/name_fromWire12", 0),
+                 isc::dns::BadLabelType);
+
     // converting upper-case letters to down-case
     EXPECT_EQ("vix.com.", nameFactoryFromWire("testdata/name_fromWire1",
                                               25, true).toText());




More information about the bind10-changes mailing list