Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions eng/pipelines/coreclr/crossgen2-gcstress.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
trigger: none

pr: none

schedules:
- cron: "0 6 * * 0,1"
displayName: Sat and Sun at 10:00 PM (UTC-8:00)
branches:
include:
- master
always: true

jobs:
#
# Checkout repository
#
- template: /eng/pipelines/common/checkout-job.yml

- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
buildConfig: checked
platforms:
- Linux_x64
- Linux_arm64
- OSX_x64
- Windows_NT_x64
- Windows_NT_arm64
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: gcstress-extra

- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: gcstress-extra
liveLibrariesBuildConfig: Release

- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
buildConfig: checked
platforms:
- Linux_x64
- Linux_arm64
- OSX_x64
- Windows_NT_x64
- Windows_NT_arm64
jobParameters:
testGroup: gcstress-extra
readyToRun: true
crossgen2: true
compositeBuildMode: true
displayNameArgs: Composite
liveLibrariesBuildConfig: Release
24 changes: 24 additions & 0 deletions src/coreclr/tests/src/CLRTest.CrossGen.targets
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,14 @@ if [ ! -z ${RunCrossGen2+x} ]%3B then
__ResponseFile="$__OutputFile.rsp"
rm $__ResponseFile

// Suppress the GC stress COMPlus for the duration of Crossgen2 execution
local gcStressModeToRestore = $COMPlus_GCStress;
local heapVerifyModeToRestore = $COMPlus_HeapVerify;
local readyToRunModeToRestore = $COMPlus_ReadyToRun;
export COMPlus_GCStress=
export COMPlus_HeapVerify=
export COMPlus_ReadyToRun=

__Command=$_DebuggerFullPath
# Tests run locally need __TestDotNetCmd (set by runtest.py) or a compatible 5.0 dotnet runtime in the path
if [ ! -z ${__TestDotNetCmd+x} ] %3B then
Expand All @@ -109,6 +117,10 @@ if [ ! -z ${RunCrossGen2+x} ]%3B then
echo "Running CrossGen2: $__Command"
$__Command
__cg2ExitCode=$?

export COMPlus_GCStress=$gcStressModeToRestore
export COMPlus_HeapVerify=$heapVerifyModeToRestore
export COMPlus_ReadyToRun=$readyToRunModeToRestore
}

if [ ! -z ${CompositeBuildMode+x} ]%3B then
Expand Down Expand Up @@ -212,6 +224,14 @@ if defined RunCrossGen2 (
set __ResponseFile=!__OutputFile!.rsp
del /Q !__ResponseFile!

REM Suppress GC stress mode for the duration of Crossgen2 execution
set __gcStressModeToRestore=!COMPlus_GCStress!
set COMPlus_GCStress=
set __heapVerifyModeToRestore=!COMPlus_HeapVerify!
set COMPlus_HeapVerify=
set __readyToRunModeToRestore=!COMPlus_ReadyToRun!
set COMPlus_ReadyToRun=

set __Command=!_DebuggerFullPath!
REM Tests run locally need __TestDotNetCmd (set by runtest.py) or a compatible 5.0 dotnet runtime in the path
if defined __TestDotNetCmd (
Expand All @@ -237,6 +257,10 @@ if defined RunCrossGen2 (
echo "!__Command!"
call !__Command!
set CrossGen2Status=!ERRORLEVEL!
set COMPlus_GCStress=!__gcStressModeToRestore!
set COMPlus_HeapVerify=!__heapVerifyModeToRestore!
set COMPlus_ReadyToRun=!__readyToRunModeToRestore!

Exit /b 0

:DoneCrossgen2Operations
Expand Down