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 bool IsMonoRuntime { get; } = DetermineIsMonoRuntime();
|
||||
public static string DotNetPath { get; } = Path.Combine(Config.DotNetDirectory, "dotnet");
|
||||
public static string LogsDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "logs");
|
||||
public static string PackagesDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "packages");
|
||||
|
@ -198,10 +199,13 @@ internal class DotNetHelper
|
|||
|
||||
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(
|
||||
$"run {GetBinLogOption(projectName, "run")}",
|
||||
GetProjectDirectory(projectName),
|
||||
additionalProcessConfigCallback: processConfigCallback,
|
||||
expectedExitCode,
|
||||
millisecondTimeout: 30000);
|
||||
|
||||
void processConfigCallback(Process process)
|
||||
|
@ -230,5 +234,27 @@ internal class DotNetHelper
|
|||
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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue