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

Cleanup of runtime test build scripts #58762

Merged
merged 11 commits into from
Oct 6, 2021
Merged
2 changes: 1 addition & 1 deletion eng/pipelines/common/templates/runtimes/build-test-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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') }}:
Expand Down
10 changes: 5 additions & 5 deletions eng/pipelines/common/templates/runtimes/run-test-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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-
Expand Down
4 changes: 4 additions & 0 deletions eng/pipelines/common/xplat-setup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.
Expand Down
12 changes: 4 additions & 8 deletions src/tests/Common/dirs.proj
Original file line number Diff line number Diff line change
Expand Up @@ -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)' != ''">
Expand Down Expand Up @@ -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="">
Expand Down Expand Up @@ -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>
Expand Down
2 changes: 1 addition & 1 deletion src/tests/Common/publishdependency.targets
Original file line number Diff line number Diff line change
Expand Up @@ -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>
40 changes: 33 additions & 7 deletions src/tests/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -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 -->
Expand Down
2 changes: 1 addition & 1 deletion src/tests/Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
Loading