public void ProgressProcessIo_TestCharMode_Batch_ExitedEvent_Async(bool kill, string procContent, string parameters, int expectedExitCode, string expectedStandard) { if (!TestHelper.GetDlcPath(out string dlcPath)) { return; } var proc = Path.Combine(TestFolder, "test.p"); File.WriteAllText(proc, procContent); var process = new UoeProcessIo(dlcPath, true, false) { WorkingDirectory = TestFolder }; _hasExited2 = false; process.OnProcessExit += (sender, args) => _hasExited2 = true; process.ExecuteNoWait(new ProcessArgs().Append("-p", "test.p").AppendFromQuotedArgs(parameters)); if (kill) { Task.Factory.StartNew(() => { Thread.Sleep(1000); process.Kill(); }); } process.WaitForExit(); Assert.AreEqual(expectedExitCode, Math.Abs(process.ExitCode), $"{process.ExecutablePath} {process.UsedArguments}"); Assert.AreEqual(expectedStandard, process.BatchOutput.ToString()); Assert.IsTrue(_hasExited2); Assert.AreEqual(kill, process.Killed); process.Dispose(); }
private bool StartProc(string procContent, bool useCharMode, bool silent, string parameters, int expectedExitCode, string expectedStandard, bool expectErrors, EventHandler <EventArgs> exitedHandler) { if (!TestHelper.GetDlcPath(out string dlcPath)) { return(false); } var proc = Path.Combine(TestFolder, "test.p"); File.WriteAllText(proc, procContent); var process = new UoeProcessIo(dlcPath, useCharMode, true) { WorkingDirectory = TestFolder }; if (exitedHandler != null) { process.OnProcessExit += exitedHandler; } process.Execute(new ProcessArgs().Append("-p", "test.p").AppendFromQuotedArgs(parameters), silent); Assert.AreEqual(expectedExitCode, process.ExitCode, $"{process.ExecutablePath} {process.UsedArguments}"); if (expectedStandard != null) { Assert.AreEqual(expectedStandard, process.BatchOutput.ToString()); } if (expectErrors) { Debug.WriteLine(process.BatchOutput); Assert.IsTrue(process.BatchOutput.Length > 1, process.BatchOutput.Length.ToString()); } return(true); }
/// <inheritdoc /> public void Dispose() { _progres?.Dispose(); _progres = null; }