Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Always run CopyAllNativeProjectReferenceBinaries #67718

Merged
merged 9 commits into from
Apr 9, 2022
12 changes: 8 additions & 4 deletions src/tests/Common/CLRTest.CrossGen.targets
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ if [ ! -z ${RunCrossGen2+x} ]%3B then
cp $CORE_ROOT/lib*.so $CORE_ROOT/lib*.dylib $(scriptPath)
else
cp *.dll IL-CG2/
rm IL-CG2/composite-r2r.dll
rm IL-CG2/composite-r2r.dll 2>/dev/null
fi

ExtraCrossGen2Args+=" $(CrossGen2TestExtraArguments)"
Expand All @@ -77,10 +77,11 @@ if [ ! -z ${RunCrossGen2+x} ]%3B then
__cg2ExitCode=0

OneFileCrossgen2() {
date +%H:%M:%S
__OutputFile=$1

__ResponseFile="$__OutputFile.rsp"
rm $__ResponseFile
rm $__ResponseFile 2>/dev/null

__Command=$_DebuggerFullPath
# Tests run locally need __TestDotNetCmd (set by runtest.py) or a compatible 5.0 dotnet runtime in the path
Expand Down Expand Up @@ -114,6 +115,7 @@ if [ ! -z ${RunCrossGen2+x} ]%3B then
__cg2ExitCode=$?

export COMPlus_GCName COMPlus_GCStress COMPlus_HeapVerify COMPlus_ReadyToRun COMPlus_TC_OnStackReplacement COMPlus_TC_PartialCompilation
date +%H:%M:%S
}

