Build coreclr targetGeneric tests separately for CI (#34790)
authorSteve MacLean <Steve.MacLean@microsoft.com>
Thu, 23 Apr 2020 15:09:23 +0000 (11:09 -0400)
committerGitHub <noreply@github.com>
Thu, 23 Apr 2020 15:09:23 +0000 (11:09 -0400)
* Build CoreClr tests separately

* Build coreclr targetGeneric tests separately for CI
* Build coreclr targetGeneric tests separately in runtime.yml
* Distinguish generic build based on Libraries config
* Build OSX release libraries when CoreCLR changed
* Always use tar.gz compression for generic tests

* Mark all CoreCLR Interop/COM projects OsSpecific

23 files changed:
eng/pipelines/common/templates/runtimes/build-test-job.yml
eng/pipelines/common/templates/runtimes/run-test-job.yml
eng/pipelines/coreclr/ci.yml
eng/pipelines/coreclr/templates/xplat-pipeline-job.yml
eng/pipelines/runtime.yml
src/coreclr/tests/src/Interop/COM/Activator/Activator.csproj
src/coreclr/tests/src/Interop/COM/Activator/Servers/AssemblyA.csproj
src/coreclr/tests/src/Interop/COM/Activator/Servers/AssemblyB.csproj
src/coreclr/tests/src/Interop/COM/Activator/Servers/AssemblyC.csproj
src/coreclr/tests/src/Interop/COM/Activator/Servers/AssemblyContracts.csproj
src/coreclr/tests/src/Interop/COM/ComWrappers/API/ComWrappersTests.csproj
src/coreclr/tests/src/Interop/COM/ComWrappers/GlobalInstance/GlobalInstanceTests.csproj
src/coreclr/tests/src/Interop/COM/Dynamic/Dynamic.csproj
src/coreclr/tests/src/Interop/COM/NETClients/Aggregation/NETClientAggregation.csproj
src/coreclr/tests/src/Interop/COM/NETClients/ConsumeNETServer/ConsumeNETServer.csproj
src/coreclr/tests/src/Interop/COM/NETClients/Events/NETClientEvents.csproj
src/coreclr/tests/src/Interop/COM/NETClients/IDispatch/NETClientIDispatch.csproj
src/coreclr/tests/src/Interop/COM/NETClients/Licensing/NETClientLicense.csproj
src/coreclr/tests/src/Interop/COM/NETClients/Primitives/NETClientPrimitives.csproj
src/coreclr/tests/src/Interop/COM/NETClients/Primitives/NETClientPrimitivesInALC.csproj
src/coreclr/tests/src/Interop/COM/NETServer/NETServer.DefaultInterfaces.ilproj
src/coreclr/tests/src/Interop/COM/NETServer/NETServer.csproj
src/coreclr/tests/src/Interop/COM/Reflection/Reflection.csproj

index 00a072edc599a60cddd82f88719dd7f075bd1bf4..20f55bb62be797ddec982051b2f7b665ae7b004a 100644 (file)
@@ -6,6 +6,7 @@ parameters:
   container: ''
   testGroup: ''
   liveRuntimeBuildConfig: ''
+  testBuildPhase: ''
 
   # When set to a non-empty value (Debug / Release), it determines libraries
   # build configuration to use for the tests. Setting this property implies
@@ -50,13 +51,24 @@ jobs:
     ${{ if eq(variables['System.TeamProject'], 'internal') }}:
       continueOnError: true
 
+    # Compute job name from template parameters
     ${{ if eq(parameters.testGroup, 'innerloop') }}:
-      name: '${{ parameters.runtimeFlavor }}_common_test_build_p0_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}'      
-      displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri0 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}'
+      ${{ if ne(parameters.testBuildPhase, 'targetGeneric') }}:
+        name: '${{ parameters.runtimeFlavor }}_common_test_build_p0_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}'
+        displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri0 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}'
+    ${{ if ne(parameters.testGroup, 'innerloop') }}:
+      ${{ if ne(parameters.testBuildPhase, 'targetGeneric') }}:
+        name: '${{ parameters.runtimeFlavor }}_common_test_build_p1_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}'
+        displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri1 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}'
 
