diff options
author | csharptest <roger@csharptest.net> | 2013-05-07 15:00:50 -0500 |
---|---|---|
committer | rogerk <devnull@localhost> | 2013-05-07 15:00:50 -0500 |
commit | ef7091c9eda6d4e02860c879d5b1cf7044fd144c (patch) | |
tree | c5ddadf872fdd564da25794c0f77f7653ac1b244 /src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs | |
parent | 30f73e2e4a6eb2fad45b87bbf6db6e222a85e9ee (diff) | |
download | protobuf-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.cs | 27 |
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 |