未验证 提交 be918580 编写于 作者: T Tomáš Rylek 提交者: GitHub

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
上级 05345b2a
......@@ -135,7 +135,7 @@ jobs:
displayName: Disk Usage before Build
# Build managed test components
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) allTargets skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(runtimeFlavorArgs) $(crossArg) $(priorityArg) ci $(librariesOverrideArg)
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)Managed allTargets skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(runtimeFlavorArgs) $(crossArg) $(priorityArg) ci $(librariesOverrideArg)
displayName: Build managed test components
- ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}:
......
......@@ -284,19 +284,19 @@ jobs:
# and directly unzip them there after download). Unfortunately the logic to copy
# the native artifacts to the final test folders is dependent on availability of the
# managed test artifacts.
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) copynativeonly $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(priorityArg) $(librariesOverrideArg)
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) copynativeonly $(logRootNameArg)Native $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(priorityArg) $(librariesOverrideArg)
displayName: Copy native test components to test output folder
# Generate test wrappers. This is the step that examines issues.targets to exclude tests.
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) buildtestwrappersonly $(runtimeFlavorArgs) $(runtimeVariantArg) $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg)
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) buildtestwrappersonly $(logRootNameArg)Wrappers $(runtimeFlavorArgs) $(runtimeVariantArg) $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg)
displayName: Generate test wrappers
# Compose the Core_Root folder containing all artifacts needed for running
# CoreCLR tests. This step also compiles the framework using Crossgen / Crossgen2
# in ReadyToRun jobs.
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) generatelayoutonly $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg)
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) generatelayoutonly $(logRootNameArg)Layout $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg)
displayName: Generate CORE_ROOT
# Overwrite coreclr runtime binaries with mono ones
......@@ -324,10 +324,10 @@ jobs:
- ${{ if and(eq(parameters.runtimeFlavor, 'mono'), or(eq(parameters.runtimeVariant, 'llvmaot'), eq(parameters.runtimeVariant, 'llvmfullaot'))) }}:
- ${{ if eq(parameters.archType, 'x64') }}:
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(monoAotBuildshCommand) $(buildConfig) $(archType) $(runtimeVariantArg)
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot $(monoAotBuildshCommand) $(buildConfig) $(archType) $(runtimeVariantArg)
displayName: "LLVM AOT compile CoreCLR tests"
- ${{ if eq(parameters.archType, 'arm64') }}:
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(monoAotBuildshCommand) $(buildConfig) $(archType) cross $(runtimeVariantArg)
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot $(monoAotBuildshCommand) $(buildConfig) $(archType) cross $(runtimeVariantArg)
displayName: "LLVM AOT cross-compile CoreCLR tests"
env:
__MonoToolPrefix: aarch64-linux-gnu-
......
......@@ -63,6 +63,8 @@ jobs:
value: powershell -ExecutionPolicy ByPass -NoProfile eng\common\msbuild.ps1 -ci
- name: setScriptToEchoAndFailOnNonZero
value: ''
- name: logRootNameArg
value: 'log '
- ${{ if and(ne(parameters.osGroup, 'windows'), ne(parameters.hostedOs, 'windows')) }}:
- name: archiveExtension
......@@ -80,6 +82,8 @@ jobs:
# Set the bash script to display each command, and stop if any command exits nonzero.
- name: setScriptToEchoAndFailOnNonZero
value: 'set -xe'
- name: logRootNameArg
value: '-log:'
- ${{ if ne(parameters.jobParameters.crossrootfsDir, '') }}:
# This is only required for cross builds.
......
......@@ -20,9 +20,9 @@
</ItemGroup>
<ItemGroup>
<BuildTestProjects Include="$(BuildTestProject.Split(';'))" />
<BuildTestDirs Include="$(BuildTestDir.Split(';'))" />
<BuildTestTrees Include="$(BuildTestTree.Split(';'))" />
<BuildTestProjects Include="$(__BuildTestProject.Split(';'))" />
<BuildTestDirs Include="$(__BuildTestDir.Split(';'))" />
<BuildTestTrees Include="$(__BuildTestTree.Split(';'))" />
</ItemGroup>
<ItemGroup Condition="'@(BuildTestProjects)' != ''">
......@@ -69,8 +69,6 @@
</_GroupStartsWith>
</ItemGroup>
<Error Condition=" '$(CLRTestPriorityToBuild)' == '0' And ($(__TestGroupToBuild) &lt; 1 Or $(__TestGroupToBuild) &gt; 3) " Text="__TestGroupToBuild property must be between 1 and 3 for Pri0." />
<ItemGroup Condition=" '$(CLRTestPriorityToBuild)' == '1' ">
<!-- See above for explanation.
<_GroupStartsWith Include="">
......@@ -114,9 +112,7 @@
</_GroupStartsWith>
</ItemGroup>
<Error Condition=" '$(CLRTestPriorityToBuild)' == '1' And ($(__TestGroupToBuild) &lt; 1 Or $(__TestGroupToBuild) &gt; 10)" Text="__TestGroupToBuild property must be between 1 and 10 for Pri1." />
<PropertyGroup>
<PropertyGroup Condition="'$(__TestGroupToBuild)' != ''">
<!-- This computes lower inclusive and upper exclusive boundaries for Group number $(__TestGroupToBuild). -->
<_GroupStartsWith>@(_GroupStartsWith->WithMetadataValue("GroupNumber", $(__TestGroupToBuild)))</_GroupStartsWith>
<_GroupEndsWithExcl>@(_GroupStartsWith->WithMetadataValue("GroupNumber", $([MSBuild]::Add($(__TestGroupToBuild), 1))))</_GroupEndsWithExcl>
......
......@@ -28,7 +28,7 @@
<Target Name="CopyDependencyToCoreRoot">
<MSBuild Projects="@(CoreRootProjectFiles)"
Targets="CopyDependencyToCoreRoot"
Properties="Language=C#;RuntimeIdentifier=$(OutputRid)" />
Properties="Language=C#;RuntimeIdentifier=$(OutputRid);CORE_ROOT=$(CORE_ROOT)" />
</Target>
</Project>
......@@ -53,14 +53,40 @@
-->
<PropertyGroup>
<CLRTestPriorityToBuild>0</CLRTestPriorityToBuild>
</PropertyGroup>
<CLRTestPriorityToBuild Condition="'$(__Priority)' != ''">$(__Priority)</CLRTestPriorityToBuild>
<!-- Which tests can we build? Default: Build managed tests for this target.
At the command-line, the user can specify:
+ /p:CLRTestBuildAllTargets=allTargets Build managed tests for all target platforms.
-->
<PropertyGroup>
<CLRTestBuildAllTargets></CLRTestBuildAllTargets>
<WindowsHost>$([MSBuild]::IsOSPlatform(Windows))</WindowsHost>
<TargetsWindows>false</TargetsWindows>
<TargetsWindows Condition="'$(TargetOS)' == 'windows'">true</TargetsWindows>
<ScriptExt>.sh</ScriptExt>
<ScriptExt Condition="$(WindowsHost)">.cmd</ScriptExt>
<DotNetCli>"$(RepoRoot)\dotnet$(ScriptExt)"</DotNetCli>
<XunitTestBinBase Condition="'$(XunitTestBinBase)' == ''">$(__TestBinDir)</XunitTestBinBase>
<XunitTestBinBase>$([MSBuild]::NormalizeDirectory('$(XunitTestBinBase)/'))</XunitTestBinBase>
<CORE_ROOT Condition="'$(CORE_ROOT)' == ''">$(XunitTestBinBase)Tests/Core_Root</CORE_ROOT>
<TestBuildMode Condition="'$(__TestBuildMode)' != ''">$(__TestBuildMode)</TestBuildMode>
<RuntimeFlavor Condition="'$(__RuntimeFlavor)' != ''">$(__RuntimeFlavor)</RuntimeFlavor>
<RestoreDefaultOptimizationDataPackage Condition="'$(RestoreDefaultOptimizationDataPackage)' == ''">false</RestoreDefaultOptimizationDataPackage>
<PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
<UsePartialNGENOptimization Condition="'$(UsePartialNGENOptimization)' == ''">false</UsePartialNGENOptimization>
<RunWithAndroid>false</RunWithAndroid>
<RunWithAndroid Condition="'$(TargetOS)' == 'Android'">true</RunWithAndroid>
<MonoAot>false</MonoAot>
<MonoAot Condition="'$(__MonoAot)' == '1'">true</MonoAot>
<MonoFullAot>false</MonoFullAot>
<MonoFullAot Condition="'$(__MonoFullAot)' == '1'">true</MonoFullAot>
<MonoBinDir>$(__MonoBinDir)</MonoBinDir>
</PropertyGroup>
<!-- Language settings -->
......
......@@ -85,7 +85,7 @@
<_WillCLRTestProjectBuild Condition="'$(DisableProjectBuild)' == 'true'">false</_WillCLRTestProjectBuild>
</PropertyGroup>
<PropertyGroup>
<_CopyNativeProjectBinaries>$(CopyNativeProjectBinaries)</_CopyNativeProjectBinaries>
<_CopyNativeProjectBinaries Condition="'$(__CopyNativeTestBinaries)' != '1'">$(__CopyNativeProjectsAfterCombinedTestBuild)</_CopyNativeProjectBinaries>
<_CopyNativeProjectBinaries Condition="'$(_WillCLRTestProjectBuild)' != 'true'">false</_CopyNativeProjectBinaries>
<_CopyNativeProjectBinaries Condition="'$(_CopyNativeProjectBinaries)' == ''">true</_CopyNativeProjectBinaries>
</PropertyGroup>
......
此差异已折叠。
<Project DefaultTargets="Build">
<Import Project="Directory.Build.props" />
<ItemGroup>
<Project Include="$(MSBuildThisFileDirectory)Common\dirs.proj" />
</ItemGroup>
<Import Project="Common\dirs.proj" />
<Import Project="Directory.Build.targets" />
<Import Project="Common\dir.traversal.targets" />
<PropertyGroup>
<TraversalBuildDependsOn>
BatchRestorePackages;
$(TraversalBuildDependsOn);
</TraversalBuildDependsOn>
</PropertyGroup>
<Import Project="run.proj" />
<ItemGroup>
<RestoreProjects Include="Common\test_dependencies_fs\test_dependencies.fsproj" />
......@@ -23,14 +11,29 @@
<RestoreProjects Include="Common\ilasm\ilasm.ilproj" />
</ItemGroup>
<Target Name="BuildTargetingPack" AfterTargets="BatchRestorePackages" Condition="$(__SkipTargetingPackBuild) != 'true'">
<Message Text="Building Targeting Pack" Importance="High" />
<Error Text="TargetOS has not been specified. Please do that then run build again." Condition="'$(TargetOS)' == 'AnyOS'" />
<ItemGroup>
<TestBuildSteps Include="ManagedBuild" />
<TestBuildSteps Include="CheckTestBuildStep" />
<TestBuildSteps Include="GenerateLayout" />
<TestBuildSteps Include="RestorePackages" />
<TestBuildSteps Include="BuildTestWrappers" />
<TestBuildSteps Include="CrossgenFramework" />
<TestBuildSteps Include="CreateAndroidApps" />
<TestBuildSteps Include="CreateIosApps" />
<TestBuildSteps Include="BuildMonoAot" />
</ItemGroup>
<Target Name="TestBuild" DependsOnTargets="@(TestBuildSteps)" />
<Target Name="BuildTargetingPack" AfterTargets="BatchRestorePackages">
<Message Text="$(MsgPrefix)Building Targeting Pack" Importance="High" />
<Error Text="$(ErrMsgPrefix)$(MsgPrefix)ERROR: TargetOS has not been specified. Please do that then run build again."
Condition="'$(TargetOS)' == 'AnyOS'" />
<MSBuild Projects="Common\external\external.csproj"
Targets="Build" />
</Target>
<Target Name="BatchRestorePackages" Condition="$(__SkipPackageRestore) != 'true'">
<Target Name="BatchRestorePackages">
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Restoring all packages..." />
<!-- restore all csproj's with PackageReferences in one pass -->
......@@ -51,5 +54,129 @@
</Target>
<!-- Override RestorePackages from dir.traversal.targets and do a batch restore -->
<Target Name="RestorePackages" DependsOnTargets="BatchRestorePackages" />
<Target Name="RestorePackages"
DependsOnTargets="BatchRestorePackages"
Condition="'$(__SkipRestorePackages)' != '1'" />
<Target Name="ManagedBuild"
DependsOnTargets="BuildManagedTestGroups"
Condition="'$(__BuildTestWrappersOnly)' != '1' and '$(__GenerateLayoutOnly)' != '1' and '$(__SkipManaged)' != '1' and !$(MonoAot) and !$(MonoFullAot)" />
<Target Name="BuildManagedTestGroups" DependsOnTargets="RestorePackages;ResolveDisabledProjects">
<Message Importance="High" Text="$(MsgPrefix)Building managed test components" />
<!-- Execute msbuild test build in stages - workaround for excessive data retention in MSBuild ConfigCache -->
<!-- See https://github.com/Microsoft/msbuild/issues/2993 -->
<!-- We need to build group #1 manually as it doesn't have a _GroupStartsWith item associated with it, see the comment in Common\dirs.proj -->
<MSBuild Projects="$(MSBuildThisFileFullPath)" Targets="BuildManagedTestGroup;CopyNativeTestBinaries" Properties="__TestGroupToBuild=1;__SkipRestorePackages=1" />
<MSBuild Projects="$(MSBuildThisFileFullPath)" Targets="BuildManagedTestGroup;CopyNativeTestBinaries" Properties="__TestGroupToBuild=%(_GroupStartsWith.GroupNumber);__SkipRestorePackages=1" />
</Target>
<Target Name="BuildManagedTestGroup"
DependsOnTargets="ResolveDisabledProjects"
Condition="'$(__SkipManaged)' != '1' and '$(__CopyNativeTestBinaries)' != '1'" >
<PropertyGroup>
<GroupBuildCmd>$(DotNetCli) msbuild</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) $(MSBuildThisFileFullPath)</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) /t:Build</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) "/p:TargetArchitecture=$(TargetArchitecture)"</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) "/p:Configuration=$(Configuration)"</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) "/p:LibrariesConfiguration=$(LibrariesConfiguration)"</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) "/p:TargetOS=$(TargetOS)"</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) "/p:RuntimeFlavor=$(RuntimeFlavor)"</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) "/p:RuntimeVariant=$(RuntimeVariant)"</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) "/p:CLRTestBuildAllTargets=$(CLRTestBuildAllTargets)"</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) "/p:__TestGroupToBuild=$(__TestGroupToBuild)"</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) "/p:__SkipRestorePackages=1"</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) /nodeReuse:false</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) /maxcpucount</GroupBuildCmd>
</PropertyGroup>
<Message Importance="High" Text="$(MsgPrefix)Building managed test group $(__TestGroupToBuild): $(GroupBuildCmd)" />
<Exec Command="$(GroupBuildCmd)" />
</Target>
<!-- In split pipeline mode (in the lab) we're using the native component copying step to generate the test execution scripts -->
<Target Name="CopyNativeTestBinaries"
DependsOnTargets="CopyAllNativeTestProjectBinaries"
AfterTargets="ResolveDisabledProjects"
Condition="'$(__CopyNativeTestBinaries)' == '1'">
<Message Importance="High" Text="$(MsgPrefix)Copied native binaries for test group $(__TestGroupToBuild)" />
</Target>
<Target Name="CheckTestBuildStep"
DependsOnTargets="CheckTestBuild"
Condition="'$(__BuildTestWrappersOnly)' != '1' and '$(__GenerateLayoutOnly)' != '1' and '$(__CopyNativeTestBinaries)' != '1' and !$(MonoAot) and !$(MonoFullAot)" />
<Target Name="GenerateLayout"
DependsOnTargets="CreateTestOverlay"
AfterTargets="ManagedBuild"
Condition="'$(__BuildTestWrappersOnly)' != '1' and '$(__CopyNativeTestBinaries)' != '1' and '$(__SkipGenerateLayout)' != '1' and !$(MonoAot) and !$(MonoFullAot)" />
<Target Name="BuildTestWrappers"
DependsOnTargets="CreateAllWrappers"
AfterTargets="ManagedBuild;RestorePackages"
Condition="'$(__GenerateLayoutOnly)' != '1' and '$(__CopyNativeTestBinaries)' != '1' and !$(MonoAot) and !$(MonoFullAot) and ('$(__BuildTestWrappersOnly)' == '1' or ('$(__SkipTestWrappers)' != '1' and '$(__SkipManaged)' != '1'))" />
<Target Name="CrossgenFramework"
DependsOnTargets="GenerateLayout"
Condition="'$(__BuildTestWrappersOnly)' != '1' and '$(__CopyNativeTestBinaries)' != '1' and '$(__DoCrossgen2)' == '1' and !$(MonoAot) and !$(MonoFullAot)" >
<PropertyGroup>
<CrossgenDir>$(__BinDir)</CrossgenDir>
<CrossgenDir Condition="'$(TargetArchitecture)' == 'arm'">$(CrossgenDir)\x64</CrossgenDir>
<CrossgenDir Condition="'$(TargetArchitecture)' == 'arm64'">$(CrossgenDir)\x64</CrossgenDir>
<CrossgenDir Condition="'$(TargetArchitecture)' == 'x86'">$(CrossgenDir)\x64</CrossgenDir>
<CrossgenOutputDir>$(__TestIntermediatesDir)\crossgen.out</CrossgenOutputDir>
<CrossgenCmd>$(DotNetCli)</CrossgenCmd>
<CrossgenCmd>$(CrossgenCmd) "$(CORE_ROOT)\R2RTest\R2RTest.dll"</CrossgenCmd>
<CrossgenCmd>$(CrossgenCmd) compile-framework</CrossgenCmd>
<CrossgenCmd>$(CrossgenCmd) -cr "$(CORE_ROOT)"</CrossgenCmd>
<CrossgenCmd>$(CrossgenCmd) --output-directory "$(CrossgenOutputDir)"</CrossgenCmd>
<CrossgenCmd>$(CrossgenCmd) --release</CrossgenCmd>
<CrossgenCmd>$(CrossgenCmd) --nocleanup</CrossgenCmd>
<CrossgenCmd>$(CrossgenCmd) --target-arch $(TargetArchitecture)</CrossgenCmd>
<CrossgenCmd>$(CrossgenCmd) -dop $(NUMBER_OF_PROCESSORS)</CrossgenCmd>
<CrossgenCmd>$(CrossgenCmd) -m "$(CORE_ROOT)\StandardOptimizationData.mibc"</CrossgenCmd>
<CrossgenCmd Condition="'$(__CreatePdb)' != ''">$(CrossgenCmd) --pdb</CrossgenCmd>
<CrossgenCmd Condition="'$(__CreatePerfMap)' != ''">$(CrossgenCmd) --perfmap</CrossgenCmd>
<CrossgenCmd Condition="'$(__CompositeBuildMode)' != ''">$(CrossgenCmd) --composite</CrossgenCmd>
<CrossgenCmd Condition="'$(__CompositeBuildMode)' == ''">$(CrossgenCmd) --crossgen2-parallelism 1</CrossgenCmd>
<CrossgenCmd>$(CrossgenCmd) --verify-type-and-field-layout</CrossgenCmd>
<CrossgenCmd>$(CrossgenCmd) --crossgen2-path "$(CrossgenDir)\crossgen2\crossgen2.dll"</CrossgenCmd>
</PropertyGroup>
<Message Importance="High" Text="$(MsgPrefix)Compiling framework using Crossgen2: $(CrossgenCmd)" />
<Exec Command="$(CrossgenCmd)" />
<ItemGroup>
<CrossgenOutputFiles Include="$(CrossgenOutputDir)\*.dll" />
<CrossgenOutputFiles Include="$(CrossgenOutputDir)\*.ni.pdb" Condition="'$(__CreatePdb)' != ''" />
</ItemGroup>
<Move SourceFiles="@(CrossgenOutputFiles)" DestinationFolder="$(CORE_ROOT)" />
<Copy Condition="'$(__CreatePdb)' != ''" SourceFiles="$(__BinDir)\PDB\System.Private.CoreLib.ni.pdb" DestinationFolder="$(CORE_ROOT)" />
</Target>
<Target Name="CreateAndroidApps"
DependsOnTargets="BuildAllAndroidApp"
AfterTargets="ManagedBuild"
Condition="'$(__BuildTestWrappersOnly)' != '1' and '$(__GenerateLayoutOnly)' != '1' and '$(__CopyNativeTestBinaries)' != '1' and $(RunWithAndroid)" />
<Target Name="CreateIosApps"
DependsOnTargets="BuildAlliOSApp"
AfterTargets="ManagedBuild"
Condition="'$(__BuildTestWrappersOnly)' != '1' and '$(__GenerateLayoutOnly)' != '1' and '$(__CopyNativeTestBinaries)' != '1' and ('$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'iOSSimulator')" />
<Target Name="BuildMonoAot"
DependsOnTargets="MonoAotCompileTests"
AfterTargets="ManagedBuild"
Condition="'$(__BuildTestWrappersOnly)' != '1' and '$(__GenerateLayoutOnly)' != '1' and '$(__CopyNativeTestBinaries)' != '1' and ($(MonoAot) or $(MonoFullAot))" />
</Project>
此差异已折叠。
......@@ -1109,7 +1109,7 @@
<ExcludeList Include="$(XunitTestBinBase)/Interop/MarshalAPI/FunctionPointer/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)Interop/NativeLibrary/AssemblyLoadContext/ResolveUnmanagedDllTests/** ">
<ExcludeList Include="$(XunitTestBinBase)/Interop/NativeLibrary/AssemblyLoadContext/ResolveUnmanagedDllTests/**">
<Issue>https://github.com/dotnet/runtime/issues/41180</Issue>
</ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/Interop/ObjectiveC/ObjectiveCMarshalAPI/**">
......
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="Directory.Build.props" />
<PropertyGroup>
<XunitTestBinBase Condition="'$(XunitTestBinBase)'==''" >$(BaseOutputPathWithConfig)</XunitTestBinBase>
<XunitWrapperGeneratedCSDirBase>$(XunitTestBinBase)\TestWrappers\</XunitWrapperGeneratedCSDirBase>
<MSBuildEnableAllPropertyFunctions>1</MSBuildEnableAllPropertyFunctions>
<TestScriptExtension Condition="'$(TestWrapperTargetsWindows)' != 'true' ">sh</TestScriptExtension>
<TestScriptExtension Condition="'$(TestWrapperTargetsWindows)' == 'true' ">cmd</TestScriptExtension>
<Language>C#</Language>
<RuntimeIdentifier>$(OutputRid)</RuntimeIdentifier>
</PropertyGroup>
<ItemGroup>
......@@ -186,6 +187,7 @@ $(_XunitEpilog)
<IsMobile>false</IsMobile>
<IsMobile Condition=" '$(TargetOS)' == 'Android' Or '$(TargetOS)' == 'iOS' Or '$(TargetOS)' == 'iOSSimulator' ">true</IsMobile>
</PropertyGroup>
<PropertyGroup>
<_XunitProlog Condition=" '$(_XunitProlog)'=='' and '$(IsMobile)'=='false' ">
<![CDATA[
......@@ -844,37 +846,7 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\","").
<Import Project="$(RepoRoot)/src/tests/Common/tests.targets" />
<Import Project="$(RepoRoot)/src/tests/Common/publishdependency.targets" />
<Target Name="CreateTestOverlay">
<MSBuild Projects="$(MSBuildProjectFile)"
Targets="CopyDependencyToCoreRoot"
Properties="Language=C#;OutputRid=$(OutputRid);RuntimeIdentifier=$(OutputRid)" />
</Target>
<Target Name="Build">
<!-- generate project.lock.json file corresponding to above json file -->
<MSBuild Projects="$(RepoRoot)/src/tests/Common/test_dependencies/test_dependencies.csproj"
Condition=" '$(BuildWrappers)'=='true' " />
<MSBuild Projects="$(MSBuildProjectFile)"
Targets="BuildAllAndroidApp"
Condition=" '$(RunWithAndroid)'=='true' " />
<!-- Default for building -->
<MSBuild Projects="$(MSBuildProjectFile)"
Targets="CreateAllWrappers"
Properties="_CMDDIR=%(TestDirectories.Identity)"
Condition=" '$(BuildWrappers)'=='true' " />
<!-- Execution -->
<MSBuild Projects="$(MSBuildProjectFile)"
Targets="CreateTestOverlay"
Condition=" '$(GenerateRuntimeLayout)'=='true' "/>
<MSBuild Projects="$(MSBuildProjectFile)" Targets="RunTests"
Condition=" '$(RunTests)'=='true' "/>
</Target>
<Target Name="CreateTestOverlay" DependsOnTargets="CopyDependencyToCoreRoot" />
<Target Name="Clean">
<RemoveDir Condition=" '$(BuildWrappers)'=='true'" Directories="$(MSBuildThisFileDirectory)../$(XunitWrapperGeneratedCSDirBase);" ContinueOnError="WarnAndContinue" />
......
......@@ -9,7 +9,7 @@
# Notes:
#
# Universal script to setup and run the xunit console runner. The script relies
# on run.proj and the bash and batch wrappers. All test excludes will also
# on build.proj and the bash and batch wrappers. All test excludes will also
# come from issues.targets. If there is a jit stress or gc stress exclude,
# please add GCStressIncompatible or JitOptimizationSensitive to the test's
# ilproj or csproj.
......@@ -58,7 +58,7 @@ from coreclr_arguments import *
################################################################################
description = ("""Universal script to setup and run the xunit console runner. The script relies
on run.proj and the bash and batch wrappers. All test excludes will also
on build.proj and the bash and batch wrappers. All test excludes will also
come from issues.targets. If there is a jit stress or gc stress exclude,
please add GCStressIncompatible or JitOptimizationSensitive to the test's
ilproj or csproj.
......@@ -579,8 +579,8 @@ def call_msbuild(args):
command = [args.dotnetcli_script_path,
"msbuild",
os.path.join(args.coreclr_tests_src_dir, "run.proj"),
"/p:Runtests=true",
os.path.join(args.coreclr_tests_src_dir, "build.proj"),
"/t:RunTests",
"/clp:showcommandline"]
command += common_msbuild_arguments
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册