summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Forstall <brucefo@microsoft.com>2017-12-18 09:46:55 -0800
committerGitHub <noreply@github.com>2017-12-18 09:46:55 -0800
commit3386dc846a65e630d2411ff19a0641fc66d44b95 (patch)
tree31ee4544dcd0660a4f08ebe7fb7645165fe9735d
parent78e6debe9430841e3690f943ddb91e46491cf4eb (diff)
parentd3057a989b5e6fa238c03dc001fc675ff990726d (diff)
downloadcoreclr-3386dc846a65e630d2411ff19a0641fc66d44b95.tar.gz
coreclr-3386dc846a65e630d2411ff19a0641fc66d44b95.tar.bz2
coreclr-3386dc846a65e630d2411ff19a0641fc66d44b95.zip
Merge pull request #15549 from BruceForstall/AddCrossgenFx
For arm/armlb/arm64 R2R testing, add crossgen compilation of FX assems
-rwxr-xr-xnetci.groovy31
1 files changed, 28 insertions, 3 deletions
diff --git a/netci.groovy b/netci.groovy
index 4fb9559044..71ccef98f2 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