-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Add GCStress testing for libraries tests on checked CoreCLR #38235
Changes from all commits
0bb0c96
93a126b
817adc7
9bdf668
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
trigger: none | ||
|
||
pr: none | ||
|
||
# This pipeline currently has too many failures to be enabled by schedule. | ||
# schedules: | ||
# - cron: "0 10 * * 0" | ||
# displayName: Sun at 2:00 AM (UTC-8:00) | ||
# branches: | ||
# include: | ||
# - master | ||
# always: true | ||
|
||
jobs: | ||
# | ||
# Checkout repository | ||
# | ||
- template: /eng/pipelines/common/checkout-job.yml | ||
|
||
# | ||
# Build CoreCLR checked and libraries Release | ||
# | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml | ||
buildConfig: checked | ||
platformGroup: gcstress | ||
|
||
# | ||
# Libraries Test Build - Release innerloop. All libraries are built on x64 and reused on all platforms. | ||
# | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/libraries/build-test-job.yml | ||
buildConfig: Release | ||
platforms: | ||
- Linux_x64 | ||
- Windows_NT_x64 | ||
jobParameters: | ||
liveRuntimeBuildConfig: checked | ||
testScope: innerloop | ||
|
||
# | ||
# Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes | ||
# | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/libraries/run-test-job.yml | ||
buildConfig: Release | ||
platformGroup: gcstress | ||
helixQueueGroup: libraries | ||
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml | ||
jobParameters: | ||
# Default timeout is 150 minutes (2.5 hours), which is not enough for stress. | ||
timeoutInMinutes: 600 | ||
testScope: innerloop | ||
liveRuntimeBuildConfig: checked | ||
dependsOnTestBuildConfiguration: Release | ||
dependsOnTestArchitecture: x64 | ||
coreclrTestGroup: gcstress-extra |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
trigger: none | ||
|
||
pr: none | ||
|
||
# This pipeline currently has too many failures to be enabled by schedule. | ||
# schedules: | ||
# - cron: "0 10 * * 6" | ||
# displayName: Sat at 2:00 AM (UTC-8:00) | ||
# branches: | ||
# include: | ||
# - master | ||
# always: true | ||
|
||
jobs: | ||
# | ||
# Checkout repository | ||
# | ||
- template: /eng/pipelines/common/checkout-job.yml | ||
|
||
# | ||
# Build CoreCLR checked and libraries Release | ||
# | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml | ||
buildConfig: checked | ||
platformGroup: gcstress | ||
|
||
# | ||
# Libraries Test Build - Release innerloop. All libraries are built on x64 and reused on all platforms. | ||
# | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/libraries/build-test-job.yml | ||
buildConfig: Release | ||
platforms: | ||
- Linux_x64 | ||
- Windows_NT_x64 | ||
jobParameters: | ||
liveRuntimeBuildConfig: checked | ||
testScope: innerloop | ||
|
||
# | ||
# Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes | ||
# | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/libraries/run-test-job.yml | ||
buildConfig: Release | ||
platformGroup: gcstress | ||
helixQueueGroup: libraries | ||
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml | ||
jobParameters: | ||
# Default timeout is 150 minutes (2.5 hours), which is not enough for stress. | ||
timeoutInMinutes: 600 | ||
testScope: innerloop | ||
liveRuntimeBuildConfig: checked | ||
dependsOnTestBuildConfiguration: Release | ||
dependsOnTestArchitecture: x64 | ||
coreclrTestGroup: gcstress0x3-gcstress0xc |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -16,7 +16,7 @@ function print_usage { | |
echo '' | ||
echo 'Command line:' | ||
echo '' | ||
echo './setup-gcstress.sh --arch=<TargetArch> --outputDir=<coredistools_lib_install_path>' | ||
echo './setup-stress-dependencies.sh --arch=<TargetArch> --outputDir=<coredistools_lib_install_path>' | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nit, echo "$0 --arch=<TargetArch> --outputDir=<coredistools_lib_install_path>" |
||
echo '' | ||
echo 'Required arguments:' | ||
echo ' --arch=<TargetArch> : Target arch for the build' | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,12 +13,23 @@ | |
<HelixBuild Condition="'$(HelixBuild)' == ''">default</HelixBuild> | ||
|
||
<!-- Normal jobs have a 30 minute (1800 sec.) timeout for arm/arm64, and 15 minute (900 sec.) timeout otherwise. | ||
Stress modes can take considerably longer, so double those numbers. | ||
Stress modes can take considerably longer, so double those numbers. And GCStress is even slower. | ||
--> | ||
<TimeoutInSeconds Condition="'$(Scenario)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">1800</TimeoutInSeconds> | ||
<TimeoutInSeconds Condition="'$(Scenario)' != '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">3600</TimeoutInSeconds> | ||
<TimeoutInSeconds Condition=" | ||
'$(Scenario)' == 'gcstress0x3' or | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why not use There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd prefer to leave it explicit, even through it is more verbose, as it makes it easier to 'grep' for a full scenario name and find every file that references it. |
||
'$(Scenario)' == 'gcstress0xc' or | ||
'$(Scenario)' == 'heapverify1' or | ||
'$(Scenario)' == 'gcstress0xc_zapdisable' or | ||
'$(Scenario)' == 'gcstress0xc_zapdisable_jitstress2' or | ||
'$(Scenario)' == 'gcstress0xc_zapdisable_heapverify1' or | ||
'$(Scenario)' == 'gcstress0xc_jitstress1' or | ||
'$(Scenario)' == 'gcstress0xc_jitstress2' or | ||
'$(Scenario)' == 'gcstress0xc_jitminopts_heapverify1'">5400</TimeoutInSeconds> | ||
<TimeoutInSeconds Condition="'$(Scenario)' == '' and '$(TimeoutInSeconds)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">1800</TimeoutInSeconds> | ||
<TimeoutInSeconds Condition="'$(Scenario)' != '' and '$(TimeoutInSeconds)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">3600</TimeoutInSeconds> | ||
<TimeoutInSeconds Condition="'$(Scenario)' == '' and '$(TimeoutInSeconds)' == ''">900</TimeoutInSeconds> | ||
<TimeoutInSeconds Condition="'$(Scenario)' != '' and '$(TimeoutInSeconds)' == ''">1800</TimeoutInSeconds> | ||
|
||
<_timeoutSpan>$([System.TimeSpan]::FromSeconds($(TimeoutInSeconds)))</_timeoutSpan> | ||
|
||
<!-- We need to enable xunit reporter so that it parses test results | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we link this to an issue?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make sense. I'll add one.