[TestCase(2560, 3)] //メモリで動作 public void DynamicTest(int block, int count) { var ws = new WebStream(-1);//limitを指定しないで-1でダイナミックに初期化する var dmy = new byte[block]; for (var i = 0; i < block; i++) { dmy[i] = (byte)i; } for (var i = 0; i < count; i++) { ws.Add(dmy); } var buf = new byte[block]; for (var i = 0; i < count; i++) { var len = ws.Read(buf, 0, buf.Length); Assert.AreEqual(len, block); Assert.AreEqual(buf[0], 0); Assert.AreEqual(buf[1], 1); Assert.AreEqual(buf[2], 2); } ws.Dispose(); }
public void AddTest(int block, int count) { var max = block * count; var ws = new WebStream(max); var dmy = new byte[block]; for (var i = 0; i < block; i++) { dmy[i] = (byte)i; } for (var i = 0; i < count; i++) { ws.Add(dmy); } var buf = new byte[block]; for (var i = 0; i < count; i++) { var len = ws.Read(buf, 0, buf.Length); Assert.AreEqual(len, block); Assert.AreEqual(buf[0], 0); Assert.AreEqual(buf[1], 1); Assert.AreEqual(buf[2], 2); } ws.Dispose(); }
[TestCase(256, 1)] //1で1Mbyte //[TestCase(1000000, 2000)] //1で1Mbyte 自作cat.exeでは200MByteまでしか対応できない public void StartTest(int block, int count) { var srcDir = string.Format("{0}\\WebServerTest", TestUtil.ProjectDirectory()); //こちらの自作cat.exeでは、200Mbyteまでしか対応できていない var execProcess = new ExecProcess(string.Format("{0}\\cat.exe", srcDir), "", srcDir, null); var buf = new byte[block]; for (var b = 0; b < block; b++) { buf[b] = (byte)b; } var inputStream = new WebStream(block * count); for (var i = 0; i < count; i++) { inputStream.Add(buf); } WebStream outputStream; execProcess.Start(inputStream, out outputStream); for (var i = 0; i < count; i++) { var len = outputStream.Read(buf, 0, buf.Length); Assert.AreEqual(len, block); if (i == 0) { Assert.AreEqual(buf[0], 0); Assert.AreEqual(buf[1], 1); Assert.AreEqual(buf[2], 2); } } outputStream.Dispose(); inputStream.Dispose(); }