From 5a42863fdc01ce97be7a5035cb4bb5868765578c Mon Sep 17 00:00:00 2001 From: NextTurn <45985406+NextTurn@users.noreply.github.com> Date: Mon, 21 Oct 2019 00:00:00 +0800 Subject: [PATCH] Potentially fix RunawayProcessKillerTest --- .../Extensions/RunawayProcessKillerTest.cs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/Test/winswTests/Extensions/RunawayProcessKillerTest.cs b/src/Test/winswTests/Extensions/RunawayProcessKillerTest.cs index 8f42d32..35c7578 100644 --- a/src/Test/winswTests/Extensions/RunawayProcessKillerTest.cs +++ b/src/Test/winswTests/Extensions/RunawayProcessKillerTest.cs @@ -71,19 +71,15 @@ $@" var extensionId = "runawayProcessKiller"; var tmpDir = FilesystemTestHelper.CreateTmpDirectory(); - // Prepare the env var - string varName = WinSWSystem.ENVVAR_NAME_SERVICE_ID; - var env = new Dictionary(); - env.Add(varName, winswId); - // Spawn the test process - var scriptFile = Path.Combine(tmpDir, "dosleep.bat"); - var envFile = Path.Combine(tmpDir, "env.txt"); - File.WriteAllText(scriptFile, "set > " + envFile + "\npause"); Process proc = new Process(); var ps = proc.StartInfo; - ps.FileName = scriptFile; - ProcessHelper.StartProcessAndCallbackForExit(proc, envVars: env); + ps.FileName = "cmd.exe"; + ps.Arguments = "/c pause"; + ps.UseShellExecute = false; + ps.RedirectStandardOutput = true; + ps.EnvironmentVariables[WinSWSystem.ENVVAR_NAME_SERVICE_ID] = winswId; + proc.Start(); try { @@ -103,6 +99,7 @@ $@" // Try to terminate Assert.That(!proc.HasExited, "Process " + proc + " has exited before the RunawayProcessKiller extension invocation"); + _ = proc.StandardOutput.Read(); extension.OnWrapperStarted(); Assert.That(proc.HasExited, "Process " + proc + " should have been terminated by RunawayProcessKiller"); }