Skip to content

Commit 2297f60

Browse files
authored
NativeAOT the XUnitLogChecker (#103795)
This breaks the dependency on having dotnet installed when running tests.
1 parent 27a7fe5 commit 2297f60

File tree

10 files changed

+73
-60
lines changed

10 files changed

+73
-60
lines changed

eng/testing/RunnerTemplate.cmd

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -109,15 +109,12 @@ if NOT "%__IsXUnitLogCheckerSupported%"=="1" (
109109
echo ----- start =============== XUnitLogChecker Output =====================================================
110110

111111
set DOTNET_EXE=%RUNTIME_PATH%\dotnet.exe
112-
set XUNITLOGCHECKER_DLL=%HELIX_CORRELATION_PAYLOAD%\XUnitLogChecker.dll
113-
set XUNITLOGCHECKER_COMMAND=%DOTNET_EXE% --roll-forward Major %XUNITLOGCHECKER_DLL% --dumps-path %HELIX_DUMP_FOLDER%
112+
set XUNITLOGCHECKER_EXE=%HELIX_CORRELATION_PAYLOAD%\XUnitLogChecker.exe
113+
set XUNITLOGCHECKER_COMMAND=%XUNITLOGCHECKER_EXE% --dumps-path %HELIX_DUMP_FOLDER%
114114
set XUNITLOGCHECKER_EXIT_CODE=1
115115

116-
if NOT EXIST %DOTNET_EXE% (
117-
echo dotnet.exe does not exist in the expected location: %DOTNET_EXE%
118-
GOTO XUNITLOGCHECKER_END
119-
) else if NOT EXIST %XUNITLOGCHECKER_DLL% (
120-
echo XUnitLogChecker.dll does not exist in the expected location: %XUNITLOGCHECKER_DLL%
116+
if NOT EXIST %XUNITLOGCHECKER_EXE% (
117+
echo XUnitLogChecker does not exist in the expected location: %XUNITLOGCHECKER_EXE%
121118
GOTO XUNITLOGCHECKER_END
122119
)
123120

eng/testing/RunnerTemplate.sh

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -79,23 +79,19 @@ function invoke_xunitlogchecker {
7979
local dump_folder=$1
8080

8181
total_dumps=$(find $dump_folder -name "*.dmp" | wc -l)
82-
82+
8383
if [[ $total_dumps > 0 ]]; then
8484
echo "Total dumps found in $dump_folder: $total_dumps"
85-
xunitlogchecker_file_name="$HELIX_CORRELATION_PAYLOAD/XUnitLogChecker.dll"
86-
dotnet_file_name="$RUNTIME_PATH/dotnet"
87-
88-
if [[ ! -f $dotnet_file_name ]]; then
89-
echo "'$dotnet_file_name' was not found. Unable to run XUnitLogChecker."
90-
xunitlogchecker_exit_code=1
91-
elif [[ ! -f $xunitlogchecker_file_name ]]; then
92-
echo "'$xunitlogchecker_file_name' was not found. Unable to print dump file contents."
85+
xunitlogchecker_file_name="$HELIX_CORRELATION_PAYLOAD/XUnitLogChecker"
86+
87+
if [[ ! -f $xunitlogchecker_file_name ]]; then
88+
echo "XUnitLogChecker does not exist in the expected location: $xunitlogchecker_file_name"
9389
xunitlogchecker_exit_code=2
9490
elif [[ ! -d $dump_folder ]]; then
9591
echo "The dump directory '$dump_folder' does not exist."
9692
else
9793
echo "Executing XUnitLogChecker in $dump_folder..."
98-
cmd="$dotnet_file_name --roll-forward Major $xunitlogchecker_file_name --dumps-path $dump_folder"
94+
cmd="$xunitlogchecker_file_name --dumps-path $dump_folder"
9995
echo "$cmd"
10096
$cmd
10197
xunitlogchecker_exit_code=$?
@@ -207,7 +203,7 @@ if [[ $system_name == "Linux" && $test_exitcode -ne 0 ]]; then
207203
if [[ -e /proc/sys/kernel/core_uses_pid && "1" == $(cat /proc/sys/kernel/core_uses_pid) ]]; then
208204
core_name_uses_pid=1
209205
fi
210-
206+
211207
# The osx dumps are too large to egress the machine
212208
echo Looking around for any Linux dumps...
213209

@@ -240,8 +236,9 @@ elif [[ -z "$__IsXUnitLogCheckerSupported" ]]; then
240236
elif [[ "$__IsXUnitLogCheckerSupported" != "1" ]]; then
241237
echo "XUnitLogChecker not supported for this test case. Skipping."
242238
else
239+
echo "XUnitLogChecker status: $__IsXUnitLogCheckerSupported"
243240
echo ----- start =============== XUnitLogChecker Output =====================================================
244-
241+
245242
invoke_xunitlogchecker "$HELIX_DUMP_FOLDER"
246243

247244
if [[ $xunitlogchecker_exit_code -ne 0 ]]; then

src/libraries/tests.proj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@
433433
<ProjectExclusions Remove="$(MSBuildThisFileDirectory)System.Collections\tests\System.Collections.Tests.csproj" />
434434
<ProjectExclusions Remove="$(MSBuildThisFileDirectory)System.IO.IsolatedStorage\tests\System.IO.IsolatedStorage.Tests.csproj" />
435435
</ItemGroup>
436-
436+
437437
<ItemGroup Condition="'$(TestNativeAot)' == 'true' or '$(TargetsMobile)' == 'true'">
438438
<ProjectExclusions Include="$(MSBuildThisFileDirectory)System.Resources.Extensions\tests\BinaryFormatTests\System.Resources.Extensions.BinaryFormat.Tests.csproj" />
439439
<ProjectExclusions Include="$(MSBuildThisFileDirectory)System.Resources.Extensions\tests\CompatTests\System.Resources.Extensions.Compat.Tests.csproj" />
@@ -767,7 +767,8 @@
767767
<ItemGroup Condition="'$(ArchiveTests)' == 'true' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and '$(IsXUnitLogCheckerSupported)' == 'true'">
768768
<ProjectReference
769769
Include="$(RepoRoot)src\tests\Common\XUnitLogChecker\XUnitLogChecker.csproj"
770-
AdditionalProperties="%(AdditionalProperties);Configuration=Release;OutDir=$(XUnitLogCheckerLibrariesOutDir)" />
770+
Targets="Publish"
771+
AdditionalProperties="%(AdditionalProperties);_IsPublishing=true;Configuration=Release;PublishDir=$(XUnitLogCheckerLibrariesOutDir);ROOTFS_DIR=$(ROOTFS_DIR);RuntimeIdentifier=$(OutputRID)" />
771772
</ItemGroup>
772773

773774
<Target Name="GenerateMergedCoverageReport"

src/tests/Common/Coreclr.TestWrapper/Coreclr.TestWrapper.csproj

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
55
<NuGetTargetMoniker>$(NetCoreAppCurrentToolTargetFrameworkMoniker)</NuGetTargetMoniker>
66
<NuGetTargetMonikerShort>$(NetCoreAppToolCurrent)</NuGetTargetMonikerShort>
7-
<RunAnalyzers>false</RunAnalyzers>
7+
<Nullable>enable</Nullable>
8+
<RunAnalyzers>true</RunAnalyzers>
9+
<EnableAotAnalyzer>true</EnableAotAnalyzer>
10+
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
811
</PropertyGroup>
912

1013
<ItemGroup>

src/tests/Common/Coreclr.TestWrapper/CoreclrTestWrapperLib.cs

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// Licensed to the .NET Foundation under one or more agreements.
22
// The .NET Foundation licenses this file to you under the MIT license.
33
//
4-
#nullable disable
54

65
using System;
76
using System.Collections.Generic;
@@ -100,7 +99,7 @@ public unsafe struct ProcessEntry32W
10099
static class @libproc
101100
{
102101
[DllImport(nameof(libproc))]
103-
private static extern int proc_listchildpids(int ppid, int[] buffer, int byteSize);
102+
private static extern int proc_listchildpids(int ppid, int[]? buffer, int byteSize);
104103

105104
public static unsafe bool ListChildPids(int ppid, out int[] buffer)
106105
{
@@ -171,7 +170,7 @@ private unsafe static IEnumerable<Process> Windows_GetChildren(Process process)
171170
private static IEnumerable<Process> Linux_GetChildren(Process process)
172171
{
173172
var children = new List<Process>();
174-
List<int> childPids = null;
173+
List<int>? childPids = null;
175174

176175
try
177176
{
@@ -188,7 +187,7 @@ private static IEnumerable<Process> Linux_GetChildren(Process process)
188187
pgrepInfo.RedirectStandardOutput = true;
189188
pgrepInfo.Arguments = $"-P {process.Id}";
190189

191-
using Process pgrep = Process.Start(pgrepInfo);
190+
using Process pgrep = Process.Start(pgrepInfo)!;
192191

193192
string[] pidStrings = pgrep.StandardOutput.ReadToEnd().Split('\n', StringSplitOptions.RemoveEmptyEntries);
194193
pgrep.WaitForExit();
@@ -271,7 +270,11 @@ static bool CollectCrashDumpWithMiniDumpWriteDump(Process process, string crashD
271270

272271
static bool CollectCrashDumpWithCreateDump(Process process, string crashDumpPath, StreamWriter outputWriter)
273272
{
274-
string coreRoot = Environment.GetEnvironmentVariable("CORE_ROOT");
273+
string? coreRoot = Environment.GetEnvironmentVariable("CORE_ROOT");
274+
if (coreRoot is null)
275+
{
276+
throw new InvalidOperationException("CORE_ROOT environment variable is not set.");
277+
}
275278
string createdumpPath = Path.Combine(coreRoot, "createdump");
276279
string arguments = $"--crashreport --name \"{crashDumpPath}\" {process.Id} --withheap";
277280
Process createdump = new Process();
@@ -388,7 +391,7 @@ public static bool TryPrintStackTraceFromCrashReport(string crashReportJsonFile,
388391
}
389392

390393
Console.WriteLine("=========================================");
391-
string userName = Environment.GetEnvironmentVariable("USER");
394+
string? userName = Environment.GetEnvironmentVariable("USER");
392395
if (!string.IsNullOrEmpty(userName))
393396
{
394397
if (!RunProcess("sudo", $"chown {userName} {crashReportJsonFile}", Console.Out))
@@ -426,8 +429,8 @@ public static bool TryPrintStackTraceFromCrashReport(string crashReportJsonFile,
426429
Console.WriteLine($"Error reading {crashReportJsonFile}: {ex.ToString()}");
427430
return false;
428431
}
429-
dynamic crashReport = JsonSerializer.Deserialize<JsonObject>(contents);
430-
var threads = crashReport["payload"]["threads"];
432+
var crashReport = JsonNode.Parse(contents)!;
433+
var threads = (JsonArray)crashReport["payload"]!["threads"]!;
431434

432435
// The logic happens in 3 steps:
433436
// 1. Read the crashReport.json file, locate all the addresses of interest and then build
@@ -443,7 +446,7 @@ public static bool TryPrintStackTraceFromCrashReport(string crashReportJsonFile,
443446
foreach (var thread in threads)
444447
{
445448

446-
if (thread["native_thread_id"] == null)
449+
if (thread!["native_thread_id"] == null)
447450
{
448451
continue;
449452
}
@@ -452,21 +455,21 @@ public static bool TryPrintStackTraceFromCrashReport(string crashReportJsonFile,
452455
addrBuilder.AppendLine("----------------------------------");
453456
addrBuilder.AppendLine($"Thread Id: {thread["native_thread_id"]}");
454457
addrBuilder.AppendLine(" Child SP IP Call Site");
455-
var stack_frames = thread["stack_frames"];
458+
var stack_frames = (JsonArray)thread["stack_frames"]!;
456459
foreach (var frame in stack_frames)
457460
{
458-
addrBuilder.Append($"{SKIP_LINE_TAG} {frame["stack_pointer"]} {frame["native_address"]} ");
459-
bool isNative = (string)frame["is_managed"] == "false";
461+
addrBuilder.Append($"{SKIP_LINE_TAG} {frame!["stack_pointer"]} {frame["native_address"]} ");
462+
bool isNative = (string)frame["is_managed"]! == "false";
460463

461464
if (isNative)
462465
{
463-
string nativeModuleName = (string)frame["native_module"];
464-
string unmanagedName = (string)frame["unmanaged_name"];
466+
var nativeModuleName = (string)frame["native_module"]!;
467+
var unmanagedName = (string)frame["unmanaged_name"]!;
465468

466469
if ((nativeModuleName != null) && (knownNativeModules.Contains(nativeModuleName)))
467470
{
468471
// Need to use llvm-symbolizer (only if module_address != 0)
469-
AppendAddress(addrBuilder, coreRoot, nativeModuleName, (string)frame["native_address"], (string)frame["module_address"]);
472+
AppendAddress(addrBuilder, coreRoot, nativeModuleName, (string)frame["native_address"]!, (string)frame["module_address"]!);
470473
}
471474
else if ((nativeModuleName != null) || (unmanagedName != null))
472475
{
@@ -482,8 +485,8 @@ public static bool TryPrintStackTraceFromCrashReport(string crashReportJsonFile,
482485
}
483486
else
484487
{
485-
string fileName = (string)frame["filename"];
486-
string methodName = (string)frame["method_name"];
488+
var fileName = (string)frame["filename"]!;
489+
var methodName = (string)frame["method_name"]!;
487490

488491
if ((fileName != null) || (methodName != null))
489492
{
@@ -507,7 +510,7 @@ public static bool TryPrintStackTraceFromCrashReport(string crashReportJsonFile,
507510
}
508511
}
509512

510-
string symbolizerOutput = null;
513+
string? symbolizerOutput = null;
511514

512515
Process llvmSymbolizer = new Process()
513516
{
@@ -602,7 +605,7 @@ private static void AppendAddress(StringBuilder sb, string coreRoot, string nati
602605

603606
public static bool TryPrintStackTraceFromDmp(string dmpFile, TextWriter outputWriter)
604607
{
605-
string targetArchitecture = Environment.GetEnvironmentVariable(TEST_TARGET_ARCHITECTURE_ENVIRONMENT_VAR);
608+
string? targetArchitecture = Environment.GetEnvironmentVariable(TEST_TARGET_ARCHITECTURE_ENVIRONMENT_VAR);
606609
if (string.IsNullOrEmpty(targetArchitecture))
607610
{
608611
outputWriter.WriteLine($"Environment variable {TEST_TARGET_ARCHITECTURE_ENVIRONMENT_VAR} is not set.");
@@ -675,10 +678,10 @@ public int RunTest(string executable, string outputFile, string errorFile, strin
675678

676679
// If a timeout was given to us by an environment variable, use it instead of the default
677680
// timeout.
678-
string environmentVar = Environment.GetEnvironmentVariable(TIMEOUT_ENVIRONMENT_VAR);
681+
string? environmentVar = Environment.GetEnvironmentVariable(TIMEOUT_ENVIRONMENT_VAR);
679682
int timeout = environmentVar != null ? int.Parse(environmentVar) : DEFAULT_TIMEOUT_MS;
680683
bool collectCrashDumps = Environment.GetEnvironmentVariable(COLLECT_DUMPS_ENVIRONMENT_VAR) != null;
681-
string crashDumpFolder = Environment.GetEnvironmentVariable(CRASH_DUMP_FOLDER_ENVIRONMENT_VAR);
684+
string? crashDumpFolder = Environment.GetEnvironmentVariable(CRASH_DUMP_FOLDER_ENVIRONMENT_VAR);
682685

683686
var outputStream = new FileStream(outputFile, FileMode.Create);
684687
var errorStream = new FileStream(errorFile, FileMode.Create);

src/tests/Common/Coreclr.TestWrapper/MobileAppHandler.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ private static int HandleMobileApp(string action, string platform, string catego
6363
if (platformValueFlag && actionValueFlag)
6464
{
6565
int timeout = 240000; // Set timeout to 4 mins, because the installation on Android arm64/32 devices could take up to 10 mins on CI
66-
string dotnetCmd_raw = System.Environment.GetEnvironmentVariable("__TestDotNetCmd");
67-
string xharnessCmd_raw = System.Environment.GetEnvironmentVariable("XHARNESS_CLI_PATH");
66+
string? dotnetCmd_raw = System.Environment.GetEnvironmentVariable("__TestDotNetCmd");
67+
string? xharnessCmd_raw = System.Environment.GetEnvironmentVariable("XHARNESS_CLI_PATH");
6868
string dotnetCmd = string.IsNullOrEmpty(dotnetCmd_raw) ? "dotnet" : dotnetCmd_raw;
6969
string xharnessCmd = string.IsNullOrEmpty(xharnessCmd_raw) ? "xharness" : $"exec {xharnessCmd_raw}";
7070
string appExtension = platform == "android" ? "apk" : "app";
@@ -194,9 +194,9 @@ private static string ConvertCmd2Arg(string cmd)
194194

195195
private static void CreateRetryFile(string fileName, int exitCode, string appName)
196196
{
197-
using (StreamWriter writer = new StreamWriter(fileName))
197+
using (StreamWriter writer = new StreamWriter(fileName))
198198
{
199-
writer.WriteLine($"appName: {appName}; exitCode: {exitCode}");
199+
writer.WriteLine($"appName: {appName}; exitCode: {exitCode}");
200200
}
201201
}
202202

src/tests/Common/XUnitLogChecker/XUnitLogChecker.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ private enum TagCategory { OPENING, CLOSING }
5656

5757
private static LogCheckerConfigParameters s_configuration;
5858

59-
static int Main(string[] args)
59+
public static int Main(string[] args)
6060
{
6161
s_configuration = new LogCheckerConfigParameters();
6262

src/tests/Common/XUnitLogChecker/XUnitLogChecker.csproj

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,20 @@
55
<TargetFramework>$(NetCoreAppToolCurrent)</TargetFramework>
66
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
77
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
8+
<PublishAot>true</PublishAot>
9+
<SuppressTrimAnalysisWarnings>false</SuppressTrimAnalysisWarnings>
10+
<LinkerFlavor Condition="'$(CrossBuild)' == 'true' and '$(TargetsLinux)' == 'true'">lld</LinkerFlavor>
11+
<SysRoot Condition="'$(CrossBuild)' == 'true' and '$(HostOS)' != 'windows'">$(ROOTFS_DIR)</SysRoot>
812
</PropertyGroup>
913

1014
<ItemGroup>
11-
<Compile Include="XUnitLogChecker.cs" />
15+
<CustomLinkerArg Condition="'$(CrossBuild)' == 'true' and '$(_hostArchitecture)' == '$(_targetArchitecture)' and '$(_hostOS)' != 'windows'" Include="--gcc-toolchain=$(ROOTFS_DIR)/usr" />
16+
<Compile Include="$(MSBuildThisFileDirectory)XUnitLogChecker.cs" />
1217
</ItemGroup>
1318

1419
<ItemGroup>
15-
<Compile Include="../Coreclr.TestWrapper/CoreclrTestWrapperLib.cs" Link="CoreclrTestWrapperLib.cs" />
16-
<Compile Include="../Coreclr.TestWrapper/MobileAppHandler.cs" Link="MobileAppHandler.cs" />
20+
<Compile Include="$(MSBuildThisFileDirectory)../Coreclr.TestWrapper/CoreclrTestWrapperLib.cs" Link="CoreclrTestWrapperLib.cs" />
21+
<Compile Include="$(MSBuildThisFileDirectory)../Coreclr.TestWrapper/MobileAppHandler.cs" Link="MobileAppHandler.cs" />
1722
</ItemGroup>
1823

1924
</Project>

src/tests/Common/helixpublishwitharcade.proj

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
<PropertyGroup>
6868
<CoreRootDirectory>$(TestBinDir)Tests\Core_Root\</CoreRootDirectory>
6969
<CoreRootDirectory>$([MSBuild]::NormalizeDirectory($(CoreRootDirectory)))</CoreRootDirectory>
70-
<XUnitLogCheckerDirectory>$(TestBinDir)Common\XUnitLogChecker\</XUnitLogCheckerDirectory>
70+
<XUnitLogCheckerDirectory>$(TestBinDir)XUnitLogChecker\</XUnitLogCheckerDirectory>
7171
<XUnitLogCheckerDirectory>$([MSBuild]::NormalizeDirectory($(XUnitLogCheckerDirectory)))</XUnitLogCheckerDirectory>
7272
<LegacyPayloadsRootDirectory>$(TestBinDir)LegacyPayloads\</LegacyPayloadsRootDirectory>
7373
<LegacyPayloadsRootDirectory>$([MSBuild]::NormalizeDirectory($(LegacyPayloadsRootDirectory)))</LegacyPayloadsRootDirectory>
@@ -392,7 +392,6 @@
392392
<PropertyGroup>
393393
<XUnitLogCheckerHelixPath Condition="'$(TestWrapperTargetsWindows)' != 'true'">%24HELIX_CORRELATION_PAYLOAD/</XUnitLogCheckerHelixPath>
394394
<XUnitLogCheckerHelixPath Condition="'$(TestWrapperTargetsWindows)' == 'true'">%25HELIX_CORRELATION_PAYLOAD%25/</XUnitLogCheckerHelixPath>
395-
<XUnitLogCheckerHelixPath>$(XUnitLogCheckerHelixPath)XUnitLogChecker/</XUnitLogCheckerHelixPath>
396395

397396
<XUnitLogCheckerArgs>--results-path $(_MergedWrapperRunScriptDirectoryRelative)</XUnitLogCheckerArgs>
398397
<XUnitLogCheckerArgs>$(XUnitLogCheckerArgs) --test-wrapper $(_MergedWrapperName)</XUnitLogCheckerArgs>
@@ -401,7 +400,7 @@
401400
<XUnitLogCheckerArgs Condition="'$(TestWrapperTargetsWindows)' != 'true'">$(XUnitLogCheckerArgs) %24HELIX_DUMP_FOLDER</XUnitLogCheckerArgs>
402401
<XUnitLogCheckerArgs Condition="'$(TestWrapperTargetsWindows)' == 'true'">$(XUnitLogCheckerArgs) %25HELIX_DUMP_FOLDER%25</XUnitLogCheckerArgs>
403402

404-
<XUnitLogCheckerCommand>dotnet $(XUnitLogCheckerHelixPath)XUnitLogChecker.dll $(XUnitLogCheckerArgs)</XUnitLogCheckerCommand>
403+
<XUnitLogCheckerCommand>$(XUnitLogCheckerHelixPath)XUnitLogChecker$(ExeSuffix) $(XUnitLogCheckerArgs)</XUnitLogCheckerCommand>
405404
</PropertyGroup>
406405

407406
<ItemGroup>
@@ -426,7 +425,7 @@
426425
<HelixCommandLines Condition="'$(TestWrapperTargetsWindows)' != 'true'" Include="test_exit_code=%24%3F" />
427426

428427
<!-- Add the XUnitLogChecker's running command and store its exit code. -->
429-
<HelixCommandLines Include="$(XUnitLogCheckerCommand)" />
428+
<HelixCommandLines Condition="'$(IsXunitLogCheckerSupported)' == 'true'" Include="$(XUnitLogCheckerCommand)" />
430429
<HelixCommandLines Condition="'$(TestWrapperTargetsWindows)' == 'true'" Include="set xunitlogchecker_exit_code=%25ERRORLEVEL%25" />
431430
<HelixCommandLines Condition="'$(TestWrapperTargetsWindows)' != 'true'" Include="xunitlogchecker_exit_code=%24%3F" />
432431

@@ -761,7 +760,7 @@
761760
<HelixCorrelationPayload Include="$(CoreRootDirectory)" />
762761

763762
<!-- Browser-Wasm and iOS platforms follow a very different workflow, which is currently out of scope of the Log Checker. It's not useful on any platform that uses xharness. -->
764-
<HelixCorrelationPayload Include="$(XUnitLogCheckerDirectory)" Condition="'$(TargetsBrowser)' != 'true' and '$(TargetsAppleMobile)' != 'true'" />
763+
<HelixCorrelationPayload Include="$(XUnitLogCheckerDirectory)" Condition="'$(IsXunitLogCheckerSupported)' == 'true' and '$(TargetsBrowser)' != 'true' and '$(TargetsAppleMobile)' != 'true'" />
765764
<HelixCorrelationPayload Condition="'$(TestWrapperTargetsWindows)' == 'true'" Include="dotnet-sos">
766765
<Destination>sos</Destination>
767766
<Uri>https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/flat2/dotnet-sos/$(DotnetSosVersion)/dotnet-sos.$(DotnetSosVersion).nupkg</Uri>

0 commit comments

Comments
 (0)