Просмотр исходного кода

Merge pull request #393 from NextTurn/envvar

Potentially fix RunawayProcessKillerTest
Oleg Nenashev 5 лет назад
Родитель
Сommit
04540f5b3e
1 измененных файлов с 7 добавлено и 10 удалено
  1. 7 10
      src/Test/winswTests/Extensions/RunawayProcessKillerTest.cs

+ 7 - 10
src/Test/winswTests/Extensions/RunawayProcessKillerTest.cs

@@ -71,19 +71,15 @@ $@"<service>
             var extensionId = "runawayProcessKiller";
             var tmpDir = FilesystemTestHelper.CreateTmpDirectory();
 
-            // Prepare the env var
-            string varName = WinSWSystem.ENVVAR_NAME_SERVICE_ID;
-            var env = new Dictionary<string, string>();
-            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 @@ $@"<service>
 
                 // 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");
             }