|
@@ -46,6 +46,10 @@ protected:
|
|
|
rrset_a(test_name, RRClass::IN(), RRType::A(), RRTTL(3600)),
|
|
|
rrset_a_empty(test_name, RRClass::IN(), RRType::A(),
|
|
|
RRTTL(3600)),
|
|
|
+ rrset_any_a_empty(test_name, RRClass::ANY(), RRType::A(),
|
|
|
+ RRTTL(3600)),
|
|
|
+ rrset_none_a_empty(test_name, RRClass::NONE(), RRType::A(),
|
|
|
+ RRTTL(3600)),
|
|
|
rrset_ns(test_domain, RRClass::IN(), RRType::NS(),
|
|
|
RRTTL(86400)),
|
|
|
rrset_ch_txt(test_domain, RRClass::CH(), RRType::TXT(),
|
|
@@ -62,6 +66,8 @@ protected:
|
|
|
Name test_nsname;
|
|
|
RRset rrset_a;
|
|
|
RRset rrset_a_empty;
|
|
|
+ RRset rrset_any_a_empty;
|
|
|
+ RRset rrset_none_a_empty;
|
|
|
RRset rrset_ns;
|
|
|
RRset rrset_ch_txt;
|
|
|
std::vector<unsigned char> wiredata;
|
|
@@ -193,11 +199,16 @@ TEST_F(RRsetTest, toText) {
|
|
|
"test.example.com. 3600 IN A 192.0.2.2\n",
|
|
|
rrset_a.toText());
|
|
|
|
|
|
- // toText() cannot be performed for an empty RRset.
|
|
|
+ // toText() cannot be performed for an empty RRset
|
|
|
EXPECT_THROW(rrset_a_empty.toText(), EmptyRRset);
|
|
|
+
|
|
|
+ // Unless it is type ANY or NONE
|
|
|
+ EXPECT_EQ("test.example.com. 3600 ANY A\n",
|
|
|
+ rrset_any_a_empty.toText());
|
|
|
+ EXPECT_EQ("test.example.com. 3600 CLASS254 A\n",
|
|
|
+ rrset_none_a_empty.toText());
|
|
|
}
|
|
|
|
|
|
-#include <iostream>
|
|
|
TEST_F(RRsetTest, toWireBuffer) {
|
|
|
rrset_a.toWire(buffer);
|
|
|
|
|
@@ -207,11 +218,21 @@ TEST_F(RRsetTest, toWireBuffer) {
|
|
|
|
|
|
// toWire() cannot be performed for an empty RRset.
|
|
|
buffer.clear();
|
|
|
- rrset_a_empty.toWire(buffer);
|
|
|
+ EXPECT_THROW(rrset_a_empty.toWire(buffer), EmptyRRset);
|
|
|
+
|
|
|
+ // Unless it is type ANY or None
|
|
|
+ buffer.clear();
|
|
|
+ rrset_any_a_empty.toWire(buffer);
|
|
|
wiredata.clear();
|
|
|
UnitTestUtil::readWireData("rrset_toWire3", wiredata);
|
|
|
EXPECT_PRED_FORMAT4(UnitTestUtil::matchWireData, buffer.getData(),
|
|
|
buffer.getLength(), &wiredata[0], wiredata.size());
|
|
|
+ buffer.clear();
|
|
|
+ rrset_none_a_empty.toWire(buffer);
|
|
|
+ wiredata.clear();
|
|
|
+ UnitTestUtil::readWireData("rrset_toWire4", wiredata);
|
|
|
+ EXPECT_PRED_FORMAT4(UnitTestUtil::matchWireData, buffer.getData(),
|
|
|
+ buffer.getLength(), &wiredata[0], wiredata.size());
|
|
|
}
|
|
|
|
|
|
TEST_F(RRsetTest, toWireRenderer) {
|
|
@@ -224,13 +245,25 @@ TEST_F(RRsetTest, toWireRenderer) {
|
|
|
EXPECT_PRED_FORMAT4(UnitTestUtil::matchWireData, renderer.getData(),
|
|
|
renderer.getLength(), &wiredata[0], wiredata.size());
|
|
|
|
|
|
+ // toWire() cannot be performed for an empty RRset.
|
|
|
+ buffer.clear();
|
|
|
+ EXPECT_THROW(rrset_a_empty.toWire(buffer), EmptyRRset);
|
|
|
+
|
|
|
+ // Unless it is type ANY or None
|
|
|
// toWire() can also be performed for an empty RRset.
|
|
|
buffer.clear();
|
|
|
- rrset_a_empty.toWire(buffer);
|
|
|
+ rrset_any_a_empty.toWire(buffer);
|
|
|
wiredata.clear();
|
|
|
UnitTestUtil::readWireData("rrset_toWire3", wiredata);
|
|
|
EXPECT_PRED_FORMAT4(UnitTestUtil::matchWireData, buffer.getData(),
|
|
|
buffer.getLength(), &wiredata[0], wiredata.size());
|
|
|
+
|
|
|
+ buffer.clear();
|
|
|
+ rrset_none_a_empty.toWire(buffer);
|
|
|
+ wiredata.clear();
|
|
|
+ UnitTestUtil::readWireData("rrset_toWire4", wiredata);
|
|
|
+ EXPECT_PRED_FORMAT4(UnitTestUtil::matchWireData, buffer.getData(),
|
|
|
+ buffer.getLength(), &wiredata[0], wiredata.size());
|
|
|
}
|
|
|
|
|
|
// test operator<<. We simply confirm it appends the result of toText().
|