public void TestIncrementalWrite() { var testBlobName = Guid.NewGuid().ToString(); CreateTestBlob(testBlobName); var testPattern = new byte[255]; for (int i = 0; i < 255; i++) { testPattern[i] = (byte)i; } var testBuffer = new byte[255000]; var readBuffer = new byte[255000]; for (int i = 0; i < 1000; i++) { testPattern.CopyTo(testBuffer, 255 * i); } for (int i = 0; i < 100; i++) { using ( var stream = new Storage.BlockProviderStream(AzureBlockStore.Instance, "test\\" + testBlobName, FileMode.Append)) { stream.Write(testBuffer, 0, 255000); } using (var stream = new Storage.BlockProviderStream(AzureBlockStore.Instance, "test\\" + testBlobName, FileMode.Open)) { Assert.AreEqual(255000 * (i + 1), stream.Length); stream.Seek(-255000, SeekOrigin.End); int readCount = stream.Read(readBuffer, 0, 255000); Assert.AreEqual(255000, readCount); for (int x = 0; x < 1000; x++) { for (int y = 0; y < 255; y++) { Assert.AreEqual(y, readBuffer[(255 * x) + y]); } } } } for (int i = 0; i < 100; i++) { using (var stream = new Storage.BlockProviderStream(AzureBlockStore.Instance, "test\\" + testBlobName, FileMode.Open)) { stream.Seek(255000 * i, SeekOrigin.Begin); int readCount = stream.Read(readBuffer, 0, 255000); Assert.AreEqual(255000, readCount); } for (int x = 0; x < 1000; x++) { for (int y = 0; y < 255; y++) { Assert.AreEqual(y, readBuffer[(255 * x) + y]); } } } }
public void TestIncrementalWrite() { var testBlobName = Guid.NewGuid().ToString(); CreateTestBlob(testBlobName); var testPattern = new byte[255]; for (int i = 0; i < 255; i++) testPattern[i] = (byte)i; var testBuffer = new byte[255000]; var readBuffer = new byte[255000]; for (int i = 0; i < 1000; i++) { testPattern.CopyTo(testBuffer, 255*i); } for (int i = 0; i < 100; i++) { using ( var stream = new Storage.BlockProviderStream(AzureBlockStore.Instance, "test\\" + testBlobName, FileMode.Append)) { stream.Write(testBuffer, 0, 255000); } using(var stream = new Storage.BlockProviderStream(AzureBlockStore.Instance, "test\\" + testBlobName, FileMode.Open)) { Assert.AreEqual(255000 * (i+1), stream.Length); stream.Seek(-255000, SeekOrigin.End); int readCount = stream.Read(readBuffer, 0, 255000); Assert.AreEqual(255000, readCount); for (int x = 0; x < 1000; x++) { for (int y = 0; y < 255; y++) { Assert.AreEqual(y, readBuffer[(255 * x) + y]); } } } } for(int i = 0; i < 100; i++) { using(var stream = new Storage.BlockProviderStream(AzureBlockStore.Instance, "test\\"+testBlobName, FileMode.Open)) { stream.Seek(255000*i, SeekOrigin.Begin); int readCount = stream.Read(readBuffer, 0, 255000); Assert.AreEqual(255000, readCount); } for(int x =0;x<1000;x++) { for(int y = 0; y < 255; y++ ) { Assert.AreEqual(y, readBuffer[(255*x)+y]); } } } }