[svn] commit: r1061 - /trunk/src/lib/dns/cpp/tests/message_unittest.cc

BIND 10 source code commits bind10-changes at lists.isc.org
Mon Mar 1 20:34:28 UTC 2010


Author: jinmei
Date: Mon Mar  1 20:34:28 2010
New Revision: 1061

Log:
added test case for the maximum extended Rcode

Modified:
    trunk/src/lib/dns/cpp/tests/message_unittest.cc

Modified: trunk/src/lib/dns/cpp/tests/message_unittest.cc
==============================================================================
--- trunk/src/lib/dns/cpp/tests/message_unittest.cc (original)
+++ trunk/src/lib/dns/cpp/tests/message_unittest.cc Mon Mar  1 20:34:28 2010
@@ -14,6 +14,8 @@
 
 // $Id$
 
+#include <exceptions/exceptions.h>
+
 #include <dns/buffer.h>
 #include <dns/message.h>
 #include <dns/messagerenderer.h>
@@ -55,6 +57,25 @@
 
     InputBuffer buffer(&data[0], data.size());
     message.fromWire(buffer);
+}
+
+TEST_F(MessageTest, RcodeConstruct)
+{
+    // normal cases
+    EXPECT_EQ(0, Rcode(0).getCode());
+    EXPECT_EQ(0xfff, Rcode(0xfff).getCode()); // possible max code
+
+    // should fail on attempt of construction with an out of range code
+    EXPECT_THROW(Rcode(0x1000), isc::OutOfRange);
+    EXPECT_THROW(Rcode(0xffff), isc::OutOfRange);
+}
+
+TEST_F(MessageTest, RcodeToText)
+{
+    EXPECT_EQ("NOERROR", Rcode::NOERROR().toText());
+    EXPECT_EQ("BADVERS", Rcode::BADVERS().toText());
+    EXPECT_EQ("17", Rcode(Rcode::BADVERS().getCode() + 1).toText());
+    EXPECT_EQ("4095", Rcode(Rcode(0xfff)).toText());
 }
 
 TEST_F(MessageTest, fromWire)
@@ -125,6 +146,18 @@
     EXPECT_EQ(Message::DEFAULT_MAX_UDPSIZE, message.getUDPSize());
 }
 
+TEST_F(MessageTest, EDNS0ExtCode)
+{
+    // Extended Rcode = BADVERS
+    factoryFromFile(message, "testdata/message_fromWire10");
+    EXPECT_EQ(Rcode::BADVERS(), message.getRcode());
+
+    // Maximum extended Rcode
+    message.clear();
+    factoryFromFile(message, "testdata/message_fromWire11");
+    EXPECT_EQ(0xfff, message.getRcode().getCode());
+}
+
 TEST_F(MessageTest, BadEDNS0)
 {
     // OPT RR in the answer section




More information about the bind10-changes mailing list