diff --git a/eng/pipelines/common/templates/runtimes/run-test-job.yml b/eng/pipelines/common/templates/runtimes/run-test-job.yml index 1c3554510aed91..53dba08d4293fc 100644 --- a/eng/pipelines/common/templates/runtimes/run-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/run-test-job.yml @@ -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 diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index ed6022360c55aa..2e9fa6d8525d6d 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -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 diff --git a/eng/pipelines/mono/templates/xplat-pipeline-job.yml b/eng/pipelines/mono/templates/xplat-pipeline-job.yml index d3e58bcfe41e72..8327e5564a1e10 100644 --- a/eng/pipelines/mono/templates/xplat-pipeline-job.yml +++ b/eng/pipelines/mono/templates/xplat-pipeline-job.yml @@ -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: '' diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 94d0b555a207ea..91ca17aaf57365 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -853,7 +853,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: @@ -869,6 +869,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), diff --git a/src/tests/issues.targets b/src/tests/issues.targets index b575a39cc9caea..6df3036b3d2bc7 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -1039,7 +1039,7 @@ - + Mono does not define out of range fp to int conversions @@ -1937,10 +1937,11 @@ needs triage + - - - + + + https://github.com/dotnet/runtime/issues/46622 @@ -2516,7 +2517,34 @@ - + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + + Doesn't compile with LLVM AOT. @@ -2668,12 +2696,14 @@ needs triage + + + needs triage -