+    ${{ if eq(parameters.testGroup, 'innerloop') }}:
+      ${{ if eq(parameters.testBuildPhase, 'targetGeneric') }}:
+        name: '${{ parameters.runtimeFlavor }}_common_test_build_p0_AnyOS_AnyCPU_${{ parameters.buildConfig }}_Lib${{ parameters.liveLibrariesBuildConfig }}'
+        displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri0 Test Build AnyOS AnyCPU ${{ parameters.buildConfig }} Libraries:${{ parameters.liveLibrariesBuildConfig }}'
     ${{ if ne(parameters.testGroup, 'innerloop') }}:
-      name: '${{ parameters.runtimeFlavor }}_common_test_build_p1_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}'      
-      displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri1 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}'
+      ${{ if eq(parameters.testBuildPhase, 'targetGeneric') }}:
+        name: '${{ parameters.runtimeFlavor }}_common_test_build_p1_AnyOS_AnyCPU_${{ parameters.buildConfig }}_Lib${{ parameters.liveLibrariesBuildConfig }}'
+        displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri1 Test Build AnyOS AnyCPU ${{ parameters.buildConfig }} Libraries:${{ parameters.liveLibrariesBuildConfig }}'
 
     # Since the condition is being altered, merge the default with the additional conditions.
     # See https://docs.microsoft.com/azure/devops/pipelines/process/conditions
@@ -120,7 +132,7 @@ jobs:
 
 
     # Build managed test components
-    - script: $(coreClrRepoRootDir)build-test$(scriptExt) skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(crossArg) $(priorityArg) ci $(librariesOverrideArg)
+    - script: $(coreClrRepoRootDir)build-test$(scriptExt) ${{ parameters.testBuildPhase }} skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(crossArg) $(priorityArg) ci $(librariesOverrideArg)
       displayName: Build managed test components
 
 
@@ -129,24 +141,32 @@ jobs:
       parameters:
         rootFolder: $(managedTestArtifactRootFolderPath)
         includeRootFolder: false
-        archiveType: $(archiveType)
-        tarCompression: $(tarCompression)
-        archiveExtension: $(archiveExtension)
-        artifactName: $(managedTestArtifactName)
-        displayName: 'managed test components'
+        ${{ if ne(parameters.testBuildPhase, 'targetGeneric') }}:
+          archiveExtension: $(archiveExtension)
+          archiveType: $(archiveType)
+          tarCompression: $(tarCompression)
+          artifactName: $(managedTestArtifactName)
+          displayName: 'managed test components'
+        ${{ if eq(parameters.testBuildPhase, 'targetGeneric') }}:
+          archiveExtension: '.tar.gz'
+          archiveType: tar
+          tarCompression: gz
+          artifactName: $(managedGenericTestArtifactName)
+          displayName: 'managed test components (generic)'
 
 
     # Publish .packages/microsoft.net.sdk.il needed for traversing
     # test projects during the copynativeonly command in run test job.
-    - template: /eng/pipelines/common/upload-artifact-step.yml
-      parameters:
-        rootFolder: $(microsoftNetSdkIlFolderPath)
-        includeRootFolder: false
-        archiveType: $(archiveType)
-        tarCompression: $(tarCompression)
-        archiveExtension: $(archiveExtension)
-        artifactName: $(microsoftNetSdkIlArtifactName)
-        displayName: 'Microsoft.NET.Sdk.IL package'
+    - ${{ if ne(parameters.testBuildPhase, 'targetGeneric') }}:
+      - template: /eng/pipelines/common/upload-artifact-step.yml
+        parameters:
+          rootFolder: $(microsoftNetSdkIlFolderPath)
+          includeRootFolder: false
+          archiveType: $(archiveType)
+          tarCompression: $(tarCompression)
+          archiveExtension: $(archiveExtension)
+          artifactName: $(microsoftNetSdkIlArtifactName)
+          displayName: 'Microsoft.NET.Sdk.IL package'
 
 
     # Publish Logs
@@ -154,6 +174,9 @@ jobs:
       displayName: Publish Logs
       inputs:
         targetPath: $(Build.SourcesDirectory)/artifacts/log
