From: Lubomir Litchev Date: Sat, 21 May 2016 21:23:11 +0000 (-0700) Subject: Add R2R JitStress, JitStressRegs, JITMinOpts and ForceRelocs jobs to CI. X-Git-Tag: accepted/tizen/base/20180629.140029~4555^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a99abc5cf4b7df4d6a43f1793209d850b22b5c73;p=platform%2Fupstream%2Fcoreclr.git Add R2R JitStress, JitStressRegs, JITMinOpts and ForceRelocs jobs to CI. --- diff --git a/netci.groovy b/netci.groovy index 0f6fba8..00aeb32 100755 --- a/netci.groovy +++ b/netci.groovy @@ -68,8 +68,12 @@ class Constants { 'gcstress0xc_jitstress2' : ['COMPlus_GCStress' : '0xC', 'COMPlus_JitStress' : '2'], 'gcstress0xc_minopts_heapverify1' : ['COMPlus_GCStress' : '0xC', 'COMPlus_JITMinOpts' : '1', 'COMPlus_HeapVerify' : '1'] ] + // This is a set of r2r jit stress scenarios + def static r2rJitStressScenarios = ['r2r_jitstress1', 'r2r_jitstress2', 'r2r_jitstressregs1', 'r2r_jitstressregs2', 'r2r_jitstressregs3', + 'r2r_jitstressregs4', 'r2r_jitstressregs8', 'r2r_jitstressregsx10', 'r2r_jitstressregsx80', + 'r2r_jitminopts', 'r2r_jitforcerelocs'] // This is the basic set of scenarios - def static basicScenarios = ['default', 'pri1', 'ilrt', 'r2r', 'pri1r2r', 'gcstress15_pri1r2r', 'longgc', 'coverage', 'gcsimulator'] + def static basicScenarios = ['default', 'pri1', 'ilrt', 'r2r', 'pri1r2r', 'gcstress15_pri1r2r', 'longgc', 'coverage', 'gcsimulator'] + r2rJitStressScenarios def static configurationList = ['Debug', 'Checked', 'Release'] // This is the set of architectures def static architectureList = ['arm', 'arm64', 'x64', 'x86ryujit', 'x86lb'] @@ -355,6 +359,17 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, } } break + case 'r2r_jitstress1': + case 'r2r_jitstress2': + case 'r2r_jitstressregs1': + case 'r2r_jitstressregs2': + case 'r2r_jitstressregs3': + case 'r2r_jitstressregs4': + case 'r2r_jitstressregs8': + case 'r2r_jitstressregsx10': + case 'r2r_jitstressregsx80': + case 'r2r_jitminopts': + case 'r2r_jitforcerelocs': case 'gcstress15_pri1r2r': assert !(os in bidailyCrossList) //GC Stress 15 pri1 r2r gets a push trigger for checked/release @@ -534,6 +549,61 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} GCStress 15 R2R pri1 Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") } break + case 'r2r_jitstress1': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstress1 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstress2': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstress2 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs1': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs1 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs2': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs2 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs3': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs3 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs4': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs4 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs8': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs8 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregsx10': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregsx10 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregsx80': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregsx80 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitminopts': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} JITMinOpts R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitforcerelocs': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} ForceRelocs R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break case 'longgc': if (configuration == 'Release') { Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Long-Running GC Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") @@ -664,6 +734,61 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} GCStress 15 R2R pri1 Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") } break + case 'r2r_jitstress1': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstress1 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstress2': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstress2 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs1': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs1 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs2': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs2 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs3': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs3 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs4': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs4 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs8': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs8 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregsx10': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregsx10 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregsx80': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregsx80 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitminopts': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} JITMinOpts R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitforcerelocs': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} ForceRelocs R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break default: break } @@ -701,6 +826,61 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} GCStress 15 R2R pri1 Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") } break + case 'r2r_jitstress1': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstress1 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstress2': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstress2 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs1': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs1 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs2': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs2 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs3': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs3 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs4': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs4 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregs8': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregs8 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregsx10': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregsx10 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitstressregsx80': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} jitstressregsx80 R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitminopts': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} JITMinOpts R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break + case 'r2r_jitforcerelocs': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} ForceRelocs R2R Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break case 'longgc': if (configuration == 'Release') { Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Long-Running GC Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") @@ -863,7 +1043,8 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, break case 'x86ryujit': case 'x86lb': - assert (scenario == 'default' || scenario == 'r2r' || scenario == 'pri1r2r' || scenario == 'gcstress15_pri1r2r' || scenario == 'longgc' || scenario == 'gcsimulator') + assert (scenario == 'default' || scenario == 'r2r' || scenario == 'pri1r2r' || scenario == 'gcstress15_pri1r2r' || scenario == 'longgc' || scenario == 'gcsimulator' || + Constants.r2rJitStressScenarios.indexOf(scenario) != -1) // For windows, x86 runs by default def arch = 'x86' def jit = 'ryujit' @@ -902,7 +1083,84 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} GCStress 15 R2R pri1 Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") } } - } + } + else if (scenario == 'r2r_jitstress1'){ + if (configuration == 'Release' || configuration == 'Checked') { + if (os == 'Windows_NT'){ + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstress1 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") + } + } + } + else if (scenario == 'r2r_jitstress2'){ + if (configuration == 'Release' || configuration == 'Checked') { + if (os == 'Windows_NT'){ + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstress2 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") + } + } + } + else if (scenario == 'r2r_jitstressregs1'){ + if (configuration == 'Release' || configuration == 'Checked') { + if (os == 'Windows_NT'){ + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregs1 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") + } + } + } + else if (scenario == 'r2r_jitstressregs2'){ + if (configuration == 'Release' || configuration == 'Checked') { + if (os == 'Windows_NT'){ + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregs2 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") + } + } + } + else if (scenario == 'r2r_jitstressregs3'){ + if (configuration == 'Release' || configuration == 'Checked') { + if (os == 'Windows_NT'){ + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregs3 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") + } + } + } + else if (scenario == 'r2r_jitstressregs4'){ + if (configuration == 'Release' || configuration == 'Checked') { + if (os == 'Windows_NT'){ + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregs4 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") + } + } + } + else if (scenario == 'r2r_jitstressregs8'){ + if (configuration == 'Release' || configuration == 'Checked') { + if (os == 'Windows_NT'){ + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregs8 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") + } + } + } + else if (scenario == 'r2r_jitstressregsx10'){ + if (configuration == 'Release' || configuration == 'Checked') { + if (os == 'Windows_NT'){ + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregsx10 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") + } + } + } + else if (scenario == 'r2r_jitstressregsx80'){ + if (configuration == 'Release' || configuration == 'Checked') { + if (os == 'Windows_NT'){ + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitstressregsx80 R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") + } + } + } + else if (scenario == 'r2r_jitminopts'){ + if (configuration == 'Release' || configuration == 'Checked') { + if (os == 'Windows_NT'){ + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitminopts R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") + } + } + } + else if (scenario == 'r2r_jitforcerelocs'){ + if (configuration == 'Release' || configuration == 'Checked') { + if (os == 'Windows_NT'){ + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} jitforcerelocs R2R Build & Test", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") + } + } + } else if (scenario == 'longgc') { if (os == 'Windows_NT'){ if (configuration == 'Release'){ @@ -1051,7 +1309,18 @@ combinedScenarios.each { scenario -> } break case 'gcstress15_pri1r2r': - // The gcstress15_pri1r2r build isn't necessary except for Windows_NT. Non-Windows NT uses + case 'r2r_jitstress1': + case 'r2r_jitstress2': + case 'r2r_jitstressregs1': + case 'r2r_jitstressregs2': + case 'r2r_jitstressregs3': + case 'r2r_jitstressregs4': + case 'r2r_jitstressregs8': + case 'r2r_jitstressregsx10': + case 'r2r_jitstressregsx80': + case 'r2r_jitminopts': + case 'r2r_jitforcerelocs': + // The above builds are not necessary except for Windows_NT. Non-Windows NT uses // the default scenario build if (os != 'Windows_NT') { return @@ -1122,7 +1391,10 @@ combinedScenarios.each { scenario -> arch = 'x86' } - if (Constants.jitStressModeScenarios.containsKey(scenario) || scenario == 'default' || scenario == 'r2r') { + if (Constants.jitStressModeScenarios.containsKey(scenario) || + scenario == 'default' || + scenario == 'r2r' || + Constants.r2rJitStressScenarios.indexOf(scenario) != -1) { buildOpts = enableCorefxTesting ? 'skiptests' : '' buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} ${buildOpts}" } @@ -1166,9 +1438,51 @@ combinedScenarios.each { scenario -> //If this is a crossgen build, pass 'crossgen' to runtest.cmd def crossgenStr = '' def runcrossgentestsStr = '' - if (scenario == 'r2r' || scenario == 'pri1r2r' || scenario == 'gcstress15_pri1r2r'){ - crossgenStr = 'crossgen' - runcrossgentestsStr = 'runcrossgentests' + def runjitstressStr = '' + def runjitstressregsStr = '' + def runjitmioptsStr = '' + def runjitforcerelocsStr = '' + + if (scenario == 'r2r' || + scenario == 'pri1r2r' || + scenario == 'gcstress15_pri1r2r' || + Constants.r2rJitStressScenarios.indexOf(scenario) != -1) { + crossgenStr = 'crossgen' + runcrossgentestsStr = 'runcrossgentests' + + if (scenario == 'r2r_jitstress1'){ + runjitstressStr = 'jitstress 1' + } + else if (scenario == 'r2r_jitstress2') { + runjitstressStr = 'jitstress 2' + } + else if (scenario == 'r2r_jitstressregs1'){ + runjitstressregsStr = 'jitstressregs 1' + } + else if (scenario == 'r2r_jitstressregs2') { + runjitstressregsStr = 'jitstressregs 2' + } + else if (scenario == 'r2r_jitstressregs3') { + runjitstressregsStr = 'jitstressregs 3' + } + else if (scenario == 'r2r_jitstressregs4') { + runjitstressregsStr = 'jitstressregs 4' + } + else if (scenario == 'r2r_jitstressregs8') { + runjitstressregsStr = 'jitstressregs 8' + } + else if (scenario == 'r2r_jitstressregsx10') { + runjitstressregsStr = 'jitstressregs x10' + } + else if (scenario == 'r2r_jitstressregsx80') { + runjitstressregsStr = 'jitstressregs x80' + } + else if (scenario == 'r2r_jitminopts') { + runjitmioptsStr = 'jitminopts' + } + else if (scenario == 'r2r_jitforcerelocs') { + runjitforcerelocsStr = 'jitforcerelocs' + } } if (Constants.jitStressModeScenarios.containsKey(scenario)) { if (enableCorefxTesting) { @@ -1190,7 +1504,7 @@ combinedScenarios.each { scenario -> // Run tests with the - buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${arch} ${crossgenStr} ${runcrossgentestsStr} TestEnv ${stepScriptLocation}" + buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${arch} ${crossgenStr} ${runcrossgentestsStr} ${runjitstressStr} ${runjitstressregsStr} ${runjitmioptsStr} ${runjitforcerelocsStr} TestEnv ${stepScriptLocation}" } } else if (architecture == 'x64') { @@ -1467,7 +1781,11 @@ combinedScenarios.each { scenario -> } // For CentOS, we only want Checked/Release pri1 builds. else if (os == 'CentOS7.1') { - if (scenario != 'pri1' && scenario != 'r2r' && scenario != 'pri1r2r' && scenario != 'gcstress15_pri1r2r') { + if (scenario != 'pri1' && + scenario != 'r2r' && + scenario != 'pri1r2r' && + scenario != 'gcstress15_pri1r2r' && + Constants.r2rJitStressScenarios.indexOf(scenario) == -1) { return } if (configuration != 'Checked' && configuration != 'Release') { @@ -1504,6 +1822,17 @@ combinedScenarios.each { scenario -> } break case 'gcstress15_pri1r2r': + case 'r2r_jitstress1': + case 'r2r_jitstress2': + case 'r2r_jitstressregs1': + case 'r2r_jitstressregs2': + case 'r2r_jitstressregs3': + case 'r2r_jitstressregs4': + case 'r2r_jitstressregs8': + case 'r2r_jitstressregsx10': + case 'r2r_jitstressregsx80': + case 'r2r_jitminopts': + case 'r2r_jitforcerelocs': //Skip configs that aren't Checked or Release (so just Debug, for now) if (configuration != 'Checked' && configuration != 'Release') { return @@ -1581,9 +1910,51 @@ combinedScenarios.each { scenario -> // pass --crossgen to runtest.sh for crossgen builds def crossgenStr = '' def runcrossgentestsStr = '' - if (scenario == 'r2r' || scenario == 'pri1r2r' || scenario == 'gcstress15_pri1r2r'){ - crossgenStr = '--crossgen' - runcrossgentestsStr = '--runcrossgentests' + def runjitstressStr = '' + def runjitstressregsStr = '' + def runjitmioptsStr = '' + def runjitforcerelocsStr = '' + + if (scenario == 'r2r' || + scenario == 'pri1r2r' || + scenario == 'gcstress15_pri1r2r' || + Constants.r2rJitStressScenarios.indexOf(scenario) != -1) { + crossgenStr = '--crossgen' + runcrossgentestsStr = '--runcrossgentests' + + if (scenario == 'r2r_jitstress1'){ + runjitstressStr = '--jitstress=1' + } + else if (scenario == 'r2r_jitstress2') { + runjitstressStr = '--jitstress=2' + } + else if (scenario == 'r2r_jitstressregs1'){ + runjitstressregsStr = '--jitstressregs=1' + } + else if (scenario == 'r2r_jitstressregs2') { + runjitstressregsStr = '--jitstressregs=2' + } + else if (scenario == 'r2r_jitstressregs3') { + runjitstressregsStr = '--jitstressregs=3' + } + else if (scenario == 'r2r_jitstressregs4') { + runjitstressregsStr = '--jitstressregs=4' + } + else if (scenario == 'r2r_jitstressregs8') { + runjitstressregsStr = '--jitstressregs=8' + } + else if (scenario == 'r2r_jitstressregsx10') { + runjitstressregsStr = '--jitstressregs=x10' + } + else if (scenario == 'r2r_jitstressregsx80') { + runjitstressregsStr = '--jitstressregs=x80' + } + else if (scenario == 'r2r_jitminopts') { + runjitmioptsStr = '--jitminopts' + } + else if (scenario == 'r2r_jitforcerelocs') { + runjitforcerelocsStr = '--jitforcerelocs' + } } if (isLongGc(scenario)) { @@ -1743,7 +2114,7 @@ combinedScenarios.each { scenario -> --mscorlibDir=\"\${WORKSPACE}/bin/Product/${osGroup}.${architecture}.${configuration}\" \\ --coreFxBinDir=\"\${WORKSPACE}/bin/${osGroup}.AnyCPU.Release;\${WORKSPACE}/bin/Unix.AnyCPU.Release;\${WORKSPACE}/bin/AnyOS.AnyCPU.Release\" \\ --coreFxNativeBinDir=\"\${WORKSPACE}/bin/${osGroup}.${architecture}.Release\" \\ - ${testEnvOpt} ${serverGCString} ${crossgenStr} ${runcrossgentestsStr} ${sequentialString} ${playlistString}""") + ${testEnvOpt} ${serverGCString} ${crossgenStr} ${runcrossgentestsStr} ${runjitstressStr} ${runjitstressregsStr} ${runjitmioptsStr} ${runjitforcerelocsStr} ${sequentialString} ${playlistString}""") } } } diff --git a/tests/runtest.cmd b/tests/runtest.cmd index 52468a1..981690e 100644 --- a/tests/runtest.cmd +++ b/tests/runtest.cmd @@ -57,6 +57,10 @@ if /i "%1" == "TestEnv" (set __TestEnv=%2&shift&shift&goto Arg_Loop) if /i "%1" == "sequential" (set __Sequential=1&shift&goto Arg_Loop) if /i "%1" == "crossgen" (set __DoCrossgen=1&shift&goto Arg_Loop) if /i "%1" == "longgctests" (set __LongGCTests=1&shift&goto Arg_Loop) +if /i "%1" == "jitstress" (set COMPlus_JitStress=%2&shift&shift&goto Arg_Loop) +if /i "%1" == "jitstressregs" (set COMPlus_JitStressRegs=%2&shift&shift&goto Arg_Loop) +if /i "%1" == "jitminopts (set COMPlus_JITMinOpts=1&shift&shift&goto Arg_Loop) +if /i "%1" == "jitforcerelocs" (set COMPlus_ForceRelocs=1&shift&shift&goto Arg_Loop) if /i "%1" == "GenerateLayoutOnly" (set __GenerateLayoutOnly=1&set __SkipWrapperGeneration=true&shift&goto Arg_Loop) if /i "%1" == "PerfTests" (set __PerfTests=true&set __SkipWrapperGeneration=true&shift&goto Arg_Loop) if /i "%1" == "runcrossgentests" (set __RunCrossgenTests=1&shift&goto Arg_Loop) @@ -346,6 +350,10 @@ echo TestEnv- Optional parameter - this will run a custom script to set custom t echo VSVersion- Optional parameter - VS2013 or VS2015 ^(default: VS2015^) echo GenerateLayoutOnly - If specified will not run the tests and will only create the Runtime Dependency Layout echo RunCrossgenTests - Runs ReadytoRun tests +echo jitstress - Runs the tests with COMPlus_JitStress=n +echo jitstressregs - Runs the tests with COMPlus_JitStressRegs=n +echo jitminopts - Runs the tests with COMPlus_JITMinOpts=1 +echo jitforcerelocs - Runs the tests with COMPlus_ForceRelocs=1 echo CORE_ROOT The path to the runtime exit /b 1 diff --git a/tests/runtest.sh b/tests/runtest.sh index 07463af..fb18933 100755 --- a/tests/runtest.sh +++ b/tests/runtest.sh @@ -47,6 +47,11 @@ function print_usage { echo ' --test-env : Script to set environment variables for tests' echo ' --runcrossgentests : Runs the ready to run tests' echo '' + echo ' --jitstress= : Runs the tests with COMPlus_JitStress=n' + echo ' --jitstressregs= : Runs the tests with COMPlus_JitStressRegs=n' + echo ' --jitminopts : Runs the tests with COMPlus_JITMinOpts=1' + echo ' --jitforcerelocs : Runs the tests with COMPlus_ForceRelocs=1' + echo '' echo 'Runtime Code Coverage options:' echo ' --coreclr-coverage : Optional argument to get coreclr code coverage reports' echo ' --coreclr-objs= : Location of root of the object directory' @@ -751,6 +756,18 @@ do --crossgen) doCrossgen=1 ;; + --jitstress=*) + export COMPlus_JitStress=${i#*=} + ;; + --jitstressregs=*) + export COMPlus_JitStressRegs=${i#*=} + ;; + --jitminopts) + export COMPlus_JITMinOpts=1 + ;; + --jitforcerelocs) + export COMPlus_ForceRelocs=1 + ;; --testRootDir=*) testRootDir=${i#*=} ;;