mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-10 18:11:04 +09:00
Enable use of RuntimeVariant to exclude runtime tests (#51522)
Allow filtering of runtime tests based on runtimevariant.
This commit is contained in:
parent
b81fac2467
commit
24544e0cf7
5 changed files with 87 additions and 14 deletions
|
@ -63,7 +63,11 @@ jobs:
|
|||
- ${{ if notIn(parameters.testGroup, 'innerloop', 'clrinterpreter') }}:
|
||||
- '${{ parameters.runtimeFlavor }}_common_test_build_p1_AnyOS_AnyCPU_${{parameters.buildConfig }}'
|
||||
- ${{ if ne(parameters.stagedBuild, true) }}:
|
||||
- ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
|
||||
- ${{ if or( eq(parameters.runtimeVariant, 'minijit'), eq(parameters.runtimeVariant, 'monointerpreter')) }}:
|
||||
# minijit and mono interpreter runtimevariants do not require any special build of the runtime
|
||||
- ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, '', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
|
||||
- ${{ if not(or(eq(parameters.runtimeVariant, 'minijit'), eq(parameters.runtimeVariant, 'monointerpreter'))) }}:
|
||||
- ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
|
||||
- ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
|
||||
- ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }}
|
||||
|
||||
|
@ -84,6 +88,13 @@ jobs:
|
|||
- name: runtimeFlavorArgs
|
||||
value: '-excludemonofailures'
|
||||
|
||||
- name: runtimeVariantArg
|
||||
value: ''
|
||||
|
||||
- ${{ if not(eq(parameters.runtimeVariant, '')) }}:
|
||||
- name: runtimeVariantArg
|
||||
value: '/p:RuntimeVariant=${{ parameters.runtimeVariant }}'
|
||||
|
||||
- name: crossgenArg
|
||||
value: ''
|
||||
- name: LogNamePrefix
|
||||
|
@ -255,7 +266,7 @@ jobs:
|
|||
|
||||
|
||||
# Generate test wrappers. This is the step that examines issues.targets to exclude tests.
|
||||
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) buildtestwrappersonly $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg)
|
||||
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) buildtestwrappersonly $(runtimeFlavorArgs) $(runtimeVariantArg) $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg)
|
||||
displayName: Generate test wrappers
|
||||
|
||||
|
||||
|
@ -291,10 +302,10 @@ jobs:
|
|||
|
||||
- ${{ if and(eq(parameters.runtimeFlavor, 'mono'), eq(parameters.runtimeVariant, 'llvmaot')) }}:
|
||||
- ${{ if eq(parameters.archType, 'x64') }}:
|
||||
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) mono_aot $(buildConfig) $(archType)
|
||||
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) mono_aot $(buildConfig) $(archType) $(runtimeVariantArg)
|
||||
displayName: "LLVM AOT compile CoreCLR tests"
|
||||
- ${{ if eq(parameters.archType, 'arm64') }}:
|
||||
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) mono_aot $(buildConfig) $(archType) cross
|
||||
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) mono_aot $(buildConfig) $(archType) cross $(runtimeVariantArg)
|
||||
displayName: "LLVM AOT cross-compile CoreCLR tests"
|
||||
env:
|
||||
__MonoToolPrefix: aarch64-linux-gnu-
|
||||
|
@ -354,8 +365,7 @@ jobs:
|
|||
- normal
|
||||
- ${{ if eq(parameters.runtimeFlavor, 'coreclr') }}:
|
||||
- no_tiered_compilation
|
||||
- ${{ if eq(parameters.runtimeFlavor, 'mono') }}:
|
||||
- interpreter
|
||||
|
||||
${{ if in(parameters.testGroup, 'jitstress') }}:
|
||||
scenarios:
|
||||
- jitminopts
|
||||
|
|
|
@ -32,7 +32,7 @@ parameters:
|
|||
|
||||
|
||||
steps:
|
||||
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -excludemonofailures os Browser wasm $(buildConfigUpper)
|
||||
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) /p:RuntimeVariant=monointerpreter /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -excludemonofailures os Browser wasm $(buildConfigUpper)
|
||||
displayName: Build Tests
|
||||
|
||||
# Send tests to Helix
|
||||
|
|
|
@ -58,6 +58,11 @@ jobs:
|
|||
- name: buildProductArtifactName
|
||||
value: 'MonoProduct__${{ parameters.runtimeVariant }}_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
|
||||
|
||||
# minijit and monointerpreter do not use seperate product builds.
|
||||
- ${{ if or(eq(parameters.runtimeVariant, 'minijit'), eq(parameters.runtimeVariant, 'monointerpreter')) }}:
|
||||
- name : buildProductArtifactName
|
||||
value : 'MonoProduct___$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
|
||||
|
||||
- name: binTestsPath
|
||||
value: '$(Build.SourcesDirectory)/artifacts/tests/coreclr'
|
||||
|
||||
|
@ -92,6 +97,9 @@ jobs:
|
|||
value: 'Checked'
|
||||
${{ if eq(parameters.liveRuntimeBuildConfig, 'debug') }}:
|
||||
value: 'Debug'
|
||||
|
||||
- name: priorityArg
|
||||
value: ''
|
||||
|
||||
- librariesBuildArtifactName: ''
|
||||
- librariesOverrideArg: ''
|
||||
|
|
|
@ -898,7 +898,7 @@ jobs:
|
|||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
#
|
||||
# Mono CoreCLR runtime Test executions using live libraries
|
||||
# Mono CoreCLR runtime Test executions using live libraries in jit mode
|
||||
# Only when Mono is changed
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
|
@ -914,6 +914,31 @@ jobs:
|
|||
testGroup: innerloop
|
||||
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
liveRuntimeBuildConfig: release
|
||||
runtimeVariant: minijit
|
||||
condition: >-
|
||||
or(
|
||||
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
|
||||
eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
#
|
||||
# Mono CoreCLR runtime Test executions using live libraries in interpreter mode
|
||||
# Only when Mono is changed
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
|
||||
buildConfig: release
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- OSX_x64
|
||||
- Linux_arm64
|
||||
helixQueueGroup: pr
|
||||
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
|
||||
jobParameters:
|
||||
testGroup: innerloop
|
||||
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
liveRuntimeBuildConfig: release
|
||||
runtimeVariant: monointerpreter
|
||||
condition: >-
|
||||
or(
|
||||
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
|
||||
|
|
|
@ -1026,7 +1026,7 @@
|
|||
</ExcludeList>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Known failures for mono runtime on *all* architectures/operating systems -->
|
||||
<!-- Known failures for mono runtime on *all* architectures/operating systems in *all* runtime modes -->
|
||||
<ItemGroup Condition="'$(RuntimeFlavor)' == 'mono'" >
|
||||
<ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/Convert/out_of_range_fp_to_int_conversions/*">
|
||||
<Issue>Mono does not define out of range fp to int conversions</Issue>
|
||||
|
@ -1936,10 +1936,11 @@
|
|||
<ExcludeList Include = "$(XunitTestBinBase)tracing/eventsource/eventsourcetrace/eventsourcetrace/**">
|
||||
<Issue>needs triage</Issue>
|
||||
</ExcludeList>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- The following only fail in the mono interpreter, but we don't have a way to exclude based on scenario yet -->
|
||||
|
||||
<ExcludeList Include = "$(XunitTestBinBase)/JIT/jit64/opt/cse/HugeArray1/**">
|
||||
<!-- Known failures for mono runtime on *all* architectures/operating systems in interpreter runtime mode -->
|
||||
<ItemGroup Condition="'$(RuntimeFlavor)' == 'mono' and '$(RuntimeVariant)' == 'monointerpreter' ">
|
||||
<ExcludeList Include = "$(XunitTestBinBase)/JIT/jit64/opt/cse/HugeArray1/**">
|
||||
<Issue>https://github.com/dotnet/runtime/issues/46622</Issue>
|
||||
</ExcludeList>
|
||||
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Regression/JitBlue/GitHub_21990/**">
|
||||
|
@ -2515,7 +2516,34 @@
|
|||
<!-- End interpreter issues -->
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(RuntimeFlavor)' == 'mono' and ('$(TargetArchitecture)' == 'arm64' or '$(AltJitArch)' == 'arm64') and '$(TargetsWindows)' != 'true' " >
|
||||
<ItemGroup Condition="'$(RuntimeFlavor)' == 'mono' and '$(RuntimeVariant)' == 'llvmaot' ">
|
||||
<ExcludeList Include = "$(XunitTestBinBase)JIT/Methodical/ELEMENT_TYPE_IU/_il_relu_conv/**">
|
||||
<Issue>needs triage</Issue>
|
||||
</ExcludeList>
|
||||
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Methodical/eh/deadcode/deadoponerrorinfunclet_r/**">
|
||||
<Issue>needs triage</Issue>
|
||||
</ExcludeList>
|
||||
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Methodical/eh/deadcode/deadoponerrorinfunclet_d/**">
|
||||
<Issue>needs triage</Issue>
|
||||
</ExcludeList>
|
||||
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Methodical/eh/deadcode/deadoponerrorinfunclet_d/**">
|
||||
<Issue>needs triage</Issue>
|
||||
</ExcludeList>
|
||||
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Directed/nullabletypes/isinstvaluetype_do/**">
|
||||
<Issue> needs triage </Issue>
|
||||
</ExcludeList>
|
||||
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Generics/Instantiation/Structs/struct01/**">
|
||||
<Issue> needs triage </Issue>
|
||||
</ExcludeList>
|
||||
<ExcludeList Include = "$(XunitTestBinBase)/JIT/jit64/opt/cse/HugeArray1/**">
|
||||
<Issue> needs triage </Issue>
|
||||
</ExcludeList>
|
||||
<ExcludeList Include = "$(XunitTestBinBase)/GC/Scenarios/Dynamo/dynamo/**">
|
||||
<Issue> needs triage </Issue>
|
||||
</ExcludeList>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(RuntimeFlavor)' == 'mono' and '$(TargetArchitecture)' == 'arm64' and '$(TargetsWindows)' != 'true' " >
|
||||
<ExcludeList Include="$(XunitTestBinBase)/baseservices/typeequivalence/simple/Simple/**">
|
||||
<Issue>Doesn't compile with LLVM AOT.</Issue>
|
||||
</ExcludeList>
|
||||
|
@ -2667,12 +2695,14 @@
|
|||
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Regression/VS-ia64-JIT/M00/b108366/b108366/**">
|
||||
<Issue>needs triage</Issue>
|
||||
</ExcludeList>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- These are known failures on mono-arm64 in the interpreter runtime variant -->
|
||||
<ItemGroup Condition=" '$(RuntimeFlavor)' == 'mono' and ('$(TargetArchitecture)' == 'arm64') and '$(TargetsWindows)' != 'true' and '$(RuntimeVariant)' == 'monointerpreter' " >
|
||||
<!-- The following issues only effect the Mono interpreter; there is currently no way to exclude based on that scenario -->
|
||||
<ExcludeList Include = "$(XunitTestBinBase)JIT/IL_Conformance/Old/Base/ckfinite/**">
|
||||
<Issue>needs triage</Issue>
|
||||
</ExcludeList>
|
||||
<!-- End interpreter issues -->
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue