Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomáš Rylek <trylek@microsoft.com>2021-10-06 22:04:27 +0300
committerGitHub <noreply@github.com>2021-10-06 22:04:27 +0300
commitbe918580c7e4ebe9b5262099caf116a67a2c9b5d (patch)
tree11995522e5ccc9e6b6383815004e469ab9499dec /src/tests/build.cmd
parent05345b2a78a571ef1c3861322788ffdeadb57c04 (diff)
Cleanup of runtime test build scripts (#58762)
This change moves most test build logic from the scripts src/tests/build.cmd and src/tests/build.sh into the common MSBuild script src/tests/build.proj; the scripts stay in place but now they only deal with parsing the command-line parameters and building native test components, all remaining functionality is delegated to the common project. Thanks Tomas
Diffstat (limited to 'src/tests/build.cmd')
-rw-r--r--src/tests/build.cmd346
1 files changed, 33 insertions, 313 deletions
diff --git a/src/tests/build.cmd b/src/tests/build.cmd
index e46ace6a3dd..6d56cc6b4f1 100644
--- a/src/tests/build.cmd
+++ b/src/tests/build.cmd
@@ -46,12 +46,13 @@ set __BuildTestProject=%%3B
set __BuildTestDir=%%3B
set __BuildTestTree=%%3B
-set __SkipRestorePackages=
+set __BuildLogRootName=TestBuild
+
+set __SkipRestorePackages=0
set __SkipManaged=
set __SkipTestWrappers=
set __BuildTestWrappersOnly=
set __SkipNative=
-set __TargetsWindows=1
set __DoCrossgen2=
set __CompositeBuildMode=
set __TestBuildMode=
@@ -68,7 +69,6 @@ set __CMakeArgs=
@REM appears to CMD parsing as "-priority 1". Handle -priority specially to avoid problems,
@REM and allow the "-priority=1" syntax.
set __Priority=0
-set __PriorityArg=
set __BuildNeedTargetArg=
@@ -106,6 +106,8 @@ if /i "%1" == "test" (set __BuildTestProject=!__BuildTestProjec
if /i "%1" == "dir" (set __BuildTestDir=!__BuildTestDir!%2%%3B&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop)
if /i "%1" == "tree" (set __BuildTestTree=!__BuildTestTree!%2%%3B&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop)
+if /i "%1" == "log" (set __BuildLogRootName=%2&shift&shift&goto Arg_Loop)
+
if /i "%1" == "copynativeonly" (set __CopyNativeTestBinaries=1&set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set __SkipGenerateLayout=1&set __SkipTestWrappers=1&set __SkipCrossgenFramework=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "generatelayoutonly" (set __SkipManaged=1&set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "buildtestwrappersonly" (set __SkipNative=1&set __SkipManaged=1&set __BuildTestWrappersOnly=1&set __SkipGenerateLayout=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
@@ -115,7 +117,6 @@ if /i "%1" == "buildagainstpackages" (echo error: Remove /BuildAgainstPackages
if /i "%1" == "crossgen2" (set __DoCrossgen2=1&set __TestBuildMode=crossgen2&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "composite" (set __CompositeBuildMode=1&set __DoCrossgen2=1&set __TestBuildMode=crossgen2&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "pdb" (set __CreatePdb=1&shift&goto Arg_Loop)
-if /i "%1" == "targetsNonWindows" (set __TargetsWindows=0&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "Exclude" (set __Exclude=%2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop)
if /i "%1" == "-priority" (set __Priority=%2&shift&set processedArgs=!processedArgs! %1=%2&shift&goto Arg_Loop)
if /i "%1" == "allTargets" (set "__BuildNeedTargetArg=/p:CLRTestBuildAllTargets=%1"&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
@@ -133,32 +134,8 @@ if [!processedArgs!]==[] (
:ArgsDone
-@REM Special handling for -priority=N argument.
-if %__Priority% GTR 0 (
- set "__PriorityArg=/p:CLRTestPriorityToBuild=%__Priority%"
-)
-
-set TargetsWindowsArg=
-set TargetsWindowsMsbuildArg=
-if "%__TargetsWindows%"=="1" (
- set TargetsWindowsArg=-TargetsWindows=true
- set TargetsWindowsMsbuildArg=/p:TargetsWindows=true
-) else if "%__TargetsWindows%"=="0" (
- set TargetsWindowsArg=-TargetsWindows=false
- set TargetsWindowsMsbuildArg=/p:TargetsWindows=false
-)
-
-if "%__Mono%"=="1" (
- set __RuntimeFlavor=mono
-) else (
- set __RuntimeFlavor=coreclr
-)
-
@if defined _echo @echo on
-set __CommonMSBuildArgs=/p:TargetOS=%__TargetOS% /p:Configuration=%__BuildType% /p:TargetArchitecture=%__BuildArch%
-set __msbuildArgs=/p:TargetOS=%__TargetOS% /p:Configuration=%__BuildType% /p:TargetArchitecture=%__BuildArch% /nologo /verbosity:minimal /clp:Summary /maxcpucount
-
echo %__MsgPrefix%Commencing CoreCLR test build
set "__OSPlatformConfig=%__TargetOS%.%__BuildArch%.%__BuildType%"
@@ -172,9 +149,6 @@ if "%__RebuildTests%" == "1" (
rmdir /s /q !__TestBinDir!
)
-if not defined XunitTestBinBase set XunitTestBinBase=%__TestBinDir%\
-set "CORE_ROOT=%XunitTestBinBase%\Tests\Core_Root"
-
REM We have different managed and native intermediate dirs because the managed bits will include
REM the configuration information deeper in the intermediates path.
REM These variables are used by the msbuild project files.
@@ -199,13 +173,34 @@ if not exist "%__MsbuildDebugLogsDir%" md "%__MsbuildDebugLogsDir%"
REM Set up the directory for MSBuild debug logs.
set MSBUILDDEBUGPATH=%__MsbuildDebugLogsDir%
+set __CommonMSBuildArgs="/p:TargetOS=%__TargetOS%"
+set __CommonMSBuildArgs=%__CommonMSBuildArgs% "/p:Configuration=%__BuildType%"
+set __CommonMSBuildArgs=%__CommonMSBuildArgs% "/p:TargetArchitecture=%__BuildArch%"
+
+if "%__Mono%"=="1" (
+ set __CommonMSBuildArgs=!__CommonMSBuildArgs! "/p:RuntimeFlavor=mono"
+) else (
+ set __CommonMSBuildArgs=!__CommonMSBuildArgs! "/p:RuntimeFlavor=coreclr"
+)
+
+if %__Ninja% == 0 (
+ set __CommonMSBuildArgs=%__CommonMSBuildArgs% /p:UseVisualStudioNativeBinariesLayout=true
+)
+
+set __msbuildArgs=%__CommonMSBuildArgs% /nologo /verbosity:minimal /clp:Summary /maxcpucount %__UnprocessedBuildArgs%
+
+echo Common MSBuild args: %__msbuildArgs%
+
REM =========================================================================================
REM ===
REM === Native test build section
REM ===
REM =========================================================================================
-if defined __SkipNative goto skipnative
+if "%__SkipNative%" == "1" goto skipnative
+if "%__BuildTestWrappersOnly%" == "1" goto skipnative
+if "%__GenerateLayoutOnly%" == "1" goto skipnative
+if "%__CopyNativeTestBinaries%" == "1" goto skipnative
echo %__MsgPrefix%Commencing build of native test components for %__BuildArch%/%__BuildType%
@@ -259,7 +254,6 @@ if not exist "%__NativeTestIntermediatesDir%\CMakeCache.txt" (
echo Environment setup
-set __BuildLogRootName=Tests_Native
set __BuildLog="%__LogsDir%\!__BuildLogRootName!_%__TargetOS%__%__BuildArch%__%__BuildType%.log"
set __BuildWrn="%__LogsDir%\!__BuildLogRootName!_%__TargetOS%__%__BuildArch%__%__BuildType%.wrn"
set __BuildErr="%__LogsDir%\!__BuildLogRootName!_%__TargetOS%__%__BuildArch%__%__BuildType%.err"
@@ -288,227 +282,18 @@ if errorlevel 1 (
REM =========================================================================================
REM ===
-REM === Restore product binaries from packages
+REM === Restore packages, build managed tests, generate layout and test wrappers, Crossgen framework
REM ===
REM =========================================================================================
-if "%__SkipRestorePackages%" == "1" goto SkipRestoreProduct
-
-echo %__MsgPrefix%Restoring CoreCLR product from packages
-
-set __BuildLogRootName=Restore_Product
-set __BuildLog=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.log
-set __BuildWrn=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.wrn
-set __BuildErr=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.err
-set __MsbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%"
-set __MsbuildWrn=/flp1:WarningsOnly;LogFile="%__BuildWrn%"
-set __MsbuildErr=/flp2:ErrorsOnly;LogFile="%__BuildErr%"
-set __Logging='!__MsbuildLog!' '!__MsbuildWrn!' '!__MsbuildErr!'
-
powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -Command "%__RepoRootDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
- %__RepoRootDir%\src\tests\build.proj -warnAsError:0 /t:BatchRestorePackages /nodeReuse:false^
- /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
- /p:UsePartialNGENOptimization=false /maxcpucount^
- !__Logging! %__CommonMSBuildArgs% %__PriorityArg% %__BuildNeedTargetArg% %__UnprocessedBuildArgs%
-
-if errorlevel 1 (
- echo %__ErrMsgPrefix%%__MsgPrefix%Error: Package restoration failed. Refer to the build log files for details:
- echo %__BuildLog%
- echo %__BuildWrn%
- echo %__BuildErr%
- exit /b 1
-)
-
-:SkipRestoreProduct
-
-REM =========================================================================================
-REM ===
-REM === Managed test build section
-REM ===
-REM =========================================================================================
-
-if defined __SkipManaged goto SkipManagedBuild
-
-echo %__MsgPrefix%Starting the Managed Tests Build
-
-set __AppendToLog=false
-set __BuildLogRootName=Tests_Managed
-set __BuildLog=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.log
-set __BuildWrn=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.wrn
-set __BuildErr=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.err
-
-REM Execute msbuild test build in stages - workaround for excessive data retention in MSBuild ConfigCache
-REM See https://github.com/Microsoft/msbuild/issues/2993
-
-set __SkipPackageRestore=false
-set __SkipTargetingPackBuild=false
-set __NumberOfTestGroups=3
-
-if %__Priority% GTR 0 (set __NumberOfTestGroups=10)
-echo %__MsgPrefix%Building tests divided into %__NumberOfTestGroups% test groups
-
-set __CommonMSBuildCmdPrefix=powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -Command "!__RepoRootDir!\eng\common\msbuild.ps1" !__ArcadeScriptArgs!
-
-set __NativeBinariesLayoutTypeArg=
-
-if %__Ninja% == 0 (
- set __NativeBinariesLayoutTypeArg=/p:UseVisualStudioNativeBinariesLayout=true
-)
-
-for /l %%G in (1, 1, %__NumberOfTestGroups%) do (
-
- set __MsbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%";Append=!__AppendToLog!
- set __MsbuildWrn=/flp1:WarningsOnly;LogFile="%__BuildWrn%";Append=!__AppendToLog!
- set __MsbuildErr=/flp2:ErrorsOnly;LogFile="%__BuildErr%";Append=!__AppendToLog!
- set __Logging='!__MsbuildLog!' '!__MsbuildWrn!' '!__MsbuildErr!'
-
- set __TestGroupToBuild=%%G
-
- if not "%__CopyNativeTestBinaries%" == "1" (
- set __MSBuildBuildArgs=!__RepoRootDir!\src\tests\build.proj
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! -warnAsError:0
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! /nodeReuse:false
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! !__Logging!
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! !TargetsWindowsMsbuildArg!
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! !__msbuildArgs!
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! !__PriorityArg! !__BuildNeedTargetArg!
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! !__UnprocessedBuildArgs!
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! /p:CopyNativeProjectBinaries=!__CopyNativeProjectsAfterCombinedTestBuild!
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! /p:__SkipPackageRestore=true
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! !__NativeBinariesLayoutTypeArg!
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! /p:RuntimeFlavor=!__RuntimeFlavor!
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! /p:BuildTestProject=!__BuildTestProject!
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! /p:BuildTestDir=!__BuildTestDir!
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! /p:BuildTestTree=!__BuildTestTree!
-
- echo Running: msbuild !__MSBuildBuildArgs!
- !__CommonMSBuildCmdPrefix! !__MSBuildBuildArgs!
-
- if errorlevel 1 (
- echo %__ErrMsgPrefix%%__MsgPrefix%Error: managed test build failed. Refer to the build log files for details:
- echo %__BuildLog%
- echo %__BuildWrn%
- echo %__BuildErr%
- REM This is necessary because of a(n apparent) bug in the FOR /L command. Under certain circumstances,
- REM such as when this script is invoke with CMD /C "build.cmd", a non-zero exit directly from
- REM within the loop body will not propagate to the caller. For some reason, goto works around it.
- goto :Exit_Failure
- )
- ) else (
- set __MSBuildBuildArgs=!__RepoRootDir!\src\tests\build.proj -warnAsError:0 /nodeReuse:false !__Logging! !TargetsWindowsMsbuildArg! !__msbuildArgs! !__PriorityArg! !__BuildNeedTargetArg! !__NativeBinariesLayoutTypeArg! !__UnprocessedBuildArgs! "/t:CopyAllNativeProjectReferenceBinaries"
- set __MSBuildBuildArgs=!__MSBuildBuildArgs! /p:RuntimeFlavor=!__RuntimeFlavor!
- echo Running: msbuild !__MSBuildBuildArgs!
- !__CommonMSBuildCmdPrefix! !__MSBuildBuildArgs!
-
- if errorlevel 1 (
- echo %__ErrMsgPrefix%%__MsgPrefix%Error: copying native test binaries failed. Refer to the build log files for details:
- echo %__BuildLog%
- echo %__BuildWrn%
- echo %__BuildErr%
- REM This is necessary because of a(n apparent) bug in the FOR /L command. Under certain circumstances,
- REM such as when this script is invoke with CMD /C "build.cmd", a non-zero exit directly from
- REM within the loop body will not propagate to the caller. For some reason, goto works around it.
- goto :Exit_Failure
- )
- )
-
- set __SkipPackageRestore=true
- set __SkipTargetingPackBuild=true
- set __AppendToLog=true
-)
-
-if "%__CopyNativeTestBinaries%" == "1" goto :SkipManagedBuild
-
-REM Check that we've built about as many tests as we expect. This is primarily intended to prevent accidental changes that cause us to build
-REM drastically fewer Pri-1 tests than expected.
-echo %__MsgPrefix%Check the managed tests build
-echo Running: dotnet msbuild %__RepoRootDir%\src\tests\run.proj /t:CheckTestBuild /nodeReuse:false /p:CLRTestPriorityToBuild=%__Priority% %__msbuildArgs% %__unprocessedBuildArgs%
-powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__RepoRootDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
- %__RepoRootDir%\src\tests\run.proj /t:CheckTestBuild /nodeReuse:false /p:CLRTestPriorityToBuild=%__Priority% %__msbuildArgs% %__unprocessedBuildArgs%
-if errorlevel 1 (
- echo %__ErrMsgPrefix%%__MsgPrefix%Error: Check Test Build failed.
- exit /b 1
-)
-
-:SkipManagedBuild
-
-if "%__SkipGenerateLayout%" == "1" goto SkipGenerateLayout
-
-REM =========================================================================================
-REM ===
-REM === Prepare the test drop
-REM ===
-REM =========================================================================================
-
-echo %__MsgPrefix%Removing 'ni' files and 'lock' folders from %__TestBinDir%
-REM Remove any NI from previous runs.
-powershell -NoProfile "Get-ChildItem -path %__TestBinDir% -Include '*.ni.*' -Recurse -Force | Remove-Item -force"
-REM Remove any lock folder used for synchronization from previous runs.
-powershell -NoProfile "Get-ChildItem -path %__TestBinDir% -Include 'lock' -Recurse -Force | where {$_.Attributes -eq 'Directory'}| Remove-Item -force -Recurse"
-
-set CORE_ROOT=%__TestBinDir%\Tests\Core_Root
-if exist "%CORE_ROOT%" rd /s /q "%CORE_ROOT%"
-md "%CORE_ROOT%"
-
-REM =========================================================================================
-REM ===
-REM === Create the test overlay
-REM ===
-REM =========================================================================================
-
-echo %__MsgPrefix%Creating test overlay
-
-set __BuildLogRootName=Tests_Overlay_Managed
-set __BuildLog=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.log
-set __BuildWrn=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.wrn
-set __BuildErr=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.err
-set __MsbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%"
-set __MsbuildWrn=/flp1:WarningsOnly;LogFile="%__BuildWrn%"
-set __MsbuildErr=/flp2:ErrorsOnly;LogFile="%__BuildErr%"
-set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr!
-
-powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__RepoRootDir%\eng\common\msbuild.ps1" %__ArcadeScriptArgs%^
- %__RepoRootDir%\src\tests\run.proj /t:CreateTestOverlay /nodeReuse:false^
+ %__RepoRootDir%\src\tests\build.proj -warnAsError:0 /t:TestBuild /nodeReuse:false^
/p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
/p:UsePartialNGENOptimization=false /maxcpucount^
- !__Logging! %__CommonMSBuildArgs% %__PriorityArg% %__BuildNeedTargetArg% %__UnprocessedBuildArgs%
-if errorlevel 1 (
- echo %__ErrMsgPrefix%%__MsgPrefix%Error: Create Test Overlay failed. Refer to the build log files for details:
- echo %__BuildLog%
- echo %__BuildWrn%
- echo %__BuildErr%
- exit /b 1
-)
-
-:SkipGenerateLayout
-
-REM =========================================================================================
-REM ===
-REM === Create test wrappers.
-REM ===
-REM =========================================================================================
-
-if defined __BuildTestWrappersOnly goto BuildTestWrappers
-
-if defined __SkipManaged goto SkipBuildingWrappers
-if defined __SkipTestWrappers goto SkipBuildingWrappers
-
-:BuildTestWrappers
-echo %__MsgPrefix%Creating test wrappers
-
-set __BuildLogRootName=Tests_XunitWrapper
-set __BuildLog=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.log
-set __BuildWrn=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.wrn
-set __BuildErr=%__LogsDir%\%__BuildLogRootName%_%__TargetOS%__%__BuildArch%__%__BuildType%.err
-set __MsbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%"
-set __MsbuildWrn=/flp1:WarningsOnly;LogFile="%__BuildWrn%"
-set __MsbuildErr=/flp2:ErrorsOnly;LogFile="%__BuildErr%"
-set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr!
+ %__msbuildArgs%
-REM Build wrappers using the local SDK's msbuild. As we move to arcade, the other builds should be moved away from run.exe as well.
-call "%__RepoRootDir%\dotnet.cmd" msbuild %__RepoRootDir%\src\tests\run.proj /nodereuse:false /p:BuildWrappers=true /p:TestBuildMode=%__TestBuildMode% !__Logging! %__msbuildArgs% %TargetsWindowsMsbuildArg% %__UnprocessedBuildArgs% /p:RuntimeFlavor=%__RuntimeFlavor%
if errorlevel 1 (
- echo %__ErrMsgPrefix%%__MsgPrefix%Error: XUnit wrapper build failed. Refer to the build log files for details:
+ echo %__ErrMsgPrefix%%__MsgPrefix%Error: Test build failed. Refer to the build log files for details:
echo %__BuildLog%
echo %__BuildWrn%
echo %__BuildErr%
@@ -517,28 +302,6 @@ if errorlevel 1 (
echo { "build_os": "%__TargetOS%", "build_arch": "%__BuildArch%", "build_type": "%__BuildType%" } > "%__TestBinDir%/build_info.json"
-:SkipBuildingWrappers
-
-REM =========================================================================================
-REM ===
-REM === Crossgen assemblies if needed.
-REM ===
-REM =========================================================================================
-
-if defined __SkipCrossgenFramework goto SkipCrossgen
-if defined __BuildTestWrappersOnly goto SkipCrossgen
-
-if defined __DoCrossgen2 (
- echo %__MsgPrefix%Running crossgen2 on framework assemblies in CORE_ROOT: %CORE_ROOT%
- call :PrecompileFX
- if ERRORLEVEL 1 (
- echo %__ErrMsgPrefix%%__MsgPrefix%Error: crossgen2 precompilation of framework assemblies failed
- exit /b 1
- )
-)
-
-:SkipCrossgen
-
REM =========================================================================================
REM ===
REM === All builds complete!
@@ -583,54 +346,11 @@ echo test ^<xxx^>: Only build test project ^<xxx^> ^(relative or absolute projec
echo dir ^<xxx^>: Build all test projects in the folder ^<xxx^> ^(relative or absolute folder under src\tests^)
echo tree ^<xxx^>: Build all test projects in the subtree ^<xxx^> ^(relative or absolute folder under src\tests^)
echo rebuild: Clean up all test artifacts prior to building tests
-echo allTargets: Build managed tests for all target platforms.
+echo allTargets: Build managed tests for all target platforms (including test projects in which CLRTestTargetUnsupported resolves to true)
echo -verbose: enables detailed file logging for the msbuild tasks into the msbuild log file.
+echo log: base file name to use for log files (used in lab pipelines that build tests in multiple steps to retain logs for each step)
exit /b 1
-:PrecompileFX
-
-set "__CrossgenOutputDir=%__TestIntermediatesDir%\crossgen.out"
-
-set __CrossgenCmd="%__RepoRootDir%\dotnet.cmd" "%CORE_ROOT%\R2RTest\R2RTest.dll" compile-framework -cr "%CORE_ROOT%" --output-directory "%__CrossgenOutputDir%" --release --nocleanup --target-arch %__BuildArch% -dop %NUMBER_OF_PROCESSORS% -m "%CORE_ROOT%\StandardOptimizationData.mibc"
-
-if defined __CreatePdb (
- set __CrossgenCmd=!__CrossgenCmd! --pdb
-)
-
-if defined __CompositeBuildMode (
- set __CrossgenCmd=%__CrossgenCmd% --composite
-) else (
- set __CrossgenCmd=%__CrossgenCmd% --crossgen2-parallelism 1
-)
-
-set __CrossgenDir=%__BinDir%
-if /i "%__BuildArch%" == "arm" (
- set __CrossgenDir=!__CrossgenDir!\x64
-)
-if /i "%__BuildArch%" == "arm64" (
- set __CrossgenDir=!__CrossgenDir!\x64
-)
-if /i "%__BuildArch%" == "x86" (
- set __CrossgenDir=!__CrossgenDir!\x64
-)
-set __CrossgenCmd=%__CrossgenCmd% --verify-type-and-field-layout --crossgen2-path "!__CrossgenDir!\crossgen2\crossgen2.dll"
-
-echo Running %__CrossgenCmd%
-call %__CrossgenCmd%
-if %errorlevel% neq 0 (
- echo Failed to crossgen the framework
- exit /b 1
-)
-
-move /Y "%__CrossgenOutputDir%\*.dll" %CORE_ROOT% > nul
-
-if defined __CreatePdb (
- move /Y "!__CrossgenOutputDir!\*.ni.pdb" !CORE_ROOT! > nul
- copy /Y "!__BinDir!\PDB\System.Private.CoreLib.ni.pdb" !CORE_ROOT! > nul
-)
-
-exit /b 0
-
REM Exit_Failure:
REM This is necessary because of a(n apparent) bug in the FOR /L command. Under certain circumstances,
REM such as when this script is invoke with CMD /C "build.cmd", a non-zero exit directly from