From b9ecdcd30d5679056dcd1d74045d3b10c253e02d Mon Sep 17 00:00:00 2001 From: Bruce Forstall Date: Tue, 27 Mar 2018 12:22:38 -0700 Subject: Enable Linux arm32 GCStress jobs Non-PR jobs (cron and push) are disabled for now. --- netci.groovy | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) (limited to 'netci.groovy') diff --git a/netci.groovy b/netci.groovy index 120efb6363..2984308eff 100755 --- a/netci.groovy +++ b/netci.groovy @@ -331,7 +331,6 @@ class Constants { 'gcstress0xc' ] - // Note: no GCStress-related scenario is enabled currently. def static validLinuxArmScenarios = [ 'innerloop', 'normal', @@ -348,7 +347,7 @@ class Constants { 'r2r_jitstressregs0x1000', 'r2r_jitminopts', 'r2r_jitforcerelocs', - // 'r2r_gcstress15', + 'r2r_gcstress15', 'minopts', 'forcerelocs', 'jitstress1', @@ -369,17 +368,17 @@ class Constants { 'jitstress2_jitstressregs0x10', 'jitstress2_jitstressregs0x80', 'jitstress2_jitstressregs0x1000', - 'tailcallstress' - // 'gcstress0x3', - // 'gcstress0xc', - // 'zapdisable', - // 'heapverify1', - // 'gcstress0xc_zapdisable', - // 'gcstress0xc_zapdisable_jitstress2', - // 'gcstress0xc_zapdisable_heapverify1', - // 'gcstress0xc_jitstress1', - // 'gcstress0xc_jitstress2', - // 'gcstress0xc_minopts_heapverify1' + 'tailcallstress', + 'gcstress0x3', + 'gcstress0xc', + 'zapdisable', + 'heapverify1', + 'gcstress0xc_zapdisable', + 'gcstress0xc_zapdisable_jitstress2', + 'gcstress0xc_zapdisable_heapverify1', + 'gcstress0xc_jitstress1', + 'gcstress0xc_jitstress2', + 'gcstress0xc_minopts_heapverify1' ] def static configurationList = ['Debug', 'Checked', 'Release'] @@ -1084,6 +1083,12 @@ def static addNonPRTriggers(def job, def branch, def isPR, def architecture, def } } + if ((architecture == 'arm') && (os != 'Windows_NT') && isGCStressRelatedTesting(scenario)) { + // Non-Windows Arm GCStress jobs currently don't get cron or push triggers (until they are functional). + // See https://github.com/dotnet/coreclr/issues/17241. + return + } + // Check scenario. switch (scenario) { case 'innerloop': @@ -3151,9 +3156,14 @@ def static CreateOtherTestJob(def dslFactory, def project, def branch, def archi testOpts += " --test-env=${scriptFileName}" } - // TODO: how to handle GCStress-related testing for Ubuntu/arm? + // setup-stress-dependencies.sh, invoked by runtest.sh to download the coredistools package, depends on the "dotnet" + // tool downloaded by the "init-tools.sh" script. However, it only invokes setup-stress-dependencies.sh for x64. The + // coredistools package is used by GCStress on x86 and x64 to disassemble code to determine instruction boundaries. + // On arm/arm64, it is not required as determining instruction boundaries is trivial. if (isGCStressRelatedTesting(scenario)) { - shell('./init-tools.sh') + if (architecture == 'x64') { + shell('./init-tools.sh') + } } def runScript = "" -- cgit v1.2.3