From 3896fc72424e9a44a19be584c6d9b379b120e978 Mon Sep 17 00:00:00 2001 From: BrennanConroy Date: Wed, 14 Nov 2018 10:48:12 -0800 Subject: [PATCH] Cleanup process (#3300) --- .../Docker.cs | 25 ++++++++++--------- .../Docker.cs | 25 ++++++++++--------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/test/Microsoft.AspNetCore.SignalR.Redis.Tests/Docker.cs b/test/Microsoft.AspNetCore.SignalR.Redis.Tests/Docker.cs index ff38d1b5de..cf25fcc393 100644 --- a/test/Microsoft.AspNetCore.SignalR.Redis.Tests/Docker.cs +++ b/test/Microsoft.AspNetCore.SignalR.Redis.Tests/Docker.cs @@ -149,18 +149,21 @@ namespace Microsoft.AspNetCore.SignalR.Redis.Tests { var (process, lines) = RunProcess(fileName, arguments, prefix, logger); - if (!process.WaitForExit((int)timeout.TotalMilliseconds)) + using (process) { - process.Close(); - logger.LogError("Closing process '{processName}' because it is running longer than the configured timeout.", fileName); + if (!process.WaitForExit((int)timeout.TotalMilliseconds)) + { + process.Close(); + logger.LogError("Closing process '{processName}' because it is running longer than the configured timeout.", fileName); + } + + // Need to WaitForExit without a timeout to guarantee the output stream has written everything + process.WaitForExit(); + + output = string.Join(Environment.NewLine, lines); + + return process.ExitCode; } - - // Need to WaitForExit without a timeout to guarantee the output stream has written everything - process.WaitForExit(); - - output = string.Join(Environment.NewLine, lines); - - return process.ExitCode; } private static (Process, ConcurrentQueue) RunProcess(string fileName, string arguments, string prefix, ILogger logger) @@ -179,9 +182,7 @@ namespace Microsoft.AspNetCore.SignalR.Redis.Tests EnableRaisingEvents = true }; - var exitCode = 0; var lines = new ConcurrentQueue(); - process.Exited += (_, __) => exitCode = process.ExitCode; process.OutputDataReceived += (_, a) => { LogIfNotNull(logger.LogInformation, $"'{prefix}' stdout: {{0}}", a.Data); diff --git a/test/Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests/Docker.cs b/test/Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests/Docker.cs index cd79c35c77..6286ad39e8 100644 --- a/test/Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests/Docker.cs +++ b/test/Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests/Docker.cs @@ -149,18 +149,21 @@ namespace Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests { var (process, lines) = RunProcess(fileName, arguments, prefix, logger); - if (!process.WaitForExit((int)timeout.TotalMilliseconds)) + using (process) { - process.Close(); - logger.LogError("Closing process '{processName}' because it is running longer than the configured timeout.", fileName); + if (!process.WaitForExit((int)timeout.TotalMilliseconds)) + { + process.Close(); + logger.LogError("Closing process '{processName}' because it is running longer than the configured timeout.", fileName); + } + + // Need to WaitForExit without a timeout to guarantee the output stream has written everything + process.WaitForExit(); + + output = string.Join(Environment.NewLine, lines); + + return process.ExitCode; } - - // Need to WaitForExit without a timeout to guarantee the output stream has written everything - process.WaitForExit(); - - output = string.Join(Environment.NewLine, lines); - - return process.ExitCode; } private static (Process, ConcurrentQueue) RunProcess(string fileName, string arguments, string prefix, ILogger logger) @@ -179,9 +182,7 @@ namespace Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests EnableRaisingEvents = true }; - var exitCode = 0; var lines = new ConcurrentQueue(); - process.Exited += (_, __) => exitCode = process.ExitCode; process.OutputDataReceived += (_, a) => { LogIfNotNull(logger.LogInformation, $"'{prefix}' stdout: {{0}}", a.Data);