public void HostProgramTerminatesWhenItsOwnerProcessTerminates() { ProcessTask ownerProcess = StartHost("/ipc-port:HostIntegrationTest-Owner /timeout:30"); int ownerProcessId = ownerProcess.Process.Id; ProcessTask task = StartHost("/ipc-port:HostIntegrationTest /owner-process:" + ownerProcessId); Assert.IsFalse(task.Join(TimeSpan.FromSeconds(2)), "The host should not have exited yet."); ownerProcess.Abort(); Assert.IsTrue(task.Join(TimeSpan.FromSeconds(5)), "The host should terminate."); Assert.Contains(task.ConsoleOutput, "Owner process terminated abruptly!"); Assert.AreEqual(0, task.ExitCode); }
public void HostProgramTerminatesAutomaticallyOnTimeoutIfNoConnection() { ProcessTask task = StartHost("/ipc-port:HostIntegrationTest /timeout:1"); task.Join(TimeSpan.FromSeconds(10)); Assert.Contains(task.ConsoleOutput, "Watchdog timer expired!"); Assert.AreEqual(0, task.ExitCode); }
public void HostProgramTerminatesImmediatelyIfOwnerProcessDoesNotExist() { ProcessTask task = StartHost("/ipc-port:HostIntegrationTest /owner-process:100000"); // invalid process id task.Join(TimeSpan.FromSeconds(5)); Assert.Contains(task.ConsoleOutput, "The owner process with PID 100000 does not appear to be running!"); Assert.AreEqual(0, task.ExitCode); }
public void HostProgramPrintsHelpUsageWhenHelpOptionSpecified() { ProcessTask task = StartHost("/help"); task.Join(TimeSpan.FromSeconds(5)); Assert.Contains(task.ConsoleOutput, "Available options"); Assert.AreEqual(0, task.ExitCode); }
public void SetUp() { terminatedSuccessfully = new ManualResetEvent(false); processTask = Tasks.StartProcessTask(Path.Combine(Environment.SystemDirectory, "cmd.exe"), "/C exit " + COR_E_STACKOVERFLOW, Environment.CurrentDirectory); processTask.Terminated += processTask_Terminated; processTask.Start(); Assert.IsTrue(processTask.Join(TimeSpan.FromSeconds(10)), "Wait for exit"); }