Enable coreclr-runincontext in azure pipelines (dotnet/coreclr#25073)
authorJan Vorlicek <janvorli@microsoft.com>
Wed, 12 Jun 2019 17:15:22 +0000 (19:15 +0200)
committerGitHub <noreply@github.com>
Wed, 12 Jun 2019 17:15:22 +0000 (19:15 +0200)
* Enable coreclr-runincontext in azure pipelines

Commit migrated from https://github.com/dotnet/coreclr/commit/4c802793e1c526f98a2fe76979e50b11ad029808

eng/pipelines/coreclr/azure-pipelines.yml
eng/send-to-helix-step.yml
eng/test-job.yml
src/coreclr/tests/helixpublishwitharcade.proj

index 0762ed4..a837b73 100644 (file)
@@ -45,6 +45,7 @@ jobs:
 ##           \---------> Pri1 -----------------> plain runtests
 ##           |                \----------------> jitstress
 ##           |                \----------------> gcstress
+##           |                \----------------> runincontext
 ##           |                \----------------> maybe more (dynamically selected runtest modes)
 ##           |
 ##           \---------> Pri1 crossgen --------> plain runtests
@@ -155,6 +156,11 @@ jobs:
         platforms:
         - Linux_x64
         - Windows_NT_x64
+      ${{ if eq(variables['Build.DefinitionName'], 'coreclr-runincontext') }}:
+        platforms:
+        - Linux_x64
+        - Windows_NT_x64
+        - Windows_NT_x86
 
 #
 # Release builds
@@ -199,7 +205,7 @@ jobs:
 #
 # The test jobs that can be triggered by a PR, manually from ADO and that are scheduled
 # TODO: This long 'in' condition needs to be make data driven, perhaps by adding another layer of template.
-- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest', 'Manual', 'Schedule'), in(variables['Build.DefinitionName'], 'coreclr-ci', 'coreclr-outerloop', 'coreclr-outerloop-jitstress', 'coreclr-outerloop-jitstress-isas-arm', 'coreclr-outerloop-jitstress-isas-x86', 'coreclr-outerloop-jitstressregs-x86', 'coreclr-outerloop-jitstressregs', 'coreclr-outerloop-jitstress2-jitstressregs', 'coreclr-outerloop-gcstress0x3-gcstress0xc', 'coreclr-outerloop-gcstress-extra', 'coreclr-outerloop-r2r', 'coreclr-outerloop-r2r-extra')) }}:
+- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest', 'Manual', 'Schedule'), in(variables['Build.DefinitionName'], 'coreclr-ci', 'coreclr-outerloop', 'coreclr-outerloop-jitstress', 'coreclr-outerloop-jitstress-isas-arm', 'coreclr-outerloop-jitstress-isas-x86', 'coreclr-outerloop-jitstressregs-x86', 'coreclr-outerloop-jitstressregs', 'coreclr-outerloop-jitstress2-jitstressregs', 'coreclr-outerloop-gcstress0x3-gcstress0xc', 'coreclr-outerloop-gcstress-extra', 'coreclr-outerloop-r2r', 'coreclr-outerloop-r2r-extra', 'coreclr-runincontext')) }}:
   - template: eng/platform-matrix.yml
     parameters:
       jobTemplate: test-job.yml
@@ -237,6 +243,11 @@ jobs:
         - Linux_x64
         - Windows_NT_x64
         - Windows_NT_x86
+      ${{ if eq(variables['Build.DefinitionName'], 'coreclr-runincontext') }}:
+        platforms:
+        - Linux_x64
+        - Windows_NT_x64
+        - Windows_NT_x86
       jobParameters:
         ${{ if eq(variables['Build.DefinitionName'], 'coreclr-ci') }}:
           testGroup: innerloop
@@ -266,6 +277,10 @@ jobs:
           testGroup: r2r-extra
           readyToRun: true
           displayNameArgs: R2R
+        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-runincontext') }}:
+          testGroup: outerloop
+          runInUnloadableContext: true
+          displayNameArgs: RunInContext
 
 # ReadyToRun test jobs that are triggered by default from a PR.
 
index 29c677c..9f7816c 100644 (file)
@@ -16,6 +16,7 @@ parameters:
   timeoutPerTestInMinutes: ''
   runCrossGen: ''
   helixProjectArguments: ''
+  runInUnloadableContext: ''
 
 steps:
 - ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
index 522ef8b..239e52b 100644 (file)
@@ -10,6 +10,7 @@ parameters:
   # If true, run the corefx tests instead of the coreclr ones
   corefxTests: false
   displayNameArgs: ''
+  runInUnloadableContext: false
 
 ### Test job
 
@@ -205,6 +206,7 @@ jobs:
           timeoutPerTestInMinutes: 90
 
         runCrossGen: ${{ parameters.readyToRun }}
+        runInUnloadableContext: ${{ parameters.runInUnloadableContext }}
 
         ${{ if eq(variables['System.TeamProject'], 'internal') }}:
           # Access token variable for internal project from the
index c7994c3..a361d4b 100644 (file)
     </ItemGroup>
 
     <Copy SourceFiles="@(_XUnitConsoleRunnerFiles)" DestinationFolder="$(CoreRootDirectory)" />
-    <Copy SourceFiles="$(MSBuildThisFileDirectory)\scripts\runincontext.cmd" DestinationFolder="$(CoreRootDirectory)" Condition=" '$(TargetsWindows)' == 'true' and '$(RunInUnloadableContext)' == 'true'" />
-    <Copy SourceFiles="$(MSBuildThisFileDirectory)/scripts/runincontext.sh" DestinationFolder="$(CoreRootDirectory)" Condition=" '$(TargetsWindows)' != 'true' and '$(RunInUnloadableContext)' == 'true'" />
+    <Copy SourceFiles="$(MSBuildThisFileDirectory)\scripts\runincontext.cmd" DestinationFolder="$(CoreRootDirectory)" Condition=" '$(TargetsWindows)' == 'true' and '$(_RunInUnloadableContext)' == 'true'" />
+    <Copy SourceFiles="$(MSBuildThisFileDirectory)/scripts/runincontext.sh" DestinationFolder="$(CoreRootDirectory)" Condition=" '$(TargetsWindows)' != 'true' and '$(_RunInUnloadableContext)' == 'true'" />
   </Target>
 
   <Target Name="CreateTestEnvFiles">
     <HelixPreCommand Include="export CORE_ROOT=$HELIX_CORRELATION_PAYLOAD" />
     <HelixPreCommand Include="export RunCrossGen=1" Condition=" '$(RunCrossGen)' == 'true' " />
     <HelixPreCommand Include="export RunInUnloadableContext=1" Condition=" '$(RunInUnloadableContext)' == 'true' " />
-    <HelixPreCommand Include="export CLRCustomTestLauncher=$HELIX_WORKITEM_PAYLOAD/runincontext.sh" Condition=" '$(RunInUnloadableContext)' == 'true' " />
+    <HelixPreCommand Include="export CLRCustomTestLauncher=$HELIX_CORRELATION_PAYLOAD/runincontext.sh" Condition=" '$(RunInUnloadableContext)' == 'true' " />
     <HelixPreCommand Include="export __TestEnv=$HELIX_WORKITEM_PAYLOAD/$(TestEnvFileName)" />
     <HelixPreCommand Include="export __TestTimeout=$(TimeoutPerTestInMilliseconds)" Condition=" '$(TimeoutPerTestInMilliseconds)' != '' " />
     <HelixPreCommand Include="cat $__TestEnv" />