[svn] commit: r442 - in /branches/jinmei-dnsrrparams/src/lib/dns/cpp: rrclass.cc rrclass_unittest.cc rrtype.cc rrtype_unittest.cc

BIND 10 source code commits bind10-changes at lists.isc.org
Mon Jan 11 23:56:01 UTC 2010


Author: jinmei
Date: Mon Jan 11 23:56:01 2010
New Revision: 442

Log:
added opertor<< and tests
added test cases for TYPE00053, etc.

Modified:
    branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrclass.cc
    branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrclass_unittest.cc
    branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrtype.cc
    branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrtype_unittest.cc

Modified: branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrclass.cc
==============================================================================
--- branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrclass.cc (original)
+++ branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrclass.cc Mon Jan 11 23:56:01 2010
@@ -44,5 +44,11 @@
     buffer.writeUint16(classcode_);
 }
 
+ostream&
+operator<<(ostream& os, const RRClass& rrclass)
+{
+    os << rrclass.toText();
+    return (os);
 }
 }
+}

Modified: branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrclass_unittest.cc
==============================================================================
--- branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrclass_unittest.cc (original)
+++ branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrclass_unittest.cc Mon Jan 11 23:56:01 2010
@@ -19,6 +19,7 @@
 #include "rrparamregistry.h"
 #include "rrclass.h"
 
+using namespace std;
 using isc::dns::RRClass;
 
 namespace {
@@ -33,8 +34,13 @@
 
     EXPECT_EQ("CLASS65535", RRClass("CLASS65535").toText());
 
+    // some uncommon cases: see the corresponding RRType tests.
+    EXPECT_EQ(53, RRClass("CLASS00053").getCode());
+    EXPECT_THROW(RRClass("CLASS000053"), isc::dns::InvalidRRClass);
+
     // bogus CLASSnnn representations: should trigger an exception
     EXPECT_THROW(RRClass("CLASS"), isc::dns::InvalidRRClass);
+    EXPECT_THROW(RRClass("CLASS-1"), isc::dns::InvalidRRClass);
     EXPECT_THROW(RRClass("CLASSxxx"), isc::dns::InvalidRRClass);
     EXPECT_THROW(RRClass("CLASS65536"), isc::dns::InvalidRRClass);
     EXPECT_THROW(RRClass("CLASS6500x"), isc::dns::InvalidRRClass);
@@ -68,4 +74,12 @@
     EXPECT_TRUE(RRClass("IN") < RRClass("CH"));
     EXPECT_TRUE(RRClass(100) < RRClass(65535));
 }
+
+// test operator<<.  We simply confirm it appends the result of toText().
+TEST_F(RRClassTest, LeftShiftOperator)
+{
+    ostringstream oss;
+    oss << RRClass::IN();
+    EXPECT_EQ(RRClass::IN().toText(), oss.str());
 }
+}

Modified: branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrtype.cc
==============================================================================
--- branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrtype.cc (original)
+++ branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrtype.cc Mon Jan 11 23:56:01 2010
@@ -45,5 +45,11 @@
     buffer.writeUint16(typecode_);
 }
 
+ostream&
+operator<<(ostream& os, const RRType& rrtype)
+{
+    os << rrtype.toText();
+    return (os);
 }
 }
+}

Modified: branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrtype_unittest.cc
==============================================================================
--- branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrtype_unittest.cc (original)
+++ branches/jinmei-dnsrrparams/src/lib/dns/cpp/rrtype_unittest.cc Mon Jan 11 23:56:01 2010
@@ -19,6 +19,7 @@
 #include "rrparamregistry.h"
 #include "rrtype.h"
 
+using namespace std;
 using isc::dns::RRType;
 
 namespace {
@@ -32,6 +33,14 @@
     EXPECT_EQ("NS", RRType("NS").toText());
 
     EXPECT_EQ("TYPE65535", RRType("TYPE65535").toText());
+
+    // something unusual, but existing implementations accept this form,
+    // so do we.
+    EXPECT_EQ(53, RRType("TYPE00053").getCode());
+    // again, unusual, and the majority of other implementations reject it.
+    // In any case, there should be no reasonable reason to accept such a
+    // ridiculously long input.
+    EXPECT_THROW(RRType("TYPE000053"), isc::dns::InvalidRRType);
 
     // bogus TYPEnnn representations: should trigger an exception
     EXPECT_THROW(RRType("TYPE"), isc::dns::InvalidRRType);
@@ -70,4 +79,12 @@
     EXPECT_TRUE(RRType("A") < RRType("NS"));
     EXPECT_TRUE(RRType(100) < RRType(65535));
 }
+
+// test operator<<.  We simply confirm it appends the result of toText().
+TEST_F(RRTypeTest, LeftShiftOperator)
+{
+    ostringstream oss;
+    oss << RRType::A();
+    EXPECT_EQ(RRType::A().toText(), oss.str());
 }
+}




More information about the bind10-changes mailing list