public void CtorIOException() { string path = TempFolder + DSC + "CTorIOException.Test"; StdioFileStream stream = null; StdioFileStream stream2 = null; DeleteFile(path); try { stream = new StdioFileStream(path, FileMode.CreateNew); // used by an another process stream2 = new StdioFileStream(path, FileMode.OpenOrCreate); } finally { if (stream != null) { stream.Close(); } if (stream2 != null) { stream2.Close(); } DeleteFile(path); } }
public void CtorAccess1Read2Read() { StdioFileStream fs = null; StdioFileStream fs2 = null; string tempPath = Path.Combine(TempFolder, "temp"); try { if (!File.Exists(tempPath)) { TextWriter tw = File.CreateText(tempPath); tw.Write("FOO"); tw.Close(); } fs = new StdioFileStream(tempPath, FileMode.Open, FileAccess.Read); fs2 = new StdioFileStream(tempPath, FileMode.Open, FileAccess.Read); } finally { if (fs != null) { fs.Close(); } if (fs2 != null) { fs2.Close(); } } }
public void PositionAfterWrite() { #if XXX string path = TempFolder + DSC + "FST.Position.Test"; DeleteFile(path); StdioFileStream stream = new StdioFileStream(path, FileMode.CreateNew, FileAccess.ReadWrite); FilePosition fp; Assert.AreEqual(0, stream.Position, "test #01"); Assert.AreEqual("(Mono.Unix.FilePosition 00000000", (fp = stream.FilePosition).ToString().Substring(0, 32), "test#02"); fp.Dispose(); byte[] message = new byte[] { (byte)'H', (byte)'e', (byte)'l', (byte)'l', (byte)'o', (byte)' ', (byte)'W', (byte)'o', (byte)'r', (byte)'l', (byte)'d', }; stream.Write(message, 0, message.Length); Assert.AreEqual(11, stream.Position, "test #03"); Assert.AreEqual(message.Length, stream.Position, "test #04"); Assert.AreEqual("(Mono.Unix.FilePosition 0B000000", (fp = stream.FilePosition).ToString().Substring(0, 32), "test#04"); fp.Dispose(); #endif }
public void TestDefaultProperties() { #if XXX string path = TempFolder + Path.DirectorySeparatorChar + "testStdioFileStream.tmp.2"; DeleteFile(path); StdioFileStream stream = new StdioFileStream(path, FileMode.Create); Assert.AreEqual(true, stream.CanRead, "test#01"); Assert.AreEqual(true, stream.CanSeek, "test#02"); Assert.AreEqual(true, stream.CanWrite, "test#03"); Assert.AreEqual(0, stream.Position, "test#06"); Assert.AreEqual("Mono.Unix.StdioFileStream", stream.ToString(), "test#07"); stream.Close(); DeleteFile(path); stream = new StdioFileStream(path, FileMode.OpenOrCreate, FileAccess.Read); Assert.AreEqual(true, stream.CanRead, "test#08"); Assert.AreEqual(true, stream.CanSeek, "test#09"); Assert.AreEqual(false, stream.CanWrite, "test#10"); Assert.AreEqual(0, stream.Position, "test#13"); Assert.AreEqual("Mono.Unix.StdioFileStream", stream.ToString(), "test#14"); stream.Close(); stream = new StdioFileStream(path, FileMode.Truncate, FileAccess.Write); Assert.AreEqual(false, stream.CanRead, "test#15"); Assert.AreEqual(true, stream.CanSeek, "test#16"); Assert.AreEqual(true, stream.CanWrite, "test#17"); Assert.AreEqual(0, stream.Position, "test#20"); Assert.AreEqual("Mono.Unix.StdioFileStream", stream.ToString(), "test#21"); stream.Close(); DeleteFile(path); #endif }
public void CtorAccess1Read2Read() { StdioFileStream fs = null; StdioFileStream fs2 = null; try { if (!File.Exists("temp")) { TextWriter tw = File.CreateText("temp"); tw.Write("FOO"); tw.Close(); } fs = new StdioFileStream("temp", FileMode.Open, FileAccess.Read); fs2 = new StdioFileStream("temp", FileMode.Open, FileAccess.Read); } finally { if (fs != null) { fs.Close(); } if (fs2 != null) { fs2.Close(); } if (File.Exists("temp")) { File.Delete("temp"); } } }
public void CtorArgumentNullException() { Assert.Throws <ArgumentNullException> (() => { StdioFileStream stream = new StdioFileStream(null, FileMode.Create); stream.Close(); }); }
public void Seek() { string path = TempFolder + DSC + "FST.Seek.Test"; DeleteFile(path); StdioFileStream stream = new StdioFileStream(path, FileMode.CreateNew, FileAccess.ReadWrite); StdioFileStream stream2 = new StdioFileStream(path, FileMode.Open, FileAccess.ReadWrite); stream.Write(new byte [] { 1, 2, 3, 4, 5, 6, 7, 8, 10 }, 0, 9); Assert.AreEqual(5, stream2.Seek(5, SeekOrigin.Begin), "test#01"); Assert.AreEqual(-1, stream2.ReadByte(), "test#02"); Assert.AreEqual(2, stream2.Seek(-3, SeekOrigin.Current), "test#03"); Assert.AreEqual(-1, stream2.ReadByte(), "test#04"); Assert.AreEqual(12, stream.Seek(3, SeekOrigin.Current), "test#05"); Assert.AreEqual(-1, stream.ReadByte(), "test#06"); Assert.AreEqual(5, stream.Seek(-7, SeekOrigin.Current), "test#07"); Assert.AreEqual(6, stream.ReadByte(), "test#08"); Assert.AreEqual(5, stream2.Seek(5, SeekOrigin.Begin), "test#09"); Assert.AreEqual(6, stream2.ReadByte(), "test#10"); stream.Close(); stream2.Close(); DeleteFile(path); }
public void CtorArgumentException1() { StdioFileStream stream; stream = new StdioFileStream("", FileMode.Create); stream.Close(); }
public void TestWriteVerifyAccessMode() { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile(path); StdioFileStream stream = null; byte[] buffer; try { buffer = Encoding.ASCII.GetBytes("test"); stream = new StdioFileStream(path, FileMode.OpenOrCreate, FileAccess.Read); stream.Write(buffer, 0, buffer.Length); } finally { if (stream != null) { stream.Close(); } DeleteFile(path); } }
public void CtorDirectoryNotFoundException() { string path = TempFolder + DSC + "thisDirectoryShouldNotExists"; if (Directory.Exists(path)) { Directory.Delete(path, true); } StdioFileStream stream = null; try { stream = new StdioFileStream(path + DSC + "eitherthisfile.test", FileMode.CreateNew); } finally { if (stream != null) { stream.Close(); } if (Directory.Exists(path)) { Directory.Delete(path, true); } } }
public void TestSeek() { string path = TempFolder + Path.DirectorySeparatorChar + "TestSeek"; DeleteFile(path); StdioFileStream stream = new StdioFileStream(path, FileMode.CreateNew, FileAccess.ReadWrite); stream.Write(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, 0, 10); stream.Seek(5, SeekOrigin.End); Assert.AreEqual(-1, stream.ReadByte(), "test#01"); stream.Seek(-5, SeekOrigin.End); Assert.AreEqual(6, stream.ReadByte(), "test#02"); try { stream.Seek(-11, SeekOrigin.End); Assert.Fail(); } catch (Exception e) { Assert.AreEqual(typeof(IOException), e.GetType(), "test#03"); } stream.Seek(19, SeekOrigin.Begin); Assert.AreEqual(-1, stream.ReadByte(), "test#04"); stream.Seek(1, SeekOrigin.Begin); Assert.AreEqual(2, stream.ReadByte(), "test#05"); stream.Seek(3, SeekOrigin.Current); Assert.AreEqual(6, stream.ReadByte(), "test#06"); stream.Seek(-2, SeekOrigin.Current); Assert.AreEqual(5, stream.ReadByte(), "test#07"); stream.Flush(); // Test that seeks work correctly when seeking inside the buffer stream.Seek(0, SeekOrigin.Begin); stream.WriteByte(0); stream.WriteByte(1); stream.Seek(0, SeekOrigin.Begin); byte[] buf = new byte [1]; buf [0] = 2; stream.Write(buf, 0, 1); stream.Write(buf, 0, 1); stream.Flush(); stream.Seek(0, SeekOrigin.Begin); Assert.AreEqual(2, stream.ReadByte(), "test#08"); Assert.AreEqual(2, stream.ReadByte(), "test#09"); stream.Close(); DeleteFile(path); }
public void SetLengthWithClosedBaseStream() { StdioFileStream fs = new StdioFileStream("temp", FileMode.Create); BufferedStream bs = new BufferedStream(fs); fs.Close(); bs.SetLength(1000); }
public void Seek_InvalidSeekOrigin() { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile(path); using (StdioFileStream stream = new StdioFileStream(path, FileMode.OpenOrCreate, FileAccess.Read)) { stream.Seek(0, (SeekOrigin)(-1)); } }
public void Seek_Disposed() { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile(path); StdioFileStream stream = new StdioFileStream(path, FileMode.OpenOrCreate, FileAccess.Write); stream.Close(); stream.Seek(0, SeekOrigin.Begin); }
public void Flush_Disposed() { Assert.Throws <ObjectDisposedException> (() => { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile(path); StdioFileStream stream = new StdioFileStream(path, FileMode.OpenOrCreate, FileAccess.Write); stream.Close(); stream.Flush(); }); }
public void Write_CountOverflow() { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile(path); using (StdioFileStream stream = new StdioFileStream(path, FileMode.OpenOrCreate, FileAccess.Write)) { stream.Write(new byte[0], 1, Int32.MaxValue); } }
public void Write_OffsetNegative() { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile(path); using (StdioFileStream stream = new StdioFileStream(path, FileMode.OpenOrCreate, FileAccess.Write)) { stream.Write(new byte[0], -1, 1); } }
public void SetLengthWithClosedBaseStream() { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; StdioFileStream fs = new StdioFileStream(path, FileMode.Create); BufferedStream bs = new BufferedStream(fs); fs.Close(); bs.SetLength(1000); }
public void Read_CountNegative() { 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 Read_OffsetOverflow() { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile(path); using (StdioFileStream stream = new StdioFileStream(path, FileMode.OpenOrCreate, FileAccess.Read)) { stream.Read(new byte[0], Int32.MaxValue, 1); } }
public void Position_Disposed() { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile(path); StdioFileStream stream = new StdioFileStream(path, FileMode.OpenOrCreate, FileAccess.Read); stream.Close(); stream.Position = 0; }
public void Write_OffsetOverflow() { Assert.Throws <ArgumentException> (() => { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile(path); using (StdioFileStream stream = new StdioFileStream(path, FileMode.OpenOrCreate, FileAccess.Write)) { stream.Write(new byte[0], Int32.MaxValue, 1); } }); }
public void Write_CountNegative() { Assert.Throws <ArgumentOutOfRangeException> (() => { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile(path); using (StdioFileStream stream = new StdioFileStream(path, FileMode.OpenOrCreate, FileAccess.Write)) { stream.Write(new byte[0], 1, -1); } }); }
public void SetLengthWithClosedBaseStream() { Assert.Throws <NotSupportedException> (() => { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; StdioFileStream fs = new StdioFileStream(path, FileMode.Create); BufferedStream bs = new BufferedStream(fs); fs.Close(); bs.SetLength(1000); }); }
public void ReadBytePastEndOfStream() { string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile(path); using (StdioFileStream stream = new StdioFileStream(path, FileMode.OpenOrCreate, FileAccess.Read)) { stream.Seek(0, SeekOrigin.End); Assert.AreEqual(-1, stream.ReadByte(), "ReadByte"); 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 Length() { // Test that the Length property takes into account the data // in the buffer string path = TempFolder + DSC + "StdioFileStreamTest.Length"; DeleteFile(path); StdioFileStream stream = new StdioFileStream(path, FileMode.CreateNew); byte[] outbytes = new byte [] { 1, 2, 3, 4 }; stream.Write(outbytes, 0, 4); Assert.AreEqual(stream.Length, 4); stream.Close(); }
public void CtorArgumentOutOfRangeException2() { StdioFileStream stream = null; string path = TempFolder + Path.DirectorySeparatorChar + "temp"; DeleteFile(path); try { stream = new StdioFileStream("test.test.test", FileMode.Append | FileMode.Open); } finally { if (stream != null) { stream.Close(); } DeleteFile(path); } }
public void CtorFileNotFoundException1() { string path = TempFolder + DSC + "thisfileshouldnotexists.test"; DeleteFile(path); StdioFileStream stream = null; try { stream = new StdioFileStream(path, FileMode.Open); } finally { if (stream != null) { stream.Close(); } DeleteFile(path); } }
public void TestCtr() { string path = TempFolder + DSC + "testfilestream.tmp.1"; DeleteFile(path); StdioFileStream stream = null; try { stream = new StdioFileStream(path, FileMode.Create); } finally { if (stream != null) { stream.Close(); } DeleteFile(path); } }