[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