[svn] commit: r404 - in /branches/jinmei-dnsmessageapi/src/lib/dns/cpp: messagerenderer.cc messagerenderer_unittest.cc testdata/name_toWire4

BIND 10 source code commits bind10-changes at lists.isc.org
Wed Dec 23 22:39:02 UTC 2009


Author: jinmei
Date: Wed Dec 23 22:39:02 2009
New Revision: 404

Log:
added a test case for a chain of compression pointers
(existing tests didn't cover this case - identified by lcov)

Added:
    branches/jinmei-dnsmessageapi/src/lib/dns/cpp/testdata/name_toWire4
Modified:
    branches/jinmei-dnsmessageapi/src/lib/dns/cpp/messagerenderer.cc
    branches/jinmei-dnsmessageapi/src/lib/dns/cpp/messagerenderer_unittest.cc

Modified: branches/jinmei-dnsmessageapi/src/lib/dns/cpp/messagerenderer.cc
==============================================================================
--- branches/jinmei-dnsmessageapi/src/lib/dns/cpp/messagerenderer.cc (original)
+++ branches/jinmei-dnsmessageapi/src/lib/dns/cpp/messagerenderer.cc Wed Dec 23 22:39:02 2009
@@ -17,8 +17,6 @@
 #include <cctype>
 #include <cassert>
 #include <set>
-
-#include <iostream>
 
 #include "buffer.h"
 #include "name.h"
@@ -102,6 +100,7 @@
     {
         if (llen == 0) {
             int i = 0;
+
             while ((buffer[pos] & Name::COMPRESS_POINTER_MARK8) ==
                    Name::COMPRESS_POINTER_MARK8) {
                 pos = (buffer[pos] & ~Name::COMPRESS_POINTER_MARK8) *
@@ -115,8 +114,9 @@
                 assert(i < Name::MAX_WIRE);
             }
             llen = buffer[pos];
-        } else
+        } else {
             --llen;
+        }
         return (pos);
     }
 };

Modified: branches/jinmei-dnsmessageapi/src/lib/dns/cpp/messagerenderer_unittest.cc
==============================================================================
--- branches/jinmei-dnsmessageapi/src/lib/dns/cpp/messagerenderer_unittest.cc (original)
+++ branches/jinmei-dnsmessageapi/src/lib/dns/cpp/messagerenderer_unittest.cc Wed Dec 23 22:39:02 2009
@@ -73,6 +73,16 @@
                         buffer.getLength(), &data[0], data.size());
 }
 
+TEST_F(MessageRendererTest, toWirePointerChain)
+{
+    UnitTestUtil::readWireData("testdata/name_toWire4", data);
+    renderer.writeName(Name("a.example.com."));
+    renderer.writeName(Name("b.example.com."));
+    renderer.writeName(Name("b.example.com."));
+    EXPECT_PRED_FORMAT4(UnitTestUtil::matchWireData, buffer.getData(),
+                        buffer.getLength(), &data[0], data.size());
+}
+
 TEST_F(MessageRendererTest, toWireCaseCompress)
 {
     UnitTestUtil::readWireData("testdata/name_toWire1", data);




More information about the bind10-changes mailing list