summaryrefslogtreecommitdiff
path: root/netci.groovy
diff options
context:
space:
mode:
authorBruce Forstall <brucefo@microsoft.com>2017-12-16 00:47:01 (GMT)
committerBruce Forstall <brucefo@microsoft.com>2017-12-16 00:47:01 (GMT)
commitd3057a989b5e6fa238c03dc001fc675ff990726d (patch)
treed0f2e7b3640d263c3c62e0089c765c1f7e1fad3a /netci.groovy
parentb85c57a60d7dc8a180d2e6298f088d4f7726cbb0 (diff)
downloadcoreclr-d3057a989b5e6fa238c03dc001fc675ff990726d.zip
coreclr-d3057a989b5e6fa238c03dc001fc675ff990726d.tar.gz
coreclr-d3057a989b5e6fa238c03dc001fc675ff990726d.tar.bz2
For arm/armlb/arm64 R2R testing, add crossgen compilation of FX assemblies
Diffstat (limited to 'netci.groovy')
-rwxr-xr-xnetci.groovy31
1 files changed, 28 insertions, 3 deletions
diff --git a/netci.groovy b/netci.groovy
index 4fb9559..71ccef9 100755
--- a/netci.groovy
+++ b/netci.groovy
@@ -2550,8 +2550,8 @@ Constants.allScenarios.each { scenario ->
}
// If we are running a stress mode, we'll set those variables as well
- def stressValues = null
if (isJitStressScenario(scenario) || isR2RStressScenario(scenario)) {
+ def stressValues = null
if (isJitStressScenario(scenario)) {
stressValues = Constants.jitStressModeScenarios[scenario]
}
@@ -2565,9 +2565,34 @@ Constants.allScenarios.each { scenario ->
}
if (isR2RScenario(scenario)) {
- addEnvVariable("RunCrossGen", "true")
+ // Crossgen the framework assemblies.
+ buildCommands += """
+for %%F in (%CORE_ROOT%\\*.dll) do call :PrecompileAssembly "%CORE_ROOT%" "%%F" %%~nxF
+goto skip_PrecompileAssembly
+
+:PrecompileAssembly
+REM Skip mscorlib since it is already precompiled.
+if /I "%3" == "mscorlib.dll" exit /b 0
+if /I "%3" == "mscorlib.ni.dll" exit /b 0
+
+"%CORE_ROOT%\\crossgen.exe" /Platform_Assemblies_Paths "%CORE_ROOT%" "%2" >nul 2>nul
+if "%errorlevel%" == "-2146230517" (
+ echo %2 is not a managed assembly.
+) else if "%errorlevel%" == "-2146234344" (
+ echo %2 is not a managed assembly.
+) else if %errorlevel% neq 0 (
+ echo Unable to precompile %2
+) else (
+ echo Precompiled %2
+)
+exit /b 0
- // TODO: crossgen the framework assemblies
+:skip_PrecompileAssembly
+"""
+
+ // Set RunCrossGen variable to cause test wrappers to invoke their logic to run
+ // crossgen on tests before running them.
+ addEnvVariable("RunCrossGen", "true")
}
// Create the smarty command