summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyungwoo Lee <kyulee@microsoft.com>2016-04-06 20:33:39 -0700
committerKyungwoo Lee <kyulee@microsoft.com>2016-04-06 20:34:09 -0700
commitc8ff926bf94279e925fe25cea9412c322e767542 (patch)
treeecef9efc3f0671cd37863afdc1de21c7f286acc5
parent8d11e0bf15df0833a900334d60f16deb4db6cb1e (diff)
downloadcoreclr-c8ff926bf94279e925fe25cea9412c322e767542.tar.gz
coreclr-c8ff926bf94279e925fe25cea9412c322e767542.tar.bz2
coreclr-c8ff926bf94279e925fe25cea9412c322e767542.zip
ARM64: Launch test build and run in parallel
This change allows to buildtest.cmd for arm64 in separate. Currently we build coreclr and tests for arm64 and then run tests in sequence even though we run the pre-built test suite. This change pushes down the test built part into the lab post script that launches buildtests.cmd and arm64postbuild.cmd concurrently. The latter part is mostly waiting for the results from arm64 box. So we can almost hide the test build time which is around 30 min.
-rwxr-xr-xnetci.groovy12
-rw-r--r--tests/buildtest.cmd28
2 files changed, 36 insertions, 4 deletions
diff --git a/netci.groovy b/netci.groovy
index 8d8ead62a2..0b58b69b8c 100755
--- a/netci.groovy
+++ b/netci.groovy
@@ -1064,11 +1064,15 @@ combinedScenarios.each { scenario ->
// Up the timeout for arm64 jobs.
Utilities.setJobTimeout(newJob, 240);
- buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} /toolset_dir C:\\ats"
- // Debug runs take too long to run.
- if (lowerConfiguration != "debug") {
- buildCommands += "Z:\\arm64\\common\\scripts\\arm64PostBuild.cmd %WORKSPACE% ${architecture} ${lowerConfiguration}"
+ // Debug runs take too long to run. So build job only.
+ if (lowerConfiguration == "debug") {
+ buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} /toolset_dir C:\\ats"
+ }
+ else {
+ buildCommands += "set __TestIntermediateDir=int&&build.cmd skiptests ${lowerConfiguration} ${architecture} /toolset_dir C:\\ats"
+ // Test build and run are launched together.
+ buildCommands += "Z:\\arm64\\common\\scripts\\arm64PostLauncher.cmd %WORKSPACE% ${architecture} ${lowerConfiguration}"
Utilities.addXUnitDotNETResults(newJob, 'bin/tests/testResults.xml')
}
diff --git a/tests/buildtest.cmd b/tests/buildtest.cmd
index 99ab1a9f7a..c21c63cf33 100644
--- a/tests/buildtest.cmd
+++ b/tests/buildtest.cmd
@@ -68,6 +68,10 @@ if /i "%1" == "gcstresslevel" (set __GCStressLevel=%2&shift&shift&goto Arg
if /i "%1" == "verbose" (set __verbosity=detailed&shift&goto Arg_Loop)
+@REM It was initially /toolset_dir. Not sure why, since it doesn't match the other usage.
+if /i "%1" == "/toolset_dir" (set __ToolsetDir=%2&set __PassThroughArgs=%__PassThroughArgs% %2&shift&shift&goto Arg_Loop)
+if /i "%1" == "toolset_dir" (set __ToolsetDir=%2&set __PassThroughArgs=%__PassThroughArgs% %2&shift&shift&goto Arg_Loop)
+
if /i not "%1" == "msbuildargs" goto SkipMsbuildArgs
:: All the rest of the args will be collected and passed directly to msbuild.
:CollectMsbuildArgs
@@ -82,6 +86,10 @@ goto Usage
:ArgsDone
+rem arm64 builds currently use private toolset which has not been released yet
+REM TODO, remove once the toolset is open.
+if /i "%__BuildArch%" == "arm64" call :PrivateToolSet
+
if %__verbosity%==detailed (
echo Enabling verbose file logging
)
@@ -372,3 +380,23 @@ echo Visual Studio 2013 Express does not include the DIA SDK. ^
You need Visual Studio 2013+ (Community is free).
echo See: https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/developer-guide.md#prerequisites
exit /b 1
+
+
+:PrivateToolSet
+
+echo %__MsgPrefix% Setting Up the usage of __ToolsetDir:%__ToolsetDir%
+
+if /i "%__ToolsetDir%" == "" (
+ echo %__MsgPrefix%Error: A toolset directory is required for the Arm64 Windows build. Use the toolset_dir argument.
+ exit /b 1
+)
+
+set PATH=%__ToolsetDir%\cpp\bin;%PATH%
+set LIB=%__ToolsetDir%\cpp\libWin9CoreSystem;%__ToolsetDir%\OS\lib;%__ToolsetDir%\cpp\lib
+set INCLUDE=^
+%__ToolsetDir%\cpp\inc;^
+%__ToolsetDir%\OS\inc\Windows;^
+%__ToolsetDir%\OS\inc\Windows\crt;^
+%__ToolsetDir%\cpp\inc\vc;^
+%__ToolsetDir%\OS\inc\win8
+exit /b 0