Skip to content

Commit

Permalink
Re-enable Standalone GC job, running daily (dotnet#15015)
Browse files Browse the repository at this point in the history
* Re-enable Standalone GC job, running daily

* osGroup is already defined

* Fix failed assertion
  • Loading branch information
swgillespie authored Nov 15, 2017
1 parent 431a675 commit bd3fc01
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 19 deletions.
43 changes: 24 additions & 19 deletions netci.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -608,7 +608,7 @@ def static addNonPRTriggers(def job, def branch, def isPR, def architecture, def
assert (configuration == 'Release' || configuration == 'Checked')
// TODO: Add once external email sending is available again
// addEmailPublisher(job, '[email protected]')
Utilities.addPeriodicTrigger(job, '@weekly')
Utilities.addPeriodicTrigger(job, '@daily')
break
case 'gc_reliability_framework':
assert (os == 'Ubuntu' || os == 'Windows_NT' || os == 'OSX10.12')
Expand Down Expand Up @@ -1584,12 +1584,9 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR
Constants.r2rJitStressScenarios.containsKey(scenario)) {
buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} ${buildOpts}"
}
else if (isLongGc(scenario)) {
else if (isLongGc(scenario) || scenario == 'standalone_gc') {
buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} ${buildOpts}"
}
else if (scenario == 'standalone_gc') {
buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} ${buildOpts} buildstandalonegc"
}
else if (scenario == 'formatting') {
buildCommands += "python -u tests\\scripts\\format.py -c %WORKSPACE% -o Windows_NT -a ${arch}"
Utilities.addArchival(newJob, "format.patch", "", true, false)
Expand All @@ -1614,6 +1611,7 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR
def illinkArguments = ''
def testEnvStr = ''
def runtestArguments = ''
def standaloneGcStr = ''

if (scenario == 'r2r' ||
scenario == 'r2r_gcstress15' ||
Expand Down Expand Up @@ -1672,6 +1670,9 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR
else if (isLongGc(scenario)) {
gcTestArguments = "${scenario} sequential"
}
else if (scenario == 'standalone_gc') {
standaloneGcStr = "gcname clrgc.dll"
}
else if (scenario == 'illink')
{
illinkArguments = "link %WORKSPACE%\\linker\\linker\\bin\\netcore_Release\\netcoreapp2.0\\win10-${arch}\\publish\\illink.exe"
Expand Down Expand Up @@ -1710,7 +1711,7 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR
testEnvStr = "TestEnv ${envScriptPath}"
}

runtestArguments = "${lowerConfiguration} ${arch} ${gcstressStr} ${crossgenStr} ${runcrossgentestsStr} ${runjitstressStr} ${runjitstressregsStr} ${runjitmioptsStr} ${runjitforcerelocsStr} ${runjitdisasmStr} ${runilasmroundtripStr} ${gcTestArguments} ${illinkArguments} collectdumps ${testEnvStr}"
runtestArguments = "${lowerConfiguration} ${arch} ${gcstressStr} ${crossgenStr} ${runcrossgentestsStr} ${runjitstressStr} ${runjitstressregsStr} ${runjitmioptsStr} ${runjitforcerelocsStr} ${runjitdisasmStr} ${runilasmroundtripStr} ${gcTestArguments} ${illinkArguments} collectdumps ${testEnvStr} ${standaloneGcStr}"

// If we are running a stress mode, we should write out the set of key
// value env pairs to a file at this point and then we'll pass that to runtest.cmd
Expand Down Expand Up @@ -1872,17 +1873,12 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR
buildCommands += "./tests/scripts/build_illink.sh --clone --arch=${architecture}"
}

def standaloneGc = ''
if (scenario == 'standalone_gc') {
standaloneGc = 'buildstandalonegc'
}

if (!enableCorefxTesting) {
// We run pal tests on all OS but generate mscorlib (and thus, nuget packages)
// only on supported OS platforms.
def bootstrapRid = Utilities.getBoostrapPublishRid(os)
def bootstrapRidEnv = bootstrapRid != null ? "__PUBLISH_RID=${bootstrapRid} " : ''
buildCommands += "${bootstrapRidEnv}./build.sh verbose ${lowerConfiguration} ${architecture} ${standaloneGc}"
buildCommands += "${bootstrapRidEnv}./build.sh verbose ${lowerConfiguration} ${architecture}"
buildCommands += "src/pal/tests/palsuite/runpaltests.sh \${WORKSPACE}/bin/obj/${osGroup}.${architecture}.${configuration} \${WORKSPACE}/bin/paltestout"

// Set time out
Expand Down Expand Up @@ -1919,13 +1915,8 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR
}
break
case 'arm64':
def standaloneGc = ''
if (scenario == 'standalone_gc') {
standaloneGc = 'buildstandalonegc'
}

if (!enableCorefxTesting) {
buildCommands += "ROOTFS_DIR=/opt/arm64-xenial-rootfs ./build.sh verbose ${lowerConfiguration} ${architecture} cross clang3.8 ${standaloneGc}"
buildCommands += "ROOTFS_DIR=/opt/arm64-xenial-rootfs ./build.sh verbose ${lowerConfiguration} ${architecture} cross clang3.8"

// HACK -- Arm64 does not have corefx jobs yet.
buildCommands += "git clone https://github.com/dotnet/corefx fx"
Expand Down Expand Up @@ -2554,6 +2545,7 @@ combinedScenarios.each { scenario ->
def gcstressStr = ''
def illinkStr = ''
def layoutOnlyStr =''
def standaloneGcStr = ''

if (scenario == 'r2r' || Constants.r2rJitStressScenarios.containsKey(scenario) ) {
crossgenStr = '--crossgen'
Expand Down Expand Up @@ -2631,6 +2623,19 @@ combinedScenarios.each { scenario ->
layoutOnlyStr = '--build-overlay-only'
}

if (scenario == 'standalone_gc') {
if (osGroup == 'OSX') {
standaloneGcStr = '--gcname=libclrgc.dylib'
}
else if (osGroup == 'Linux') {
standaloneGcStr = '--gcname=libclrgc.so'
}
else {
println("Unexpected OS group: ${osGroup} for os ${os}")
assert false
}
}

def windowsArmJob = (os == "Windows_NT" && architecture in validWindowsNTCrossArches)

def folder = getJobFolder(scenario)
Expand Down Expand Up @@ -2732,7 +2737,7 @@ combinedScenarios.each { scenario ->
--limitedDumpGeneration \\
${testEnvOpt} ${serverGCString} ${gcstressStr} ${crossgenStr} ${runcrossgentestsStr} ${runjitstressStr} \\
${runjitstressregsStr} ${runjitmioptsStr} ${runjitforcerelocsStr} ${runjitdisasmStr} ${runilasmroundtripStr} \\
${illinkStr} ${sequentialString} ${playlistString} ${layoutOnlyStr}""")
${illinkStr} ${sequentialString} ${playlistString} ${layoutOnlyStr} ${standaloneGcStr}""")

if (isGcReliabilityFramework(scenario)) {
// runtest.sh doesn't actually execute the reliability framework - do it here.
Expand Down
2 changes: 2 additions & 0 deletions tests/runtest.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ if /i "%1" == "PerfTests" (set __PerfTests=true&shift&goto Arg_Loop)
if /i "%1" == "runcrossgentests" (set RunCrossGen=true&shift&goto Arg_Loop)
if /i "%1" == "link" (set DoLink=true&set ILLINK=%2&shift&shift&goto Arg_Loop)
if /i "%1" == "tieredcompilation" (set COMPLUS_EXPERIMENTAL_TieredCompilation=1&shift&goto Arg_Loop)
if /i "%1" == "gcname" (set COMPlus_GCName=%2&shift&shift&goto Arg_Loop)

REM change it to COMPlus_GCStress when we stop using xunit harness
if /i "%1" == "gcstresslevel" (set __GCSTRESSLEVEL=%2&set __TestTimeout=1800000&shift&shift&goto Arg_Loop)
Expand Down Expand Up @@ -482,6 +483,7 @@ echo 4: GC on every allowable JITed instruction
echo 8: GC on every allowable NGEN instruction
echo 16: GC only on a unique stack trace
echo tieredcompilation - Run the tests with COMPlus_EXPERIMENTAL_TieredCompilation=1
echo gcname ^<n^> - Runs the tests with COMPlus_GCName=n
echo msbuildargs ^<args...^> - Pass all subsequent args directly to msbuild invocations.
echo ^<CORE_ROOT^> - Path to the runtime to test (if specified).
echo.
Expand Down
4 changes: 4 additions & 0 deletions tests/runtest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ function print_usage {
echo ' --jitforcerelocs : Runs the tests with COMPlus_ForceRelocs=1'
echo ' --jitdisasm : Runs jit-dasm on the tests'
echo ' --gcstresslevel=<n> : Runs the tests with COMPlus_GCStress=n'
echo ' --gcname=<n> : Runs the tests with COMPlus_GCName=n'
echo ' --ilasmroundtrip : Runs ilasm round trip on the tests'
echo ' 0: None 1: GC on all allocs and '"'easy'"' places'
echo ' 2: GC on transitions to preemptive GC 4: GC on every allowable JITed instr'
Expand Down Expand Up @@ -1143,6 +1144,9 @@ do
--gcstresslevel=*)
export COMPlus_GCStress=${i#*=}
;;
--gcname=*)
export COMPlus_GCName=${i#*=}
;;
--show-time)
showTime=ON
;;
Expand Down

0 comments on commit bd3fc01

Please sign in to comment.