summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Forstall <brucefo@microsoft.com>2017-12-20 14:04:25 -0800
committerGitHub <noreply@github.com>2017-12-20 14:04:25 -0800
commit698264b3683e28aa25dc4061e136fc9d58af2beb (patch)
tree57deed89ec7f68e796b140a89bf6f65476c7f24c
parent804c505301692d96ec590de013996a17c7eba422 (diff)
parent7a87eb21c63e8894d4c885594882b00d5da1c543 (diff)
downloadcoreclr-698264b3683e28aa25dc4061e136fc9d58af2beb.tar.gz
coreclr-698264b3683e28aa25dc4061e136fc9d58af2beb.tar.bz2
coreclr-698264b3683e28aa25dc4061e136fc9d58af2beb.zip
Merge pull request #15594 from BruceForstall/TestTimeout
Fix per-test timeout
-rwxr-xr-xnetci.groovy16
-rw-r--r--tests/runtest.cmd5
2 files changed, 14 insertions, 7 deletions
diff --git a/netci.groovy b/netci.groovy
index dc4251a59c..10661e5cf1 100755
--- a/netci.groovy
+++ b/netci.groovy
@@ -477,12 +477,6 @@ def static getR2RDisplayName(def scenario) {
def static envScriptCreate(def os, def stepScriptLocation) {
def stepScript = ''
if (os == 'Windows_NT') {
- // Timeout in ms, default is 10 minutes. For stress modes up this to 30 minutes.
- // BUG?: it seems this is ignored, as this script will be run in an environment where
- // environment variables will be discarded before this is used.
- def timeout = 1800000
- stepScript += "set __TestTimeout=${timeout}\r\n"
-
stepScript += "echo Creating TestEnv script\r\n"
stepScript += "if exist ${stepScriptLocation} del ${stepScriptLocation}\r\n"
@@ -1541,6 +1535,16 @@ def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR
testOpts += " link %WORKSPACE%\\linker\\linker\\bin\\netcore_Release\\netcoreapp2.0\\win10-${arch}\\publish\\illink.exe"
}
+ // Default per-test timeout is 10 minutes. For stress modes and Debug scenarios, increase this
+ // to 30 minutes (30 * 60 * 1000 = 180000). The "timeout" argument to runtest.cmd sets this, by
+ // taking a timeout value in milliseconds. (Note that it sets the __TestTimeout environment variable,
+ // which is read by the xunit harness.)
+ if (isJitStressScenario(scenario) || isR2RStressScenario(scenario) || (lowerConfiguration == 'debug'))
+ {
+ def timeout = 1800000
+ testOpts += " timeout ${timeout}"
+ }
+
// 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
diff --git a/tests/runtest.cmd b/tests/runtest.cmd
index 6774a65070..d98cdbbf8e 100644
--- a/tests/runtest.cmd
+++ b/tests/runtest.cmd
@@ -110,6 +110,7 @@ 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)
+if /i "%1" == "timeout" (set __TestTimeout=%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)
@@ -500,7 +501,9 @@ 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 gcname ^<name^> - Runs the tests with COMPlus_GCName=name
+echo timeout ^<n^> - Sets the per-test timeout in milliseconds ^(default is 10 minutes = 10 * 60 * 1000 = 600000^).
+echo Note: some options override this ^(gcstresslevel, longgc, gcsimulator^).
echo msbuildargs ^<args...^> - Pass all subsequent args directly to msbuild invocations.
echo ^<CORE_ROOT^> - Path to the runtime to test (if specified).
echo.