if [ ! -z ${CompositeBuildMode+x} ]%3B then
Expand Down Expand Up @@ -183,7 +185,7 @@ if defined RunCrossGen2 (

mkdir IL-CG2
copy *.dll IL-CG2\
del IL-CG2\composite-r2r.dll
del IL-CG2\composite-r2r.dll 2>nul

if defined CompositeBuildMode (
set ExtraCrossGen2Args=!ExtraCrossGen2Args! --composite
Expand All @@ -208,8 +210,9 @@ if defined RunCrossGen2 (

goto :DoneCrossgen2Operations
:CompileOneFileCrossgen2
echo %time%
set __ResponseFile=!__OutputFile!.rsp
del /Q !__ResponseFile!
del /Q !__ResponseFile! 2>nul

set __Command=!_DebuggerFullPath!
REM Tests run locally need __TestDotNetCmd (set by runtest.py) or a compatible 5.0 dotnet runtime in the path
Expand Down Expand Up @@ -253,6 +256,7 @@ if defined RunCrossGen2 (
call !__Command!
endlocal
set CrossGen2Status=!ERRORLEVEL!
echo %time%
Exit /b 0

:DoneCrossgen2Operations
Expand Down
8 changes: 7 additions & 1 deletion src/tests/Common/CoreCLRTestLibrary/OutOfProcessTest.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Licensed to the .NET Foundation under one or more agreements.
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System;
Expand Down Expand Up @@ -71,6 +71,12 @@ public static void RunOutOfProcessTest(string basePath, string assemblyPath)
testExecutable = Path.Combine(baseDir, Path.ChangeExtension(assemblyPath.Replace("\\", "/"), ".sh"));
}

if (!File.Exists(testExecutable))
{
// Skip platform-specific test when running on the excluded platform
return;
}

System.IO.Directory.CreateDirectory(outputDir);

ret = wrapper.RunTest(testExecutable, outputFile, errorFile, Assembly.GetEntryAssembly()!.FullName!, testBinaryBase, outputDir);
Expand Down
6 changes: 3 additions & 3 deletions src/tests/Common/XUnitWrapperGenerator/ITestInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -338,15 +338,15 @@ public string WrapTestExecutionWithReporting(string testExecutionExpression, ITe

builder.AppendLine($"System.TimeSpan testStart = stopwatch.Elapsed;");
builder.AppendLine("try {");
builder.AppendLine($"System.Console.WriteLine(\"Running test: {{0}}\", {test.TestNameExpression});");
builder.AppendLine($"System.Console.WriteLine(\"{{0:HH:mm:ss.fff}} Running test: {{1}}\", System.DateTime.Now, {test.TestNameExpression});");
builder.AppendLine($"{_outputRecorderIdentifier}.ResetTestOutput();");
builder.AppendLine(testExecutionExpression);
builder.AppendLine($"{_summaryLocalIdentifier}.ReportPassedTest({test.TestNameExpression}, \"{test.ContainingType}\", @\"{test.Method}\", stopwatch.Elapsed - testStart, {_outputRecorderIdentifier}.GetTestOutput());");
builder.AppendLine($"System.Console.WriteLine(\"Passed test: {{0}}\", {test.TestNameExpression});");
builder.AppendLine($"System.Console.WriteLine(\"{{0:HH:mm:ss.fff}} Passed test: {{1}}\", System.DateTime.Now, {test.TestNameExpression});");
builder.AppendLine("}");
builder.AppendLine("catch (System.Exception ex) {");
builder.AppendLine($"{_summaryLocalIdentifier}.ReportFailedTest({test.TestNameExpression}, \"{test.ContainingType}\", @\"{test.Method}\", stopwatch.Elapsed - testStart, ex, {_outputRecorderIdentifier}.GetTestOutput());");
builder.AppendLine($"System.Console.WriteLine(\"Failed test: {{0}}\", {test.TestNameExpression});");
builder.AppendLine($"System.Console.WriteLine(\"{{0:HH:mm:ss.fff}} Failed test: {{1}}\", System.DateTime.Now, {test.TestNameExpression});");
builder.AppendLine("}");

builder.AppendLine("}");
Expand Down
11 changes: 8 additions & 3 deletions src/tests/Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -217,12 +217,17 @@
</Target>

<Target Name="CopyAllNativeProjectReferenceBinaries"
DependsOnTargets="ResolveCMakeNativeProjectReference;ConsolidateNativeProjectReference">
DependsOnTargets="ResolveCMakeNativeProjectReference;ConsolidateNativeProjectReference"
BeforeTargets="Build">

<ItemGroup Condition="'$(IsMergedTestRunnerAssembly)' == 'true'">
<MergedWrapperReferenceFolders Include="@(ProjectReference->'$([System.IO.Path]::GetFullPath('%(ProjectReference.Identity)/..', '$(OutDir)/..'))/%(ProjectReference.FileName)')" />
<OutOfProcessTestMarkers Include="$(OutDir)/../**/*.OutOfProcessTest" />
<OutOfProcessTestFolders Include="$([MSBuild]::NormalizePath('$([System.IO.Path]::GetDirectoryName('%(OutOfProcessTestMarkers.FullPath)'))'))" Condition="'@(OutOfProcessTestMarkers)' != ''" />
<MergedWrapperReferenceFolders Include="@(ProjectReference->'$([MSBuild]::NormalizePath('$([System.IO.Path]::GetFullPath('%(ProjectReference.Identity)/..', '$(OutDir)/..'))/%(ProjectReference.FileName)'))')" />
<!-- Don't copy out-of-process test components to the merged wrapper output folder -->
<MergedWrapperReferenceFolders Remove="@(OutOfProcessTestFolders)" />
<!-- For merged project wrappers, include native libraries in all project references -->
<MergedWrapperReferenceFiles Include="%(MergedWrapperReferenceFolders.Identity)/*$(LibSuffix)" />
<MergedWrapperReferenceFiles Include="%(MergedWrapperReferenceFolders.Identity)/*$(LibSuffix)" Condition="'@(MergedWrapperReferenceFolders)' != ''" />
</ItemGroup>
<Copy SourceFiles="@(MergedWrapperReferenceFiles)"
DestinationFiles="@(MergedWrapperReferenceFiles->'$(OutDir)/%(FileName)%(Extension)')"
Expand Down
1 change: 1 addition & 0 deletions src/tests/JIT/Methodical/Arrays/misc/arrres_il_r.ilproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
<JitOptimizationSensitive>true</JitOptimizationSensitive>
<RequiresProcessIsolation>true</RequiresProcessIsolation>
</PropertyGroup>
<ItemGroup>
<Compile Include="arrres.il" />
Expand Down
1 change: 1 addition & 0 deletions src/tests/JIT/Methodical/tailcall_v4/hijacking.ilproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
</PropertyGroup>
<PropertyGroup>
<JitOptimizationSensitive>true</JitOptimizationSensitive>
<RequiresProcessIsolation>true</RequiresProcessIsolation>
</PropertyGroup>
<ItemGroup>
<Compile Include="hijacking.il" />
Expand Down
8 changes: 8 additions & 0 deletions src/tests/issues.targets
Original file line number Diff line number Diff line change
Expand Up @@ -1868,6 +1868,12 @@
<ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/refany/lcs_il_r/**">
<Issue>https://github.com/dotnet/runtime/issues/34196</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Methodical/tailcall/compat_i4_u_il_d/**">
<Issue>https://github.com/dotnet/runtime/issues/67756</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Methodical/tailcall/compat_i4_u_il_r/**">
<Issue>https://github.com/dotnet/runtime/issues/67756</Issue>
</ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)JIT/Methodical/tailcall_v4/hijacking/**">
<Issue>needs triage</Issue>
</ExcludeList>
Expand Down Expand Up @@ -4007,6 +4013,8 @@
<FilteredExcludeList
Include="$([System.IO.Path]::GetRelativePath('$(XunitTestBinBase)', '%(ExcludeList.FullPath)'))"
Condition="'%(ExcludeList.Extension)' == '.dll'" />
<FilteredExcludeList Include="$([System.IO.Path]::ChangeExtension('$([System.IO.Path]::GetRelativePath('$(XunitTestBinBase)', '%(ExcludeList.RootDir)%(ExcludeList.Directory)%(ExcludeList.FileName)'))', '.cmd'))"
Condition="'%(ExcludeList.Extension)' == '.OutOfProcessTest'" />
</ItemGroup>
</Target>
</Project>
4 changes: 2 additions & 2 deletions src/tests/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -844,8 +844,8 @@ def run_tests(args,
if args.skip_test_run:
return

# Set default per-test timeout to 15 minutes (in milliseconds).
per_test_timeout = 15*60*1000
# Set default per-test timeout to 30 minutes (in milliseconds).
per_test_timeout = 30*60*1000

# Setup the environment
if args.long_gc:
Expand Down