[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