Пример #1
0
        private void TestRandomWriteOperation(FileStream targetStream, AlignedWriteStream writeStream,
            byte[] data, int offset, int count)
        {
            long possition = targetStream.Position;
            long length = targetStream.Length;

            targetStream.Write(data, offset, count);
            writeStream.Write(data, offset, count);

            Assert.AreEqual(targetStream.Position, writeStream.Position, string.Format("Position mismatch (Original {0})", possition));
            Assert.AreEqual(targetStream.Length, writeStream.Length, string.Format("Length mismatch (Original {0})", length));
        }
Пример #2
0
 private void TestAlignedWriteStreamSeekPosition(string targetFilename)
 {
     var buffer = new byte[1024];
     using (FileStream targetFileStream = new FileStream(targetFilename, FileMode.Create, FileAccess.ReadWrite, FileShare.Write, 8,
         FileOptions.WriteThrough | Win32.FileFlagNoBuffering))
     {
         using (AlignedWriteStream writeStream = new AlignedWriteStream(targetFileStream))
         {
             writeStream.Write(buffer, 0, 500);
             Assert.AreEqual(500, writeStream.Position, "Invlid position");
             Assert.AreEqual(0, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(500, writeStream.Length, "Invlid length");
             Assert.AreEqual(0, targetFileStream.Length, "Invlid length");
             writeStream.Seek(400, SeekOrigin.Begin);
             Assert.AreEqual(400, writeStream.Position, "Invlid position");
             Assert.AreEqual(0, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(500, writeStream.Length, "Invlid length");
             Assert.AreEqual(0, targetFileStream.Length, "Invlid length");
             writeStream.Write(buffer, 0, 650);
             Assert.AreEqual(1050, writeStream.Position, "Invlid position");
             Assert.AreEqual(1024, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(1050, writeStream.Length, "Invlid length");
             Assert.AreEqual(1024, targetFileStream.Length, "Invlid length");
             writeStream.Seek(1000, SeekOrigin.Begin);
             Assert.AreEqual(1000, writeStream.Position, "Invlid position");
             Assert.AreEqual(512, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(1050, writeStream.Length, "Invlid length");
             Assert.AreEqual(1536, targetFileStream.Length, "Invlid length");
             writeStream.Write(buffer, 19, 24);
             Assert.AreEqual(1024, writeStream.Position, "Invlid position");
             Assert.AreEqual(writeStream.Position, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(1050, writeStream.Length, "Invlid length");
             Assert.AreEqual(1536, targetFileStream.Length, "Invlid length");
             writeStream.Seek(12, SeekOrigin.Begin);
             Assert.AreEqual(12, writeStream.Position, "Invlid position");
             Assert.AreEqual(0, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(1050, writeStream.Length, "Invlid length");
             Assert.AreEqual(1536, targetFileStream.Length, "Invlid length");
             writeStream.Write(buffer, 19, 500);
             Assert.AreEqual(512, writeStream.Position, "Invlid position");
             Assert.AreEqual(writeStream.Position, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(1050, writeStream.Length, "Invlid length");
             Assert.AreEqual(1536, targetFileStream.Length, "Invlid length");
             writeStream.Seek(-2, SeekOrigin.End);
             Assert.AreEqual(1048, writeStream.Position, "Invlid position");
             Assert.AreEqual(1024, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(1050, writeStream.Length, "Invlid length");
             Assert.AreEqual(1536, targetFileStream.Length, "Invlid length");
             writeStream.Write(buffer, 0, 1000);
             Assert.AreEqual(2048, writeStream.Position, "Invlid position");
             Assert.AreEqual(2048, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(2048, writeStream.Length, "Invlid length");
             Assert.AreEqual(writeStream.Length, targetFileStream.Length, "Invlid length");
             writeStream.Seek(-1000, SeekOrigin.Current);
             Assert.AreEqual(1048, writeStream.Position, "Invlid position");
             Assert.AreEqual(1024, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(2048, writeStream.Length, "Invlid length");
             Assert.AreEqual(writeStream.Length, targetFileStream.Length, "Invlid length");
             writeStream.Seek(0, SeekOrigin.End);
             Assert.AreEqual(2048, writeStream.Position, "Invlid position");
             Assert.AreEqual(2048, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(2048, writeStream.Length, "Invlid length");
             Assert.AreEqual(writeStream.Length, targetFileStream.Length, "Invlid length");
             writeStream.Write(buffer, 11, 2);
             Assert.AreEqual(2050, writeStream.Position, "Invlid position");
             Assert.AreEqual(2048, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(2050, writeStream.Length, "Invlid length");
             Assert.AreEqual(2048, targetFileStream.Length, "Invlid length");
             writeStream.Seek(4000, SeekOrigin.Begin);
             Assert.AreEqual(4000, writeStream.Position, "Invlid position");
             Assert.AreEqual(3584, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(2050, writeStream.Length, "Invlid length");
             Assert.AreEqual(2560, targetFileStream.Length, "Invlid length");
             writeStream.Write(buffer, 40, 95);
             Assert.AreEqual(4095, writeStream.Position, "Invlid position");
             Assert.AreEqual(3584, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(4095, writeStream.Length, "Invlid length");
             Assert.AreEqual(2560, targetFileStream.Length, "Invlid length");
             writeStream.Write(buffer, 40, 1);
             Assert.AreEqual(4096, writeStream.Position, "Invlid position");
             Assert.AreEqual(4096, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(4096, writeStream.Length, "Invlid length");
             Assert.AreEqual(4096, targetFileStream.Length, "Invlid length");
         }
         Assert.AreEqual(4096, targetFileStream.Position, "Invlid position");
         Assert.AreEqual(4096, targetFileStream.Length, "Invlid length");
     }
 }
Пример #3
0
 private void TestAlignedWriteStreamWritePosition(string targetFilename)
 {
     var buffer = new byte[1024];
     using (FileStream targetFileStream = new FileStream(targetFilename, FileMode.Create, FileAccess.Write, FileShare.Write, 8,
         FileOptions.WriteThrough | Win32.FileFlagNoBuffering))
     {
         using (AlignedWriteStream writeStream = new AlignedWriteStream(targetFileStream))
         {
             writeStream.Write(buffer, 0, 500);
             Assert.AreEqual(500, writeStream.Position, "Invlid position");
             Assert.AreEqual(0, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(500, writeStream.Length, "Invlid length");
             Assert.AreEqual(0, targetFileStream.Length, "Invlid length");
             writeStream.Write(buffer, 500, 524);
             Assert.AreEqual(1024, writeStream.Position, "Invlid position");
             Assert.AreEqual(writeStream.Position, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(1024, writeStream.Length, "Invlid length");
             Assert.AreEqual(writeStream.Length, targetFileStream.Length, "Invlid length");
             writeStream.Write(buffer, 19, 512);
             Assert.AreEqual(1536, writeStream.Position, "Invlid position");
             Assert.AreEqual(writeStream.Position, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(1536, writeStream.Length, "Invlid length");
             Assert.AreEqual(writeStream.Length, targetFileStream.Length, "Invlid length");
             writeStream.Write(buffer, 0, 1000);
             Assert.AreEqual(2536, writeStream.Position, "Invlid position");
             Assert.AreEqual(2048, targetFileStream.Position, "Invlid position");
             Assert.AreEqual(2536, writeStream.Length, "Invlid length");
             Assert.AreEqual(2048, targetFileStream.Length, "Invlid length");
         }
         Assert.AreEqual(2560, targetFileStream.Position, "Invlid position");
         Assert.AreEqual(2560, targetFileStream.Length, "Invlid position");
     }
 }
Пример #4
0
        private void TestAlignedWriteStreamLength(string targetFilename)
        {
            var buffer = new byte[1024];
            using (FileStream targetFileStream = new FileStream(targetFilename, FileMode.Create, FileAccess.ReadWrite, FileShare.Write, 8,
                FileOptions.WriteThrough | Win32.FileFlagNoBuffering))
            {
                using (AlignedWriteStream writeStream = new AlignedWriteStream(targetFileStream))
                {
                    writeStream.Write(buffer, 0, 1000);
                    Assert.AreEqual(1000, writeStream.Position, "Invlid position");
                    Assert.AreEqual(512, targetFileStream.Position, "Invlid position");
                    Assert.AreEqual(1000, writeStream.Length, "Invlid length");
                    Assert.AreEqual(512, targetFileStream.Length, "Invlid length");
                    writeStream.SetLength(1024);
                    Assert.AreEqual(1000, writeStream.Position, "Invlid position");
                    Assert.AreEqual(512, targetFileStream.Position, "Invlid position");
                    Assert.AreEqual(1024, writeStream.Length, "Invlid length");
                    Assert.AreEqual(1024, targetFileStream.Length, "Invlid length");
                    writeStream.SetLength(512);
                    Assert.AreEqual(512, writeStream.Position, "Invlid position");
                    Assert.AreEqual(512, targetFileStream.Position, "Invlid position");
                    Assert.AreEqual(512, writeStream.Length, "Invlid length");
                    Assert.AreEqual(512, targetFileStream.Length, "Invlid length");
                    writeStream.Write(buffer, 0, 1000);
                    Assert.AreEqual(1512, writeStream.Position, "Invlid position");
                    Assert.AreEqual(1024, targetFileStream.Position, "Invlid position");
                    Assert.AreEqual(1512, writeStream.Length, "Invlid length");
                    Assert.AreEqual(1024, targetFileStream.Length, "Invlid length");
                    writeStream.SetLength(2048);
                    Assert.AreEqual(1512, writeStream.Position, "Invlid position");
                    Assert.AreEqual(1024, targetFileStream.Position, "Invlid position");
                    Assert.AreEqual(2048, writeStream.Length, "Invlid length");
                    Assert.AreEqual(2048, targetFileStream.Length, "Invlid length");
                    writeStream.Write(buffer, 345, 38);
                    Assert.AreEqual(1550, writeStream.Position, "Invlid position");
                    Assert.AreEqual(1536, targetFileStream.Position, "Invlid position");
                    Assert.AreEqual(2048, writeStream.Length, "Invlid length");
                    Assert.AreEqual(2048, targetFileStream.Length, "Invlid length");
                    writeStream.SetLength(0);
                    Assert.AreEqual(0, writeStream.Position, "Invlid position");
                    Assert.AreEqual(0, targetFileStream.Position, "Invlid position");
                    Assert.AreEqual(0, writeStream.Length, "Invlid length");
                    Assert.AreEqual(0, targetFileStream.Length, "Invlid length");
                    writeStream.Flush();
                    Assert.AreEqual(0, writeStream.Position, "Invlid position");
                    Assert.AreEqual(0, targetFileStream.Position, "Invlid position");
                    Assert.AreEqual(0, writeStream.Length, "Invlid length");
                    Assert.AreEqual(0, targetFileStream.Length, "Invlid length");

                }
                Assert.AreEqual(0, targetFileStream.Position, "Invlid position");
                Assert.AreEqual(0, targetFileStream.Length, "Invlid position");
            }
        }