public void Read_CountOverflow () { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile (path); using (StdioFileStream stream = new StdioFileStream (path, FileMode.OpenOrCreate, FileAccess.Read)) { stream.Read (new byte[0], 1, Int32.MaxValue); } }
public void Read_OffsetNegative () { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile (path); using (StdioFileStream stream = new StdioFileStream (path, FileMode.OpenOrCreate, FileAccess.Read)) { stream.Read (new byte[0], -1, 1); } }
public void TestReadVerifyAccessMode () { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile (path); StdioFileStream stream = null; byte[] buffer = new byte [100]; try { stream = new StdioFileStream (path, FileMode.OpenOrCreate, FileAccess.Write); stream.Read (buffer, 0, buffer.Length); } finally { if (stream != null) stream.Close (); } }
public void Flush () { #if XXX // This test depends too much on the internal implementation of stdio's FILE string path = TempFolder + DSC + "StdioFileStreamTest.Flush"; StdioFileStream stream = null; StdioFileStream stream2 = null; DeleteFile (path); try { stream = new StdioFileStream (path, FileMode.CreateNew, FileAccess.ReadWrite); stream2 = new StdioFileStream (path, FileMode.Open, FileAccess.ReadWrite); stream.Write (new byte [] {1, 2, 3, 4, 5}, 0, 5); byte [] bytes = new byte [5]; stream2.Read (bytes, 0, 5); Assert.AreEqual (0, bytes [0], "test#01"); Assert.AreEqual (0, bytes [1], "test#02"); Assert.AreEqual (0, bytes [2], "test#03"); Assert.AreEqual (0, bytes [3], "test#04"); stream.Flush (); stream2.Read (bytes, 0, 5); Assert.AreEqual (1, bytes [0], "test#05"); Assert.AreEqual (2, bytes [1], "test#06"); Assert.AreEqual (3, bytes [2], "test#07"); Assert.AreEqual (4, bytes [3], "test#08"); } finally { if (stream != null) stream.Close (); if (stream2 != null) stream2.Close (); Console.WriteLine ("P: " + path); //DeleteFile (path); } #endif }
public void Write () { string path = TempFolder + DSC + "StdioFileStreamTest.Write"; DeleteFile (path); StdioFileStream stream = new StdioFileStream (path, FileMode.CreateNew, FileAccess.ReadWrite); byte[] outbytes = new byte [] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; byte[] bytes = new byte [15]; // Check that the data is flushed when we overflow the buffer // with a large amount of data stream.Write (outbytes, 0, 5); stream.Write (outbytes, 5, 10); stream.Seek (0, SeekOrigin.Begin); stream.Read (bytes, 0, 15); for (int i = 0; i < 15; ++i) Assert.AreEqual (i + 1, bytes [i]); // Check that the data is flushed when we overflow the buffer // with a small amount of data stream.Write (outbytes, 0, 7); stream.Write (outbytes, 7, 7); stream.Write (outbytes, 14, 1); stream.Seek (15, SeekOrigin.Begin); Array.Clear (bytes, 0, bytes.Length); stream.Read (bytes, 0, 15); for (int i = 0; i < 15; ++i) Assert.AreEqual (i + 1, bytes [i]); stream.Close (); }
public void Flush () { string path = TempFolder + DSC + "StdioFileStreamTest.Flush"; StdioFileStream stream = null; StdioFileStream stream2 = null; DeleteFile (path); try { stream = new StdioFileStream (path, FileMode.CreateNew, FileAccess.ReadWrite); stream2 = new StdioFileStream (path, FileMode.Open, FileAccess.ReadWrite); stream.Write (new byte [] {1, 2, 3, 4, 5}, 0, 5); byte [] bytes = new byte [5]; stream2.Read (bytes, 0, 5); Assert.AreEqual (0, bytes [0], "test#01"); Assert.AreEqual (0, bytes [1], "test#02"); Assert.AreEqual (0, bytes [2], "test#03"); Assert.AreEqual (0, bytes [3], "test#04"); stream.Flush (); stream2.Read (bytes, 0, 5); Assert.AreEqual (1, bytes [0], "test#05"); Assert.AreEqual (2, bytes [1], "test#06"); Assert.AreEqual (3, bytes [2], "test#07"); Assert.AreEqual (4, bytes [3], "test#08"); } finally { if (stream != null) stream.Close (); if (stream2 != null) stream2.Close (); DeleteFile (path); } }