Exemple #1
0
        public void StandardInput()
        {
            var handle = ProcessHolder.SpawnWithRedirect("sort.exe", "", true, true, true);

            Assert.AreNotEqual(ProcessHolder.INVALID_HANDLE, handle);

            ProcessHolder.SetCreateNoWindow(handle, true);
            ProcessHolder.Start(handle);

            //ソート対象の文字列
            ProcessHolder.WriteLineStandardInput(handle, "xyz");
            ProcessHolder.WriteLineStandardInput(handle, "abc");
            ProcessHolder.WriteLineStandardInput(handle, "3");

            //Ctl-c 相当
            ProcessHolder.CloseStandardInput(handle);

            ProcessHolder.WaitForExit(handle);

            {
                var textOutput = ProcessHolder.ReadStandardOutputAsString(handle);
                Assert.AreEqual("3\nabc\nxyz", textOutput);
            }
            {
                var textError = ProcessHolder.ReadStandardErrorAsString(handle);
                Assert.AreEqual("", textError);
            }

            ProcessHolder.Destroy(handle);
        }