Browse Source

[2656] Add CNAME, DNAME, SRV tests for extra text at end-of-line

Mukund Sivaraman 12 years ago
parent
commit
10833250f2

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

@@ -62,6 +62,11 @@ TEST_F(Rdata_CNAME_Test, createFromText) {
                                                   "cn.example.com.")));
 }
 
+TEST_F(Rdata_CNAME_Test, badText) {
+    // Extra text at end of line
+    EXPECT_THROW(generic::CNAME("cname.example.com. extra."), InvalidRdataText);
+}
+
 TEST_F(Rdata_CNAME_Test, createFromWire) {
     EXPECT_EQ(0, rdata_cname.compare(
                   *rdataFactoryFromFile(RRType("CNAME"), RRClass("IN"),
@@ -91,6 +96,9 @@ TEST_F(Rdata_CNAME_Test, createFromLexer) {
     EXPECT_EQ(0, rdata_cname.compare(
         *test::createRdataUsingLexer(RRType::CNAME(), RRClass::IN(),
                                      "cn.example.com.")));
+    // Extra text at end of line
+    EXPECT_FALSE(test::createRdataUsingLexer(RRType::CNAME(), RRClass::IN(),
+                                             "cname.example.com. extra."));
 }
 
 TEST_F(Rdata_CNAME_Test, toWireBuffer) {

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

@@ -64,6 +64,11 @@ TEST_F(Rdata_DNAME_Test, createFromText) {
                                                   "dn.example.com.")));
 }
 
+TEST_F(Rdata_DNAME_Test, badText) {
+    // Extra text at end of line
+    EXPECT_THROW(generic::DNAME("dname.example.com. extra."), InvalidRdataText);
+}
+
 TEST_F(Rdata_DNAME_Test, createFromWire) {
     EXPECT_EQ(0, rdata_dname.compare(
                   *rdataFactoryFromFile(RRType("DNAME"), RRClass("IN"),
@@ -93,6 +98,9 @@ TEST_F(Rdata_DNAME_Test, createFromLexer) {
     EXPECT_EQ(0, rdata_dname.compare(
         *test::createRdataUsingLexer(RRType::DNAME(), RRClass::IN(),
                                      "dn.example.com.")));
+    // Extra text at end of line
+    EXPECT_FALSE(test::createRdataUsingLexer(RRType::DNAME(), RRClass::IN(),
+                                             "dname.example.com. extra."));
 }
 
 TEST_F(Rdata_DNAME_Test, toWireBuffer) {

+ 5 - 0
src/lib/dns/tests/rdata_srv_unittest.cc

@@ -78,6 +78,8 @@ TEST_F(Rdata_SRV_Test, badText) {
     // bad name
     EXPECT_THROW(in::SRV("1 5 1500 a.example.com." + too_long_label),
                  TooLongLabel);
+    // Extra text at end of line
+    EXPECT_THROW(in::SRV("1 5 1500 a.example.com. extra."), InvalidRdataText);
 }
 
 TEST_F(Rdata_SRV_Test, assignment) {
@@ -138,6 +140,9 @@ TEST_F(Rdata_SRV_Test, createFromLexer) {
     EXPECT_FALSE(test::createRdataUsingLexer(RRType::SRV(), RRClass::IN(),
                                              "1 5 281474976710656 "
                                              "a.example.com."));
+    // Extra text at end of line
+    EXPECT_FALSE(test::createRdataUsingLexer(RRType::SRV(), RRClass::IN(),
+                                             "1 5 1500 a.example.com. extra."));
 }
 
 TEST_F(Rdata_SRV_Test, toWireBuffer) {