diff --git a/eng/pipelines/common/templates/runtimes/build-test-job.yml b/eng/pipelines/common/templates/runtimes/build-test-job.yml
index 2813c45915c5e3..ea185260fe5d38 100644
--- a/eng/pipelines/common/templates/runtimes/build-test-job.yml
+++ b/eng/pipelines/common/templates/runtimes/build-test-job.yml
@@ -88,6 +88,13 @@ jobs:
- name: testTreeFilterArg
value: 'tree GC/Scenarios/GCSimulator'
+ - name: buildAsStandaloneArg
+ value: ''
+
+ - ${{ if in(parameters.testGroup, 'gcstress0x3-gcstress0xc', 'gcstress-extra')}}:
+ - name: buildAsStandaloneArg
+ value: '/p:BuildAsStandalone=true'
+
steps:
# Install test build dependencies
@@ -106,7 +113,7 @@ jobs:
displayName: Disk Usage before Build
# Build managed test components
- - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)Managed allTargets skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(runtimeFlavorArgs) $(crossArg) $(priorityArg) $(testTreeFilterArg) ci /p:TargetOS=AnyOS
+ - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)Managed allTargets skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(runtimeFlavorArgs) $(crossArg) $(priorityArg) $(testTreeFilterArg) ci /p:TargetOS=AnyOS $(buildAsStandaloneArg)
displayName: Build managed test components
- ${{ if in(parameters.osGroup, 'osx', 'ios', 'tvos') }}:
diff --git a/eng/pipelines/common/templates/runtimes/run-test-job.yml b/eng/pipelines/common/templates/runtimes/run-test-job.yml
index d6c49f05be77b9..5bc2991938919f 100644
--- a/eng/pipelines/common/templates/runtimes/run-test-job.yml
+++ b/eng/pipelines/common/templates/runtimes/run-test-job.yml
@@ -267,19 +267,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. This step also generates the final test execution scripts.
- - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) copynativeonly $(logRootNameArg)Native $(testTreeFilterArg) $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(priorityArg) $(librariesOverrideArg) $(codeFlowEnforcementArg)
+ - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) copynativeonly $(logRootNameArg)Native $(testTreeFilterArg) $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(priorityArg) $(librariesOverrideArg) $(codeFlowEnforcementArg) $(buildAsStandaloneArg)
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 $(logRootNameArg)Wrappers $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg) $(runtimeVariantArg)
+ - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) buildtestwrappersonly $(logRootNameArg)Wrappers $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg) $(runtimeVariantArg) $(buildAsStandaloneArg)
displayName: Generate test wrappers
# Compose the Core_Root folder containing all artifacts needed for running
# CoreCLR tests. This step also compiles the framework using Crossgen2
# in ReadyToRun jobs.
- - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) generatelayoutonly $(logRootNameArg)Layout $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg) $(runtimeVariantArg)
+ - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) generatelayoutonly $(logRootNameArg)Layout $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg) $(runtimeVariantArg) $(buildAsStandaloneArg)
displayName: Generate CORE_ROOT
# Build a Mono LLVM AOT cross-compiler for non-amd64 targets (in this case, just arm64)
diff --git a/eng/pipelines/common/templates/runtimes/test-variables.yml b/eng/pipelines/common/templates/runtimes/test-variables.yml
index 108b9f03ddb139..3b5b22fa90f5f9 100644
--- a/eng/pipelines/common/templates/runtimes/test-variables.yml
+++ b/eng/pipelines/common/templates/runtimes/test-variables.yml
@@ -98,3 +98,10 @@ variables:
- ${{ if eq(parameters.osGroup, 'windows') }}:
- name: priorityArg
value: '-priority=1'
+
+ - name: buildAsStandaloneArg
+ value: ''
+
+ - ${{ if in(parameters.testGroup, 'gcstress0x3-gcstress0xc', 'gcstress-extra')}}:
+ - name: buildAsStandaloneArg
+ value: '/p:BuildAsStandalone=true'
diff --git a/src/tests/Common/testgrouping.proj b/src/tests/Common/testgrouping.proj
index fe677242679b62..6c32c7f7e61953 100644
--- a/src/tests/Common/testgrouping.proj
+++ b/src/tests/Common/testgrouping.proj
@@ -25,6 +25,197 @@
$(TestBinDir)JIT\jit64\JIT.jit64.XUnitWrapper.dll
+
+ JIT.HardwareIntrinsics.Arm.AdvSimd
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.Arm.Aes
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.Arm.ArmBase
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.Arm.Crc32
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.Arm.Dp
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.Arm.Rdm
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.Arm.Sha1
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.Arm.Sha256
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.General.NotSupported
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.General.Vector64
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.General.Vector128
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.General.Vector256
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Aes
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Avx1
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Avx2
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.AvxVnni
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Bmi1
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Bmi2
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Fma
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.General
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Lzcnt
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Pclmulqdq
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Popcnt
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Regression
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Sse1
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Sse2
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Sse3
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Sse41
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Sse42
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.Ssse3
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.HardwareIntrinsics.X86.X86Base
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
+
+ JIT.Methodical.a-dA-D
+ $(TestBinDir)JIT\Methodical\JIT.Methodical.XUnitWrapper.dll
+
+
+
+ JIT.Methodical.eh
+ $(TestBinDir)JIT\Methodical\JIT.Methodical.XUnitWrapper.dll
+
+
+
+ JIT.Methodical.eE
+ $(TestBinDir)JIT\Methodical\JIT.Methodical.XUnitWrapper.dll
+
+
+
+ JIT.Methodical.f-iF-I
+ $(TestBinDir)JIT\Methodical\JIT.Methodical.XUnitWrapper.dll
+
+
@@ -43,6 +234,11 @@
$(TestBinDir)JIT\Regression\JIT.Regression.XUnitWrapper.dll
+
+ JIT.HardwareIntrinsics.S
+ $(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll
+
+
Loader.classloader.generics
$(TestBinDir)Loader\classloader\Loader.classloader.XUnitWrapper.dll
diff --git a/src/tests/Directory.Build.targets b/src/tests/Directory.Build.targets
index 6f6fc552ba222c..90fd877fe0e2d9 100644
--- a/src/tests/Directory.Build.targets
+++ b/src/tests/Directory.Build.targets
@@ -298,13 +298,14 @@
-
-
+
+
1
-
+
@@ -415,7 +416,7 @@
-
+
MergedTestAssembly
@@ -437,7 +438,7 @@
$(GroupBuildCmd) /maxcpucount
$(GroupBuildCmd) "/p:DevTeamProvisioning=-"
$(GroupBuildCmd) /bl:$(ArtifactsDir)/log/$(Configuration)/InnerManagedTestBuild.$(__TestGroupToBuild).binlog
+ $(GroupBuildCmd) "/p:BuildAsStandalone=true"
$(GroupBuildCmd) "/p:CrossBuild=true"
$(GroupBuildCmd) "/p:DefaultBuildAllTarget=BuildNativeAot"
$(GroupBuildCmd) "/p:IlcMultiModule=true"