-        artifactName: '${{ parameters.runtimeFlavor }}_Common_Runtime_TestBuildLogs_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)_${{ parameters.testGroup }}'
+        ${{ if ne(parameters.testBuildPhase, 'targetGeneric') }}:
+          artifactName: '${{ parameters.runtimeFlavor }}_Common_Runtime_TestBuildLogs_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)_${{ parameters.testGroup }}'
+        ${{ if eq(parameters.testBuildPhase, 'targetGeneric') }}:
+          artifactName: '${{ parameters.runtimeFlavor }}_Common_Runtime_TestBuildLogs_AnyOS_AnyCPU_$(buildConfig)_Lib${{ parameters.liveLibrariesBuildConfig }}_${{ parameters.testGroup }}'
       continueOnError: true
       condition: always()
index ba72a9aababf0c6415b3a7ab95566fd748fcb061..3da5b9c1c24c7bf6d3adb094fa8d08a0c54ba386 100644 (file)
@@ -22,6 +22,7 @@ parameters:
   variables: {}
   pool: ''
   runtimeFlavorDisplayName: 'CoreCLR'
+  testBuildPhased : false
 
 ### Test run job
 
@@ -57,6 +58,11 @@ jobs:
         - '${{ parameters.runtimeFlavor }}_common_test_build_p0_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}'
       - ${{ if ne(parameters.testGroup, 'innerloop') }}:
         - '${{ parameters.runtimeFlavor }}_common_test_build_p1_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}'
