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 00a072e..20f55bb 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 ba72a9a..3da5b9c 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 4982ffd..dd12c74 100644 (file)
@@ -97,6 +97,16 @@ jobs:
     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
+    buildConfig: checked
+    platforms:
     - Linux_arm
     - Linux_arm64
     - OSX_x64
@@ -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 c9f71a9..3a693c2 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 faa4185..dd800f4 100644 (file)
@@ -386,6 +386,25 @@ jobs:
       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
 #
 - template: /eng/pipelines/common/platform-matrix.yml
@@ -581,6 +600,20 @@ jobs:
     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
+    buildConfig: checked
+    platforms:
     - Linux_arm 
     - Windows_NT_x86
     - Windows_NT_arm
@@ -588,6 +621,7 @@ jobs:
     jobParameters:
       testGroup: innerloop
       liveLibrariesBuildConfig: Release
+      testBuildPhase: targetSpecific
       condition: >-
         or(
           eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
@@ -603,12 +637,28 @@ jobs:
     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
+    buildConfig: checked
+    platforms:
+    - OSX_x64
     - Linux_x64
     - Linux_arm64
     - Windows_NT_x64
     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 a2c1c59..f68f177 100644 (file)
     </ItemGroup>
     <Move SourceFiles="@(ServerAssembly)" DestinationFolder="$(ServerAssemblyDest)" />
   </Target>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 0450b41..25cd7bc 100644 (file)
     <ProjectReference Include="AssemblyC.csproj" />
     <ProjectReference Include="AssemblyContracts.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index d8ebd98..7736ea6 100644 (file)
     <ProjectReference Include="AssemblyC.csproj" />
     <ProjectReference Include="AssemblyContracts.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 1a76fc4..fb60b27 100644 (file)
@@ -6,4 +6,10 @@
   <ItemGroup>
     <Compile Include="AssemblyC.cs" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index d3f3b4f..67b20eb 100644 (file)
@@ -6,4 +6,10 @@
   <ItemGroup>
     <Compile Include="AssemblyContracts.cs" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 83acfa1..37f14d7 100644 (file)
   <ItemGroup>
     <ProjectReference Include="../MockReferenceTrackerRuntime/CMakeLists.txt" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index 1e5e14f..205811d 100644 (file)
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index f44514c..324266b 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 5c358c4..e29fe4b 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 5c1447e..89f42a8 100644 (file)
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>
index b10cf70..bbd6884 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 5c358c4..e29fe4b 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 5c358c4..e29fe4b 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 f876bed..8752ff0 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 5279d5f..56b5613 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 f1af2b9..a60092b 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 ebaacfc..72b1b2f 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 157be61..186dcf0 100644 (file)
       <Name>NETServer</Name>
     </ProjectReference>
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
 </Project>