Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set BuildAsStandalone for gcstress test builds #85284

Closed
wants to merge 10 commits into from
9 changes: 8 additions & 1 deletion eng/pipelines/common/templates/runtimes/build-test-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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') }}:
Expand Down
6 changes: 3 additions & 3 deletions eng/pipelines/common/templates/runtimes/run-test-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
7 changes: 7 additions & 0 deletions eng/pipelines/common/templates/runtimes/test-variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
196 changes: 196 additions & 0 deletions src/tests/Common/testgrouping.proj
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,197 @@
<XUnitWrapperDll>$(TestBinDir)JIT\jit64\JIT.jit64.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\Arm\AdvSimd*\**">
<TestGroup>JIT.HardwareIntrinsics.Arm.AdvSimd</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\Arm\Aes*\**">
<TestGroup>JIT.HardwareIntrinsics.Arm.Aes</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\Arm\ArmBase*\**">
<TestGroup>JIT.HardwareIntrinsics.Arm.ArmBase</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\Arm\Crc32*\**">
<TestGroup>JIT.HardwareIntrinsics.Arm.Crc32</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\Arm\Dp*\**">
<TestGroup>JIT.HardwareIntrinsics.Arm.Dp</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\Arm\Rdm*\**">
<TestGroup>JIT.HardwareIntrinsics.Arm.Rdm</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\Arm\Sha1*\**">
<TestGroup>JIT.HardwareIntrinsics.Arm.Sha1</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\Arm\Sha256*\**">
<TestGroup>JIT.HardwareIntrinsics.Arm.Sha256</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\General\NotSupported*\**">
<TestGroup>JIT.HardwareIntrinsics.General.NotSupported</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\General\Vector64*\**">
<TestGroup>JIT.HardwareIntrinsics.General.Vector64</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\General\Vector128*\**">
<TestGroup>JIT.HardwareIntrinsics.General.Vector128</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\General\Vector256*\**">
<TestGroup>JIT.HardwareIntrinsics.General.Vector256</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Aes*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Aes</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Avx1*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Avx1</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Avx2*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Avx2</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\AvxVnni*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.AvxVnni</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Bmi1*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Bmi1</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Bmi2*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Bmi2</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Fma*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Fma</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\General*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.General</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Lzcnt*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Lzcnt</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Pclmulqdq*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Pclmulqdq</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Popcnt*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Popcnt</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Regression*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Regression</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Sse1*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Sse1</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Sse2*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Sse2</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Sse3*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Sse3</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Sse41*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Sse41</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Sse42*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Sse42</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\Ssse3*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.Ssse3</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\X86Base*\**">
<TestGroup>JIT.HardwareIntrinsics.X86.X86Base</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\Methodical\a*\**;
$(TestBinDir)JIT\Methodical\b*\**;
$(TestBinDir)JIT\Methodical\c*\**;
$(TestBinDir)JIT\Methodical\d*\**;
$(TestBinDir)JIT\Methodical\A*\**;
$(TestBinDir)JIT\Methodical\B*\**;
$(TestBinDir)JIT\Methodical\C*\**;
$(TestBinDir)JIT\Methodical\D*\**">
<TestGroup>JIT.Methodical.a-dA-D</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\Methodical\JIT.Methodical.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\Methodical\eh\**">
<TestGroup>JIT.Methodical.eh</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\Methodical\JIT.Methodical.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\Methodical\e*\**;
$(TestBinDir)JIT\Methodical\E*\**"
Exclude="$(TestBinDir)JIT\Methodical\eh\**">
<TestGroup>JIT.Methodical.eE</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\Methodical\JIT.Methodical.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\Methodical\f*\**;
$(TestBinDir)JIT\Methodical\g*\**;
$(TestBinDir)JIT\Methodical\h*\**;
$(TestBinDir)JIT\Methodical\i*\**;
$(TestBinDir)JIT\Methodical\F*\**;
$(TestBinDir)JIT\Methodical\G*\**;
$(TestBinDir)JIT\Methodical\H*\**;
$(TestBinDir)JIT\Methodical\I*\**">
<TestGroup>JIT.Methodical.f-iF-I</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\Methodical\JIT.Methodical.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\Regression\CLR-x86-JIT\V1-M09*\**;
$(TestBinDir)JIT\Regression\CLR-x86-JIT\V1-M10*\**;
$(TestBinDir)JIT\Regression\CLR-x86-JIT\V1-M11*\**">
Expand All @@ -43,6 +234,11 @@
<XUnitWrapperDll>$(TestBinDir)JIT\Regression\JIT.Regression.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)JIT\HardwareIntrinsics\X86\S*\**">
<TestGroup>JIT.HardwareIntrinsics.S</TestGroup>
<XUnitWrapperDll>$(TestBinDir)JIT\HardwareIntrinsics\JIT.HardwareIntrinsics.XUnitWrapper.dll</XUnitWrapperDll>
</TestGrouping>

