container: ''
testGroup: ''
liveRuntimeBuildConfig: ''
- testBuildPhase: ''
# When set to a non-empty value (Debug / Release), it determines libraries
# build configuration to use for the tests. Setting this property implies
${{ if eq(variables['System.TeamProject'], 'internal') }}:
continueOnError: true
- # Compute job name from template parameters
${{ if eq(parameters.testGroup, 'innerloop') }}:
- ${{ if ne(parameters.testBuildPhase, 'targetGeneric') }}:
- name: '${{ parameters.runtimeFlavor }}_common_test_build_p0_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}'
- displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri0 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}'
- ${{ if ne(parameters.testGroup, 'innerloop') }}:
- ${{ if ne(parameters.testBuildPhase, 'targetGeneric') }}:
- name: '${{ parameters.runtimeFlavor }}_common_test_build_p1_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}'
- displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri1 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}'
+ name: '${{ parameters.runtimeFlavor }}_common_test_build_p0_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}'
+ displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri0 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}'
- ${{ if eq(parameters.testGroup, 'innerloop') }}:
- ${{ if eq(parameters.testBuildPhase, 'targetGeneric') }}:
- name: '${{ parameters.runtimeFlavor }}_common_test_build_p0_AnyOS_AnyCPU_${{ parameters.buildConfig }}'
- displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri0 Test Build AnyOS AnyCPU ${{ parameters.buildConfig }}'
${{ if ne(parameters.testGroup, 'innerloop') }}:
- ${{ if eq(parameters.testBuildPhase, 'targetGeneric') }}:
- name: '${{ parameters.runtimeFlavor }}_common_test_build_p1_AnyOS_AnyCPU_${{ parameters.buildConfig }}'
- displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri1 Test Build AnyOS AnyCPU ${{ parameters.buildConfig }}'
+ name: '${{ parameters.runtimeFlavor }}_common_test_build_p1_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}'
+ displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri1 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}'
# Since the condition is being altered, merge the default with the additional conditions.
# See https://docs.microsoft.com/azure/devops/pipelines/process/conditions
displayName: Disk Usage before Build
# Build managed test components
- - script: $(coreClrRepoRootDir)build-test$(scriptExt) ${{ parameters.testBuildPhase }} skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(crossArg) $(priorityArg) ci $(librariesOverrideArg)
+ - script: $(coreClrRepoRootDir)build-test$(scriptExt) skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(crossArg) $(priorityArg) ci $(librariesOverrideArg)
displayName: Build managed test components
- ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}:
parameters:
rootFolder: $(managedTestArtifactRootFolderPath)
includeRootFolder: false
- ${{ if ne(parameters.testBuildPhase, 'targetGeneric') }}:
- archiveExtension: $(archiveExtension)
- archiveType: $(archiveType)
- tarCompression: $(tarCompression)
- artifactName: $(managedTestArtifactName)
- displayName: 'managed test components'
- ${{ if eq(parameters.testBuildPhase, 'targetGeneric') }}:
- archiveExtension: '.tar.gz'
- archiveType: tar
- tarCompression: gz
- artifactName: $(managedGenericTestArtifactName)
- displayName: 'managed test components (generic)'
+ archiveType: $(archiveType)
+ tarCompression: $(tarCompression)
+ archiveExtension: $(archiveExtension)
+ artifactName: $(managedTestArtifactName)
+ displayName: 'managed test components'
# Publish .packages/microsoft.net.sdk.il needed for traversing
# test projects during the copynativeonly command in run test job.
- - ${{ if ne(parameters.testBuildPhase, 'targetGeneric') }}:
- - template: /eng/pipelines/common/upload-artifact-step.yml
- parameters:
- rootFolder: $(microsoftNetSdkIlFolderPath)
- includeRootFolder: false
- archiveType: $(archiveType)
- tarCompression: $(tarCompression)
- archiveExtension: $(archiveExtension)
- artifactName: $(microsoftNetSdkIlArtifactName)
- displayName: 'Microsoft.NET.Sdk.IL package'
+ - template: /eng/pipelines/common/upload-artifact-step.yml
+ parameters:
+ rootFolder: $(microsoftNetSdkIlFolderPath)
+ includeRootFolder: false
+ archiveType: $(archiveType)
+ tarCompression: $(tarCompression)
+ archiveExtension: $(archiveExtension)
+ artifactName: $(microsoftNetSdkIlArtifactName)
+ displayName: 'Microsoft.NET.Sdk.IL package'
# Publish Logs
displayName: Publish Logs
inputs:
targetPath: $(Build.SourcesDirectory)/artifacts/log
- ${{ if ne(parameters.testBuildPhase, 'targetGeneric') }}:
- artifactName: '${{ parameters.runtimeFlavor }}_Common_Runtime_TestBuildLogs_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)_${{ parameters.testGroup }}'
- ${{ if eq(parameters.testBuildPhase, 'targetGeneric') }}:
- artifactName: '${{ parameters.runtimeFlavor }}_Common_Runtime_TestBuildLogs_AnyOS_AnyCPU_$(buildConfig)_Lib${{ parameters.liveLibrariesBuildConfig }}_${{ parameters.testGroup }}'
+ artifactName: '${{ parameters.runtimeFlavor }}_Common_Runtime_TestBuildLogs_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)_${{ parameters.testGroup }}'
continueOnError: true
condition: always()
runtimeFlavorDisplayName: 'CoreCLR'
runtimeMode: ''
runtimeModeDisplayName: ''
- # If true, tests were built in two phases
- # We will depend on both the TargetGeneric tests which are for AnyOS AnyCPU
- # as well as the TargetSpecific test. Both sets of tests will be run
- testBuildPhased : false
### Test run job
- '${{ parameters.runtimeFlavor }}_common_test_build_p0_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}'
- ${{ if ne(parameters.testGroup, 'innerloop') }}:
- '${{ parameters.runtimeFlavor }}_common_test_build_p1_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}'
- - ${{ if eq(parameters.testBuildPhased, true) }}:
- # Also depend on AnyOS AnyCPU tests
- - ${{ if eq(parameters.testGroup, 'innerloop') }}:
- - '${{ parameters.runtimeFlavor }}_common_test_build_p0_AnyOS_AnyCPU_${{parameters.buildConfig }}'
- - ${{ if ne(parameters.testGroup, 'innerloop') }}:
- - '${{ parameters.runtimeFlavor }}_common_test_build_p1_AnyOS_AnyCPU_${{parameters.buildConfig }}'
- ${{ if ne(parameters.stagedBuild, true) }}:
- ${{ format('{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeFlavor, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
# Download and unzip managed test artifacts
- ${{ if ne(parameters.corefxTests, true) }}:
- # First download and unzip AnyOS AnyCPU test (if needed)
- - ${{ if eq(parameters.testBuildPhased, true) }}:
- - template: /eng/pipelines/common/download-artifact-step.yml
- parameters:
- unpackFolder: '$(managedTestArtifactRootFolderPath)'
- artifactFileName: '$(managedGenericTestArtifactName).tar.gz'
- artifactName: '$(managedGenericTestArtifactName)'
- displayName: 'generic managed test artifacts'
-
- # Download and unzip target specific tests
- template: /eng/pipelines/common/download-artifact-step.yml
parameters:
unpackFolder: '$(managedTestArtifactRootFolderPath)'
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- - OSX_x64
- testGroup: outerloop
- jobParameters:
- liveLibrariesBuildConfig: Release
- testBuildPhase: targetGeneric
-
-- template: /eng/pipelines/common/platform-matrix.yml
- parameters:
- jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
- buildConfig: checked
- platforms:
- Linux_arm
- Linux_arm64
- OSX_x64
testGroup: outerloop
jobParameters:
liveLibrariesBuildConfig: Release
- testBuildPhase: targetSpecific
#
# Checked JIT test runs
jobParameters:
testGroup: outerloop
liveLibrariesBuildConfig: Release
- testBuildPhased: true
#
# Checked R2R test runs
readyToRun: true
displayNameArgs: R2R
liveLibrariesBuildConfig: Release
- testBuildPhased: true
#
# Crossgen-comparison jobs
- name: corelibProductArtifactName
value: 'CoreLib_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- - name: managedGenericTestArtifactName
- value: 'CoreCLRManagedTestArtifacts_AnyOS_AnyCPU_$(buildConfig)'
-
- name: managedTestArtifactName
value: 'CoreCLRManagedTestArtifacts_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_$(archType)_$(buildConfig)'
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- - OSX_x64
- jobParameters:
- testGroup: innerloop
- liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
- testBuildPhase: targetGeneric
- condition: >-
- or(
- eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
- eq(variables['isFullMatrix'], true))
-
-- template: /eng/pipelines/common/platform-matrix.yml
- parameters:
- jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
- buildConfig: checked
- platforms:
- Linux_arm
- Windows_NT_x86
- Windows_NT_arm
jobParameters:
testGroup: innerloop
liveLibrariesBuildConfig: Release
- testBuildPhase: targetSpecific
condition: >-
or(
eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
jobParameters:
testGroup: innerloop
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
- testBuildPhase: targetSpecific
condition: >-
or(
eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
jobParameters:
testGroup: innerloop
liveLibrariesBuildConfig: Release
- testBuildPhased: true
condition: >-
or(
eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
jobParameters:
testGroup: innerloop
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
- testBuildPhased: true
condition: >-
or(
eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
<ExcludeList Include="$(XunitTestBinBase)/Regressions/coreclr/GitHub_22888/test22888/*">
<Issue>https://github.com/dotnet/runtime/issues/13703</Issue>
</ExcludeList>
+ <!-- Test regressions during CI coverage outage -->
+ <ExcludeList Include="$(XunitTestBinBase)/baseservices/exceptions/stackoverflow/stackoverflowtester/*">
+ <Issue>https://github.com/dotnet/runtime/issues/35798</Issue>
+ </ExcludeList>
+ <ExcludeList Include="$(XunitTestBinBase)/JIT/SIMD/Vector3Interop_r/*">
+ <Issue>https://github.com/dotnet/runtime/issues/35798</Issue>
+ </ExcludeList>
+ <ExcludeList Include="$(XunitTestBinBase)/JIT/SIMD/Vector3Interop_ro/*">
+ <Issue>https://github.com/dotnet/runtime/issues/35798</Issue>
+ </ExcludeList>
+ <ExcludeList Include="$(XunitTestBinBase)/Interop/StructMarshalling/ReversePInvoke/MarshalSeqStruct/ReversePInvoke/ReversePInvokeTest/*">
+ <Issue>https://github.com/dotnet/runtime/issues/35798</Issue>
+ </ExcludeList>
+ <ExcludeList Include="$(XunitTestBinBase)/Interop/PInvoke/Vector2_3_4/Vector2_3_4/*">
+ <Issue>https://github.com/dotnet/runtime/issues/35798</Issue>
+ </ExcludeList>
+ <ExcludeList Include="$(XunitTestBinBase)/Interop/UnmanagedCallersOnly/UnmanagedCallersOnlyTest/*">
+ <Issue>https://github.com/dotnet/runtime/issues/35798</Issue>
+ </ExcludeList>
</ItemGroup>
<!-- All OS/Arch CoreCLR excludes -->
</ItemGroup>
<Move SourceFiles="@(ServerAssembly)" DestinationFolder="$(ServerAssemblyDest)" />
</Target>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ProjectReference Include="AssemblyC.csproj" />
<ProjectReference Include="AssemblyContracts.csproj" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ProjectReference Include="AssemblyC.csproj" />
<ProjectReference Include="AssemblyContracts.csproj" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ItemGroup>
<Compile Include="AssemblyC.cs" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ItemGroup>
<Compile Include="AssemblyContracts.cs" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ItemGroup>
<ProjectReference Include="../MockReferenceTrackerRuntime/CMakeLists.txt" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ProjectReference Include="Server/CMakeLists.txt" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ProjectReference Include="../../NativeServer/CMakeLists.txt" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ProjectReference Include="../../NativeServer/CMakeLists.txt" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ProjectReference Include="../../NativeServer/CMakeLists.txt" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ProjectReference Include="../../NativeServer/CMakeLists.txt" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ProjectReference Include="../../NativeServer/CMakeLists.txt" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
<ProjectReference Include="NetClientPrimitives.csproj" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<ItemGroup>
<Compile Include="NETServer.DefaultInterfaces.il" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<Compile Include="../ServerContracts/Server.Contracts.cs" />
<Compile Include="../ServerContracts/ServerGuids.cs" />
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>
<Name>NETServer</Name>
</ProjectReference>
</ItemGroup>
- <PropertyGroup>
- <CLRTestNeedTarget>1</CLRTestNeedTarget>
- </PropertyGroup>
- <ItemGroup>
- <TraitTags Include="OsSpecific" />
- </ItemGroup>
</Project>