diff --git a/eng/pipelines/common/templates/runtimes/run-test-job.yml b/eng/pipelines/common/templates/runtimes/run-test-job.yml
index 5729e08972efc1..726ecee0725c0c 100644
--- a/eng/pipelines/common/templates/runtimes/run-test-job.yml
+++ b/eng/pipelines/common/templates/runtimes/run-test-job.yml
@@ -70,7 +70,10 @@ jobs:
# 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 eq(parameters.runtimeVariant, 'llvmfullaot') }}:
+ - ${{ format('{0}_llvmaot_product_build_{1}{2}_{3}_{4}', parameters.runtimeFlavor, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
+ - ${{ if not(eq(parameters.runtimeVariant, 'llvmfullaot')) }}:
+ - ${{ 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 +87,17 @@ jobs:
variables:
+ - name: monoAotBuildshCommand
+ value: ''
+
+ - ${{ if eq(parameters.runtimeVariant, 'llvmaot') }}:
+ - name: monoAotBuildshCommand
+ value: 'mono_aot'
+
+ - ${{ if eq(parameters.runtimeVariant, 'llvmfullaot') }}:
+ - name: monoAotBuildshCommand
+ value: 'mono_fullaot'
+
- name: runtimeFlavorArgs
value: ''
@@ -293,7 +307,7 @@ jobs:
displayName: "Patch dotnet with mono"
# Build a Mono LLVM AOT cross-compiler for non-amd64 targets (in this case, just arm64)
- - ${{ if and(eq(parameters.runtimeFlavor, 'mono'), eq(parameters.runtimeVariant, 'llvmaot')) }}:
+ - ${{ if and(eq(parameters.runtimeFlavor, 'mono'), or(eq(parameters.runtimeVariant, 'llvmaot'), eq(parameters.runtimeVariant, 'llvmfullaot'))) }}:
- ${{ if eq(parameters.archType, 'arm64') }}:
- script: ./build.sh
-subset mono
@@ -306,12 +320,12 @@ jobs:
/p:MonoAOTLLVMUseCxx11Abi=true
displayName: "Build Mono LLVM AOT cross compiler"
- - ${{ if and(eq(parameters.runtimeFlavor, 'mono'), eq(parameters.runtimeVariant, 'llvmaot')) }}:
+ - ${{ 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) mono_aot $(buildConfig) $(archType) $(runtimeVariantArg)
+ - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(monoAotBuildshCommand) $(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 $(runtimeVariantArg)
+ - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(monoAotBuildshCommand) $(buildConfig) $(archType) cross $(runtimeVariantArg)
displayName: "LLVM AOT cross-compile CoreCLR tests"
env:
__MonoToolPrefix: aarch64-linux-gnu-
diff --git a/eng/pipelines/mono/templates/xplat-pipeline-job.yml b/eng/pipelines/mono/templates/xplat-pipeline-job.yml
index 0b0ae5a28f6e64..4d07037c413a04 100644
--- a/eng/pipelines/mono/templates/xplat-pipeline-job.yml
+++ b/eng/pipelines/mono/templates/xplat-pipeline-job.yml
@@ -63,6 +63,10 @@ jobs:
- name : buildProductArtifactName
value : 'MonoProduct___$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
+ - ${{ if eq(parameters.runtimeVariant, 'llvmfullaot') }}:
+ - name : buildProductArtifactName
+ value : 'MonoProduct__llvmaot_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
+
- name: binTestsPath
value: '$(Build.SourcesDirectory)/artifacts/tests/coreclr'
diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml
index 0fca635b793987..c85ddd293736e1 100644
--- a/eng/pipelines/runtime.yml
+++ b/eng/pipelines/runtime.yml
@@ -1069,6 +1069,31 @@ jobs:
eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
eq(variables['isFullMatrix'], true))
+#
+# Mono CoreCLR runtime Test executions using live libraries and LLVM Full AOT
+# 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:
+ - Linux_x64
+ - Linux_arm64
+ helixQueueGroup: pr
+ helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+ jobParameters:
+ testGroup: innerloop
+ liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+ liveRuntimeBuildConfig: release
+ runtimeVariant: llvmfullaot
+ condition: >-
+ or(
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true),
+ eq(variables['isFullMatrix'], true))
+
#
# Libraries Release Test Execution against a release mono runtime.
# Only when libraries or mono changed
diff --git a/src/mono/msbuild/aot-compile.proj b/src/mono/msbuild/aot-compile.proj
index 3a2e71619d2347..9a1097510524d7 100644
--- a/src/mono/msbuild/aot-compile.proj
+++ b/src/mono/msbuild/aot-compile.proj
@@ -1,10 +1,21 @@
+
+ $([System.IO.Path]::GetDirectoryName($(_TestDll)))
+
-
+
+
+
+
+ @(MonoPathItem->'%(Identity)', ':')
+
+
+
+
diff --git a/src/tests/Common/testenvironment.proj b/src/tests/Common/testenvironment.proj
index 540eb4698c777f..f040056fd35e10 100644
--- a/src/tests/Common/testenvironment.proj
+++ b/src/tests/Common/testenvironment.proj
@@ -221,9 +221,12 @@
<_TestEnvFileLine Condition="'$(RuntimeVariant)' == 'monointerpreter'" Include="export MONO_ENV_OPTIONS=--interpreter" />
-
+
<_TestEnvFileLine Condition="'$(RuntimeVariant)' == 'llvmaot'" Include="export MONO_ENV_OPTIONS=--llvm" />
+
+ <_TestEnvFileLine Condition="'$(RuntimeVariant)' == 'llvmfullaot'" Include="export MONO_ENV_OPTIONS=--full-aot" />
+
<_TestEnvFileLine Condition="'$(Scenario)' == 'clrinterpreter'" Include="export COMPlus_Interpret=%2A" />
<_TestEnvFileLine Condition="'$(Scenario)' == 'clrinterpreter'" Include="export COMPlus_InterpreterHWIntrinsicsIsSupportedFalse=1" />
diff --git a/src/tests/build.sh b/src/tests/build.sh
index ac59074ac35c12..b2d926ef4fe39e 100755
--- a/src/tests/build.sh
+++ b/src/tests/build.sh
@@ -43,12 +43,16 @@ build_test_wrappers()
build_mono_aot()
{
__RuntimeFlavor="mono"
- __Exclude="$__RepoRootDir/src/tests/issues.targets"
__TestBinDir="$__TestWorkingDir"
+ __Exclude="$__RepoRootDir/src/tests/issues.targets"
CORE_ROOT="$__TestBinDir"/Tests/Core_Root
+ __MonoFullAotPropVal="false"
+ if [[ "$__MonoFullAot" -eq 1 ]]; then
+ __MonoFullAotPropVal="true"
+ fi
export __Exclude
export CORE_ROOT
- build_MSBuild_projects "Tests_MonoAot" "$__RepoRootDir/src/tests/run.proj" "Mono AOT compile tests" "/t:MonoAotCompileTests" "/p:RuntimeFlavor=$__RuntimeFlavor" "/p:MonoBinDir=$__MonoBinDir"
+ build_MSBuild_projects "Tests_MonoAot" "$__RepoRootDir/src/tests/run.proj" "Mono AOT compile tests" "/t:MonoAotCompileTests" "/p:RuntimeFlavor=$__RuntimeFlavor" "/p:MonoBinDir=$__MonoBinDir" "/p:MonoFullAot=$__MonoFullAotPropVal"
}
build_ios_apps()
@@ -530,6 +534,11 @@ handle_arguments_local() {
__MonoAot=1
;;
+ mono_fullaot|-mono_fullaot)
+ __Mono=1
+ __MonoFullAot=1
+ ;;
+
*)
__UnprocessedBuildArgs+=("$1")
;;
@@ -586,6 +595,7 @@ __CMakeArgs=""
__priority1=
__Mono=0
__MonoAot=0
+__MonoFullAot=0
CORE_ROOT=
source $__RepoRootDir/src/coreclr/_build-commons.sh
@@ -638,11 +648,11 @@ if [[ "$__RebuildTests" -ne 0 ]]; then
fi
fi
-if [[ (-z "$__GenerateLayoutOnly") && (-z "$__BuildTestWrappersOnly") && ("$__MonoAot" -eq 0) ]]; then
+if [[ (-z "$__GenerateLayoutOnly") && (-z "$__BuildTestWrappersOnly") && ("$__MonoAot" -eq 0) && ("$__MonoFullAot" -eq 0) ]]; then
build_Tests
elif [[ ! -z "$__BuildTestWrappersOnly" ]]; then
build_test_wrappers
-elif [[ "$__MonoAot" -eq 1 ]]; then
+elif [[ ("$__MonoAot" -eq 1) || ("$__MonoFullAot" -eq 1) ]]; then
build_mono_aot
else
generate_layout
diff --git a/src/tests/issues.targets b/src/tests/issues.targets
index 0b09eccb568fae..fefbdf09003331 100644
--- a/src/tests/issues.targets
+++ b/src/tests/issues.targets
@@ -2079,9 +2079,6 @@
needs triage
-
- needs triage
-
needs triage
@@ -2095,9 +2092,6 @@
needs triage
-
- https://github.com/dotnet/runtime/issues/48914
-
https://github.com/dotnet/runtime/issues/54113
@@ -2105,6 +2099,233 @@
needs triage
+
+
+
+
+ https://github.com/dotnet/runtime/issues/57361
+
+
+ https://github.com/dotnet/runtime/issues/57362
+
+
+ https://github.com/dotnet/runtime/issues/57361
+
+
+ https://github.com/dotnet/runtime/issues/57361
+
+
+ https://github.com/dotnet/runtime/issues/57361
+
+
+ https://github.com/dotnet/runtime/issues/57361
+
+
+ https://github.com/dotnet/runtime/issues/57369
+
+
+ https://github.com/dotnet/runtime/issues/57369
+
+
+ https://github.com/dotnet/runtime/issues/57369
+
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+ https://github.com/dotnet/runtime/issues/57350
+
+
+
+ llvmfullaot: EH problem
+
+
+ llvmfullaot: EH problem
+
+
+
+ https://github.com/dotnet/runtime/issues/57353
+
+
+ https://github.com/dotnet/runtime/issues/57353
+
+
+
+ https://github.com/dotnet/runtime/issues/57352
+
+
+ https://github.com/dotnet/runtime/issues/57352
+
+
+ https://github.com/dotnet/runtime/issues/57352
+
+
+
+ https://github.com/dotnet/runtime/issues/57512
+
+
+
+
+
+ https://github.com/dotnet/runtime/issues/48914
+
+
+ https://github.com/dotnet/runtime/issues/58062
+
+
+ needs triage
+
+
+ needs triage
+
needs triage
@@ -2117,9 +2338,6 @@
needs triage
-
- needs triage
-
needs triage
@@ -2141,17 +2359,20 @@
needs triage
-
- needs triage
-
needs triage
needs triage
-
- https://github.com/dotnet/runtime/issues/58062
+
+
+
+
+ https://github.com/dotnet/runtime/issues/57371
+
+
+ https://github.com/dotnet/runtime/issues/57350
diff --git a/src/tests/run.proj b/src/tests/run.proj
index b7fe57ead80de5..f812ee9ea6a657 100644
--- a/src/tests/run.proj
+++ b/src/tests/run.proj
@@ -579,8 +579,19 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\","").
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -594,6 +605,7 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\","").
+
@@ -613,18 +625,21 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\","").
@(MonoAotOption->'%(Identity)', ',')
- $(CORE_ROOT)
+ $(CORE_ROOT)
+
+
+
- _AotCompiler=$(AotCompiler);_TestDll=%(TestDlls.Identity);_MonoPath=$(MonoPath);_MonoAotOptions=$(MonoAotOptions)
+ _AotCompiler=$(AotCompiler);_TestDll=%(AllDlls.Identity);_MonoPath=$(MonoPath);_MonoAotOptions=$(MonoAotOptions)