<TestGrouping Include="$(TestBinDir)Loader\classloader\generics\**">
<TestGroup>Loader.classloader.generics</TestGroup>
<XUnitWrapperDll>$(TestBinDir)Loader\classloader\Loader.classloader.XUnitWrapper.dll</XUnitWrapperDll>
Expand Down
11 changes: 6 additions & 5 deletions src/tests/Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -298,13 +298,14 @@
</PropertyGroup>
</Target>

<Target Name="GenerateMarkerFiles" BeforeTargets="AssignTargetPaths">
<PropertyGroup Condition="'$(NumberOfStripesToUseInStress)' == '' and '$(IsMergedTestRunnerAssembly)' == 'true'">
<Target Name="GenerateMarkerFiles" BeforeTargets="AssignTargetPaths"
Condition="'$(IsMergedTestRunnerAssembly)' == 'true' and !$(BuildAsStandalone)">
<PropertyGroup Condition="'$(NumberOfStripesToUseInStress)' == ''">
<NumberOfStripesToUseInStress>1</NumberOfStripesToUseInStress> <!-- Set a custom number of stripes in stress to allow very large merged groups to function in the presence of GCStress -->
</PropertyGroup>

<!-- Generate a set of stress marker files to be used in stress scenarios in CI runs -->
<ItemGroup Condition="'$(NumberOfStripesToUseInStress)' != '' and '$(IsMergedTestRunnerAssembly)' == 'true'">
<ItemGroup Condition="'$(NumberOfStripesToUseInStress)' != ''">
<SequenceOfIntegers Include="0"/>
<SequenceOfIntegers Include="1"/>
<SequenceOfIntegers Include="2"/>
Expand Down Expand Up @@ -415,7 +416,7 @@

<ItemGroup>
<Content Include="$(AssemblyName).reflect.xml" Condition="Exists('$(AssemblyName).reflect.xml')" CopyToOutputDirectory="PreserveNewest" />
<MarkerFile Include="$(IntermediateOutputPath)\$(MSBuildProjectName).MergedTestAssembly" Condition="'$(IsMergedTestRunnerAssembly)' == 'true'">
<MarkerFile Include="$(IntermediateOutputPath)\$(MSBuildProjectName).MergedTestAssembly">
<Type>MergedTestAssembly</Type>
</MarkerFile>
<MarkerFile Include="$(IntermediateOutputPath)\$(AssemblyName).NoMonoAot" Condition="'$(MonoAotIncompatible)' == 'true'">
Expand All @@ -437,7 +438,7 @@

<!-- We don't want the out-of-process test marker file to be included in referencing projects, so we don't include it as content. -->
<WriteLinesToFile
Condition="'$(RequiresProcessIsolation)' == 'true' and '$(BuildAsStandalone)' != 'true'"
Condition="'$(RequiresProcessIsolation)' == 'true'"
File="$(OutputPath)\$(AssemblyName).OutOfProcessTest"
Lines="OutOfProcessTest"
Overwrite="true"
Expand Down
1 change: 1 addition & 0 deletions src/tests/build.proj
Original file line number Diff line number Diff line change
Expand Up @@ -589,6 +589,7 @@
<GroupBuildCmd>$(GroupBuildCmd) /maxcpucount</GroupBuildCmd>
<GroupBuildCmd Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'tvos'">$(GroupBuildCmd) "/p:DevTeamProvisioning=-"</GroupBuildCmd>
<GroupBuildCmd>$(GroupBuildCmd) /bl:$(ArtifactsDir)/log/$(Configuration)/InnerManagedTestBuild.$(__TestGroupToBuild).binlog</GroupBuildCmd>
<GroupBuildCmd Condition="'$(BuildAsStandalone)' == 'true'">$(GroupBuildCmd) "/p:BuildAsStandalone=true"</GroupBuildCmd>
<GroupBuildCmd Condition="'$(CrossBuild)' == 'true'">$(GroupBuildCmd) "/p:CrossBuild=true"</GroupBuildCmd>
<GroupBuildCmd Condition="'$(TestBuildMode)' == 'nativeaot'">$(GroupBuildCmd) "/p:DefaultBuildAllTarget=BuildNativeAot"</GroupBuildCmd>
<GroupBuildCmd Condition="'$(IlcMultiModule)' == 'true'">$(GroupBuildCmd) "/p:IlcMultiModule=true"</GroupBuildCmd>
Expand Down