aboutsummaryrefslogtreecommitdiff
path: root/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs
diff options
context:
space:
mode:
authorcsharptest <roger@csharptest.net>2013-05-07 15:00:50 -0500
committerrogerk <devnull@localhost>2013-05-07 15:00:50 -0500
commitef7091c9eda6d4e02860c879d5b1cf7044fd144c (patch)
treec5ddadf872fdd564da25794c0f77f7653ac1b244 /src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs
parent30f73e2e4a6eb2fad45b87bbf6db6e222a85e9ee (diff)
downloadprotobuf-ef7091c9eda6d4e02860c879d5b1cf7044fd144c.tar.gz
protobuf-ef7091c9eda6d4e02860c879d5b1cf7044fd144c.tar.bz2
protobuf-ef7091c9eda6d4e02860c879d5b1cf7044fd144c.zip
Issue #54: should retire all bytes in buffer (bufferSize)
Diffstat (limited to 'src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs')
-rw-r--r--src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs b/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs
index 4f055c83..06fe6e49 100644
--- a/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs
+++ b/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs
@@ -305,5 +305,32 @@ namespace Google.ProtocolBuffers
copy = msg.DefaultInstanceForType.ToBuilder().MergeFrom(msg).Build();
TestUtil.AssertBytesEqual(msg.ToByteArray(), copy.ToByteArray());
}
+
+ // ROK 5/7/2013 Issue #54: should retire all bytes in buffer (bufferSize)
+ [TestMethod]
+ public void TestBufferRefillIssue()
+ {
+ var ms = new MemoryStream();
+ BucketOfBytes.CreateBuilder()
+ .SetValue(ByteString.CopyFrom(new byte[3000]))
+ .Build().WriteDelimitedTo(ms);
+ BucketOfBytesEx.CreateBuilder()
+ .SetValue(ByteString.CopyFrom(new byte[1000]))
+ .SetValue2(ByteString.CopyFrom(new byte[1100]))
+ .Build().WriteDelimitedTo(ms);
+ BucketOfBytes.CreateBuilder()
+ .SetValue(ByteString.CopyFrom(new byte[100]))
+ .Build().WriteDelimitedTo(ms);
+
+ ms.Position = 0;
+ var input = CodedInputStream.CreateInstance(ms);
+ var builder = BucketOfBytes.CreateBuilder();
+ input.ReadMessage(builder, ExtensionRegistry.Empty);
+ Assert.AreEqual(3000, builder.Value.Length);
+ input.ReadMessage(builder, ExtensionRegistry.Empty);
+ Assert.AreEqual(1000, builder.Value.Length);
+ input.ReadMessage(builder, ExtensionRegistry.Empty);
+ Assert.AreEqual(100, builder.Value.Length);
+ }
}
} \ No newline at end of file