tests: ExecuteRunWeb: update expected SIGTERM exit code on mono. (#15341)
Co-authored-by: Michael Simons <msimons@microsoft.com>
This commit is contained in:
parent
15e62a00f4
commit
9a9449b598
1 changed files with 26 additions and 0 deletions
|
@ -14,6 +14,7 @@ internal class DotNetHelper
|
||||||
{
|
{
|
||||||
private static readonly object s_lockObj = new();
|
private static readonly object s_lockObj = new();
|
||||||
|
|
||||||
|
private static bool IsMonoRuntime { get; } = DetermineIsMonoRuntime();
|
||||||
public static string DotNetPath { get; } = Path.Combine(Config.DotNetDirectory, "dotnet");
|
public static string DotNetPath { get; } = Path.Combine(Config.DotNetDirectory, "dotnet");
|
||||||
public static string LogsDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "logs");
|
public static string LogsDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "logs");
|
||||||
public static string PackagesDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "packages");
|
public static string PackagesDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "packages");
|
||||||
|
@ -198,10 +199,13 @@ internal class DotNetHelper
|
||||||
|
|
||||||
public void ExecuteRunWeb(string projectName)
|
public void ExecuteRunWeb(string projectName)
|
||||||
{
|
{
|
||||||
|
// 'dotnet run' exit code differs between CoreCLR and Mono (https://github.com/dotnet/sdk/issues/30095).
|
||||||
|
int expectedExitCode = IsMonoRuntime ? 143 : 0;
|
||||||
ExecuteCmd(
|
ExecuteCmd(
|
||||||
$"run {GetBinLogOption(projectName, "run")}",
|
$"run {GetBinLogOption(projectName, "run")}",
|
||||||
GetProjectDirectory(projectName),
|
GetProjectDirectory(projectName),
|
||||||
additionalProcessConfigCallback: processConfigCallback,
|
additionalProcessConfigCallback: processConfigCallback,
|
||||||
|
expectedExitCode,
|
||||||
millisecondTimeout: 30000);
|
millisecondTimeout: 30000);
|
||||||
|
|
||||||
void processConfigCallback(Process process)
|
void processConfigCallback(Process process)
|
||||||
|
@ -230,5 +234,27 @@ internal class DotNetHelper
|
||||||
return $"/bl:{Path.Combine(LogsDirectory, $"{fileName}.binlog")}";
|
return $"/bl:{Path.Combine(LogsDirectory, $"{fileName}.binlog")}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool DetermineIsMonoRuntime()
|
||||||
|
{
|
||||||
|
string dotnetRoot = Config.DotNetDirectory;
|
||||||
|
|
||||||
|
string sharedFrameworkRoot = Path.Combine(dotnetRoot, "shared", "Microsoft.NETCore.App");
|
||||||
|
if (!Directory.Exists(sharedFrameworkRoot))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
string? version = Directory.GetDirectories(sharedFrameworkRoot).FirstOrDefault();
|
||||||
|
if (version is null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
string sharedFramework = Path.Combine(sharedFrameworkRoot, version);
|
||||||
|
|
||||||
|
// Check the presence of one of the mono header files.
|
||||||
|
return File.Exists(Path.Combine(sharedFramework, "mono-gc.h"));
|
||||||
|
}
|
||||||
|
|
||||||
private static string GetProjectDirectory(string projectName) => Path.Combine(ProjectsDirectory, projectName);
|
private static string GetProjectDirectory(string projectName) => Path.Combine(ProjectsDirectory, projectName);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue