public void TestProcessPipeStream() { const int ALL = 10000000; var strm = new ShellStreamProvider.ProcessPipeStream(); var rdr = new Reader(strm); Action x = rdr.ReadAll; var asyncResult = x.BeginInvoke(null, null); Random rand = new Random(319); for (int i = 0; i < ALL;) { var N = 1 + rand.Next(400); var buf = new byte[N]; int j; for (j = 0; j < N && i < ALL; j++, i++) { buf[j] = (byte)i; } strm.Write(buf, 0, j); //Console.WriteLine("Write {0} bytes", j); } strm.Write(null, 0, 0); Console.WriteLine("Waiting"); x.EndInvoke(asyncResult); Console.WriteLine("Terminated"); Assert.AreEqual(ALL, rdr.offset); }
public Reader(ShellStreamProvider.ProcessPipeStream strm1) { this.strm = strm1; }