Browse Source

[2390] Add NS, MX, PTR tests for extra text at end-of-line

Mukund Sivaraman 12 years ago
parent
commit
691f87a307

+ 7 - 0
src/lib/dns/tests/rdata_mx_unittest.cc

@@ -51,6 +51,9 @@ TEST_F(Rdata_MX_Test, badText) {
     // No origin and relative
     // No origin and relative
     EXPECT_THROW(const generic::MX rdata_mx("10 mx.example.com"),
     EXPECT_THROW(const generic::MX rdata_mx("10 mx.example.com"),
                  MissingNameOrigin);
                  MissingNameOrigin);
+    // Extra text at end of line
+    EXPECT_THROW(const generic::MX rdata_mx("10 mx.example.com. extra."),
+                 InvalidRdataText);
 }
 }
 
 
 TEST_F(Rdata_MX_Test, copy) {
 TEST_F(Rdata_MX_Test, copy) {
@@ -77,6 +80,10 @@ TEST_F(Rdata_MX_Test, createFromLexer) {
     // 65536 is larger than maximum possible preference
     // 65536 is larger than maximum possible preference
     EXPECT_FALSE(test::createRdataUsingLexer(RRType::MX(), RRClass::IN(),
     EXPECT_FALSE(test::createRdataUsingLexer(RRType::MX(), RRClass::IN(),
                                              "65536 mx.example.com."));
                                              "65536 mx.example.com."));
+
+    // Extra text at end of line
+    EXPECT_FALSE(test::createRdataUsingLexer(RRType::MX(), RRClass::IN(),
+                                             "10 mx.example.com. extra."));
 }
 }
 
 
 TEST_F(Rdata_MX_Test, toWireRenderer) {
 TEST_F(Rdata_MX_Test, toWireRenderer) {

+ 9 - 0
src/lib/dns/tests/rdata_ns_unittest.cc

@@ -61,6 +61,11 @@ TEST_F(Rdata_NS_Test, createFromText) {
                                                "ns.example.com.")));
                                                "ns.example.com.")));
 }
 }
 
 
+TEST_F(Rdata_NS_Test, badText) {
+    // Extra input at end of line
+    EXPECT_THROW(generic::NS("ns.example.com. extra."), InvalidRdataText);
+}
+
 TEST_F(Rdata_NS_Test, createFromWire) {
 TEST_F(Rdata_NS_Test, createFromWire) {
     EXPECT_EQ(0, rdata_ns.compare(
     EXPECT_EQ(0, rdata_ns.compare(
                   *rdataFactoryFromFile(RRType("NS"), RRClass("IN"),
                   *rdataFactoryFromFile(RRType("NS"), RRClass("IN"),
@@ -94,6 +99,10 @@ TEST_F(Rdata_NS_Test, createFromLexer) {
     // Exceptions cause NULL to be returned.
     // Exceptions cause NULL to be returned.
     EXPECT_FALSE(test::createRdataUsingLexer(RRType::NS(), RRClass::IN(),
     EXPECT_FALSE(test::createRdataUsingLexer(RRType::NS(), RRClass::IN(),
                                              ""));
                                              ""));
+
+    // Extra input at end of line
+    EXPECT_FALSE(test::createRdataUsingLexer(RRType::NS(), RRClass::IN(),
+                                             "ns.example.com. extra."));
 }
 }
 
 
 TEST_F(Rdata_NS_Test, toWireBuffer) {
 TEST_F(Rdata_NS_Test, toWireBuffer) {

+ 8 - 0
src/lib/dns/tests/rdata_ptr_unittest.cc

@@ -65,6 +65,11 @@ TEST_F(Rdata_PTR_Test, createFromText) {
                                                "ns.example.com.")));
                                                "ns.example.com.")));
 }
 }
 
 
+TEST_F(Rdata_PTR_Test, badText) {
+    // Extra text at end of line
+    EXPECT_THROW(generic::PTR("foo.example.com. extra."), InvalidRdataText);
+}
+
 TEST_F(Rdata_PTR_Test, createFromWire) {
 TEST_F(Rdata_PTR_Test, createFromWire) {
     EXPECT_EQ(0, rdata_ptr.compare(
     EXPECT_EQ(0, rdata_ptr.compare(
                   *rdataFactoryFromFile(RRType("PTR"), RRClass("IN"),
                   *rdataFactoryFromFile(RRType("PTR"), RRClass("IN"),
@@ -94,6 +99,9 @@ TEST_F(Rdata_PTR_Test, createFromLexer) {
     EXPECT_EQ(0, rdata_ptr.compare(
     EXPECT_EQ(0, rdata_ptr.compare(
         *test::createRdataUsingLexer(RRType::PTR(), RRClass::IN(),
         *test::createRdataUsingLexer(RRType::PTR(), RRClass::IN(),
                                      "ns.example.com.")));
                                      "ns.example.com.")));
+    // Extra text at end of line
+    EXPECT_FALSE(test::createRdataUsingLexer(RRType::PTR(), RRClass::IN(),
+                                             "foo.example.com. extra."));
 }
 }
 
 
 TEST_F(Rdata_PTR_Test, toWireBuffer) {
 TEST_F(Rdata_PTR_Test, toWireBuffer) {