+      - ${{ if eq(parameters.testBuildPhased, true) }}:
+        - ${{ if eq(parameters.testGroup, 'innerloop') }}:
+          - '${{ parameters.runtimeFlavor }}_common_test_build_p0_AnyOS_AnyCPU_${{parameters.buildConfig }}_Lib${{ parameters.liveLibrariesBuildConfig }}'
+        - ${{ if ne(parameters.testGroup, 'innerloop') }}:
+          - '${{ parameters.runtimeFlavor }}_common_test_build_p1_AnyOS_AnyCPU_${{parameters.buildConfig }}_Lib${{ parameters.liveLibrariesBuildConfig }}'
     - ${{ if ne(parameters.stagedBuild, true) }}:
       - ${{ format('{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeFlavor, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
       - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
@@ -189,6 +195,13 @@ jobs:
 
     # Download and unzip managed test artifacts
     - ${{ if ne(parameters.corefxTests, true) }}:
+      - ${{ if eq(parameters.testBuildPhased, true) }}:
+        - template: /eng/pipelines/common/download-artifact-step.yml
+          parameters:
+            unpackFolder: '$(managedTestArtifactRootFolderPath)'
+            artifactFileName: '$(managedGenericTestArtifactName).tar.gz'
+            artifactName: '$(managedGenericTestArtifactName)'
+            displayName: 'generic managed test artifacts'
       - template: /eng/pipelines/common/download-artifact-step.yml
         parameters:
           unpackFolder: '$(managedTestArtifactRootFolderPath)'
index 4982ffd0018bd11e3fa36d7516de44c2cf3ba1d2..dd12c74053eb3764e82d713794fe1e3e85a5ede5 100644 (file)
@@ -92,6 +92,16 @@ jobs:
 #
 # Checked test builds
 #
+- template: /eng/pipelines/common/platform-matrix.yml
+  parameters:
+    jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+    buildConfig: checked
+    platforms:
+    - OSX_x64
+    testGroup: outerloop
+    jobParameters:
+      liveLibrariesBuildConfig: Release
+      testBuildPhase: targetGeneric
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
     jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
@@ -107,6 +117,7 @@ jobs:
     testGroup: outerloop
     jobParameters:
       liveLibrariesBuildConfig: Release
+      testBuildPhase: targetSpecific
 
 #
 # Checked JIT test runs
@@ -121,6 +132,7 @@ jobs:
     jobParameters:
       testGroup: outerloop
       liveLibrariesBuildConfig: Release
+      testBuildPhased: true
 
 #
 # Checked R2R test runs
@@ -146,6 +158,7 @@ jobs:
       readyToRun: true
       displayNameArgs: R2R
       liveLibrariesBuildConfig: Release
+      testBuildPhased: true
 
 #
 # Crossgen-comparison jobs
index c9f71a959fa61f3dac59822f6a97aa8217bd8d12..3a693c2ca5e093fcb3a3c055898fb44b900a0a3b 100644 (file)
@@ -78,6 +78,9 @@ jobs:
     - name: corelibProductArtifactName
       value: 'CoreLib_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
 
+    - name: managedGenericTestArtifactName
+      value: 'CoreCLRManagedTestArtifacts_AnyOS_AnyCPU_$(buildConfig)_Lib${{ parameters.liveLibrariesBuildConfig }}'
+
     - name: managedTestArtifactName
       value: 'CoreCLRManagedTestArtifacts_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_$(archType)_$(buildConfig)'
 
index faa41858eb9626f2f0016356e7292e8254344dd6..dd800f4c1220fddeb2c2a1c39f26aff5ce59251a 100644 (file)
@@ -385,6 +385,25 @@ jobs:
     jobParameters:
       liveRuntimeBuildConfig: release
 
+#
+# Build libraries using live CoreLib
+# These are part of the test coreclr generic test build.
+#
+- template: /eng/pipelines/common/platform-matrix.yml
+  parameters:
+    jobTemplate: /eng/pipelines/libraries/build-job.yml
+    buildConfig: Release
+    platforms:
+    - OSX_x64
+    jobParameters:
+      liveRuntimeBuildConfig: release
+      condition: >-
+        and(
+          ne(variables['debugOnPrReleaseOnRolling'], 'Release'),
+          or(
+            eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
+            eq(variables['isFullMatrix'], true)))
+
 #
 # Build libraries using Mono CoreLib only
 #
@@ -576,6 +595,20 @@ jobs:
 # CoreCLR Test builds using live libraries release build
 # Only when CoreCLR is changed
 #
+- template: /eng/pipelines/common/platform-matrix.yml
+  parameters:
+    jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+    buildConfig: checked
+    platforms:
+    - OSX_x64
+    jobParameters:
+      testGroup: innerloop
+      liveLibrariesBuildConfig: Release
+      testBuildPhase: targetGeneric
+      condition: >-
+        or(
+          eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
+          eq(variables['isFullMatrix'], true))
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
     jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
@@ -588,6 +621,7 @@ jobs:
     jobParameters:
       testGroup: innerloop
       liveLibrariesBuildConfig: Release
+      testBuildPhase: targetSpecific
       condition: >-
         or(
           eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
@@ -597,6 +631,21 @@ jobs:
 # CoreCLR Test builds using live libraries debug build
 # Only when CoreCLR is changed
 #
+- template: /eng/pipelines/common/platform-matrix.yml
+  parameters:
+    jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+    buildConfig: checked
+    platforms:
+    - OSX_x64
+    jobParameters:
+      testGroup: innerloop
+      liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+      testBuildPhase: targetGeneric
+      condition: >-
+        and(ne(variables['debugOnPrReleaseOnRolling'], 'Release'),
+          or(
+            eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
+            eq(variables['isFullMatrix'], true)))
 - template: /eng/pipelines/common/platform-matrix.yml
   parameters:
     jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
@@ -609,6 +658,7 @@ jobs:
     jobParameters:
       testGroup: innerloop
       liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+      testBuildPhase: targetSpecific
       condition: >-
         or(
           eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
@@ -632,6 +682,7 @@ jobs:
     jobParameters:
       testGroup: innerloop
       liveLibrariesBuildConfig: Release
+      testBuildPhased: true
       condition: >-
         or(
           eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
@@ -651,6 +702,7 @@ jobs:
     jobParameters:
       testGroup: innerloop
       liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+      testBuildPhased: true
       condition: >-
         or(
           eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
index a2c1c59df844854b758bf7dbfacb4a39b1832993..f68f1779bb2ffcaaaad5f02c9289b87358950990 100644 (file)
     </ItemGroup>
     <Move SourceFiles="@(ServerAssembly)" DestinationFolder="$(ServerAssemblyDest)" />
   </Target>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 0450b412c21ade7ab7c205995c1f1defe83174e4..25cd7bc81ba73e661b94cb3dc96bc294026731d1 100644 (file)
     <ProjectReference Include="AssemblyC.csproj" />
     <ProjectReference Include="AssemblyContracts.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index d8ebd98a1fa21baa831f2d38980541fb22f781ba..7736ea67c02875078f7f5190645456389a3c1b05 100644 (file)
     <ProjectReference Include="AssemblyC.csproj" />
     <ProjectReference Include="AssemblyContracts.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 1a76fc4f9a10bdbbd1e649fd1ed5e4b998c97d60..fb60b2712e408e7a1689733254a831ce2e72a542 100644 (file)
@@ -6,4 +6,10 @@
   <ItemGroup>
     <Compile Include="AssemblyC.cs" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index d3f3b4ffcbe0590c375a6b21ab6c6580364d24d7..67b20eb52e4f45b6fc6b2eb83119ae6ac0ebbf5d 100644 (file)
@@ -6,4 +6,10 @@
   <ItemGroup>
     <Compile Include="AssemblyContracts.cs" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 83acfa1f6fd5eb32f73e7e77e4097eeef561dd17..37f14d79cb7e12eaf61b82b82ffd7a1fec8f4822 100644 (file)
   <ItemGroup>
     <ProjectReference Include="../MockReferenceTrackerRuntime/CMakeLists.txt" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 1e5e14f330e2ec8a05f91898757cac9e9a32d94f..205811d912c5bd15a74a3d91174de39bcf305964 100644 (file)
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index f44514cd9035a74091dc8f9e3c27d0a33419d947..324266b64650bc6fb0580f53727b5b9601229b22 100644 (file)
     <ProjectReference Include="Server/CMakeLists.txt" />
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 5c358c407ea46f6fe00948291fdc36e3a502fbcb..e29fe4be9da1457f973d9be9633d07025b2570bf 100644 (file)
     <ProjectReference Include="../../NativeServer/CMakeLists.txt" />
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 5c1447eb6cfbbea0a74eb4a08eb4abd03d6d578a..89f42a884b47fec8c02941bf6ab7b370831dda07 100644 (file)
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index b10cf7019a8e3a9f8d5664fcd6ccae6225aec47d..bbd6884dc4347bcb5b96d2248d6126fad832b9d2 100644 (file)
     <ProjectReference Include="../../NativeServer/CMakeLists.txt" />
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 5c358c407ea46f6fe00948291fdc36e3a502fbcb..e29fe4be9da1457f973d9be9633d07025b2570bf 100644 (file)
     <ProjectReference Include="../../NativeServer/CMakeLists.txt" />
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 5c358c407ea46f6fe00948291fdc36e3a502fbcb..e29fe4be9da1457f973d9be9633d07025b2570bf 100644 (file)
     <ProjectReference Include="../../NativeServer/CMakeLists.txt" />
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index f876bed737a106a293b71c681a758bb90348e2eb..8752ff035926b873fd5c13d3d4b2e69a61535b77 100644 (file)
     <ProjectReference Include="../../NativeServer/CMakeLists.txt" />
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 5279d5f3b16a9a57d421763eede877a8e649d277..56b561365c3912991ffb1c7fd795225b2afd4c95 100644 (file)
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
     <ProjectReference Include="NetClientPrimitives.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index f1af2b9c4dedad7cd1a42653292a62595422ec59..a60092bdf8f318be7c28a37c2a120d7951543b2b 100644 (file)
@@ -5,4 +5,10 @@
   <ItemGroup>
     <Compile Include="NETServer.DefaultInterfaces.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index ebaacfc5bc2a075e19b26e99c8ae723b86173535..72b1b2f8ea1315badd86a65514d1d4d748234e71 100644 (file)
@@ -8,4 +8,10 @@
     <Compile Include="../ServerContracts/Server.Contracts.cs" />
     <Compile Include="../ServerContracts/ServerGuids.cs" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 157be61d17bfac90ca1405e3983af25e1b2664a1..186dcf064327c2d9decc60ccc2a4296aacab1bb2 100644 (file)
       <Name>NETServer</Name>
     </ProjectReference>
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>