Test build target agnostic separately from target specific tests (#34658)
authorSteve MacLean <Steve.MacLean@microsoft.com>
Thu, 9 Apr 2020 00:09:47 +0000 (20:09 -0400)
committerGitHub <noreply@github.com>
Thu, 9 Apr 2020 00:09:47 +0000 (20:09 -0400)
* Add redundant metadata to simplify filtering

Instead of generic filtering add a manual property

* Filter test build using CLRTestNeedTargetToBuild

* Add targetGeneric and targetSpecific option to build-test.sh/cmd

* Add missing TraitTags

* Update CheckTestBuild expected counts

* Rename per feedback

37 files changed:
src/coreclr/build-test.cmd
src/coreclr/build-test.sh
src/coreclr/tests/Directory.Build.props
src/coreclr/tests/src/Common/test_dependencies/test_dependencies.csproj
src/coreclr/tests/src/Directory.Build.targets
src/coreclr/tests/src/Interop/ArrayMarshalling/ByValArray/MarshalArrayByValTest.csproj
src/coreclr/tests/src/Interop/COM/NativeClients/DefaultInterfaces.csproj
src/coreclr/tests/src/Interop/COM/NativeClients/Dispatch.csproj
src/coreclr/tests/src/Interop/COM/NativeClients/Licensing.csproj
src/coreclr/tests/src/Interop/COM/NativeClients/Primitives.csproj
src/coreclr/tests/src/Interop/DllImportAttribute/DllImportPath/DllImportPathTest.csproj
src/coreclr/tests/src/Interop/DllImportAttribute/ExactSpelling/ExactSpellingTest.csproj
src/coreclr/tests/src/Interop/ICustomMarshaler/Primitives/ICustomMarshaler.csproj
src/coreclr/tests/src/Interop/NativeLibrary/Callback/CallbackStressTest.csproj
src/coreclr/tests/src/JIT/Directed/PREFIX/unaligned/1/arglist.ilproj
src/coreclr/tests/src/JIT/Directed/PREFIX/unaligned/2/arglist.ilproj
src/coreclr/tests/src/JIT/Directed/PREFIX/unaligned/4/arglist.ilproj
src/coreclr/tests/src/JIT/Directed/PREFIX/volatile/1/arglist.ilproj
src/coreclr/tests/src/JIT/Directed/StructABI/StructABI.csproj
src/coreclr/tests/src/JIT/Directed/arglist/vararg.csproj
src/coreclr/tests/src/JIT/Methodical/ELEMENT_TYPE_IU/_il_dbgi_array_merge.ilproj
src/coreclr/tests/src/JIT/Methodical/ELEMENT_TYPE_IU/_il_dbgsizeof.ilproj
src/coreclr/tests/src/JIT/Methodical/ELEMENT_TYPE_IU/_il_dbgu_array_merge.ilproj
src/coreclr/tests/src/JIT/Methodical/ELEMENT_TYPE_IU/_il_reli_array_merge.ilproj
src/coreclr/tests/src/JIT/Methodical/ELEMENT_TYPE_IU/_il_relsizeof.ilproj
src/coreclr/tests/src/JIT/Methodical/ELEMENT_TYPE_IU/_il_relu_array_merge.ilproj
src/coreclr/tests/src/JIT/Methodical/xxobj/sizeof/_il_dbgsizeof.ilproj
src/coreclr/tests/src/JIT/Methodical/xxobj/sizeof/_il_dbgsizeof32.ilproj
src/coreclr/tests/src/JIT/Methodical/xxobj/sizeof/_il_relsizeof.ilproj
src/coreclr/tests/src/JIT/Methodical/xxobj/sizeof/_il_relsizeof32.ilproj
src/coreclr/tests/src/JIT/Methodical/xxobj/sizeof/_il_relsizeof64.ilproj
src/coreclr/tests/src/JIT/Regression/JitBlue/DevDiv_278523/DevDiv_278523.ilproj
src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_23199/GitHub_23199.csproj
src/coreclr/tests/src/JIT/SIMD/VectorConvert_r.csproj
src/coreclr/tests/src/JIT/SIMD/VectorConvert_ro.csproj
src/coreclr/tests/src/baseservices/exceptions/WindowsEventLog/WindowsEventLog.csproj
src/coreclr/tests/src/runtest.proj

index 2dbb3b1..6ae3904 100644 (file)
@@ -73,6 +73,8 @@ set __GenerateLayoutOnly=0
 set __Priority=0
 set __PriorityArg=
 
+set __BuildNeedTargetArg=
+
 :Arg_Loop
 if "%1" == "" goto ArgsDone
 
@@ -108,6 +110,8 @@ if /i "%1" == "runtimeid"             (set __RuntimeId=%2&set processedArgs=!pro
 if /i "%1" == "targetsNonWindows"     (set __TargetsWindows=0&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
 if /i "%1" == "Exclude"               (set __Exclude=%2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop)
 if /i "%1" == "-priority"             (set __Priority=%2&shift&set processedArgs=!processedArgs! %1=%2&shift&goto Arg_Loop)
+if /i "%1" == "targetGeneric"         (set "__BuildNeedTargetArg=/p:CLRTestNeedTargetToBuild=%1"&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
+if /i "%1" == "targetSpecific"        (set "__BuildNeedTargetArg=/p:CLRTestNeedTargetToBuild=%1"&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
 if /i "%1" == "copynativeonly"        (set __CopyNativeTestBinaries=1&set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set __SkipCrossgenFramework=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
 if /i "%1" == "skipgeneratelayout"    (set __SkipGenerateLayout=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
 if /i "%1" == "generatelayoutonly"    (set __SkipManaged=1&set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
@@ -300,7 +304,7 @@ powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -Command "%__RepoRootDir%\
   /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
   /p:UsePartialNGENOptimization=false /maxcpucount^
   %__SkipFXRestoreArg%^
-  !__Logging! %__CommonMSBuildArgs% %__PriorityArg% %__UnprocessedBuildArgs%
+  !__Logging! %__CommonMSBuildArgs% %__PriorityArg% %__BuildNeedTargetArg% %__UnprocessedBuildArgs%
 
 if errorlevel 1 (
     echo %__ErrMsgPrefix%%__MsgPrefix%Error: Package restoration failed. Refer to the build log files for details:
@@ -360,7 +364,7 @@ for /l %%G in (1, 1, %__NumberOfTestGroups%) do (
         set __MSBuildBuildArgs=!__MSBuildBuildArgs! !__Logging!
         set __MSBuildBuildArgs=!__MSBuildBuildArgs! !TargetsWindowsMsbuildArg!
         set __MSBuildBuildArgs=!__MSBuildBuildArgs! !__msbuildArgs!
-        set __MSBuildBuildArgs=!__MSBuildBuildArgs! !__PriorityArg!
+        set __MSBuildBuildArgs=!__MSBuildBuildArgs! !__PriorityArg! !__BuildNeedTargetArg!
         set __MSBuildBuildArgs=!__MSBuildBuildArgs! !__UnprocessedBuildArgs!
         set __MSBuildBuildArgs=!__MSBuildBuildArgs! /p:CopyNativeProjectBinaries=!__CopyNativeProjectsAfterCombinedTestBuild!
         set __MSBuildBuildArgs=!__MSBuildBuildArgs! /p:__SkipPackageRestore=true
@@ -379,7 +383,7 @@ for /l %%G in (1, 1, %__NumberOfTestGroups%) do (
             goto     :Exit_Failure
         )
     ) else (
-        set __MSBuildBuildArgs=!__ProjectDir!\tests\build.proj -warnAsError:0 /nodeReuse:false !__Logging! !TargetsWindowsMsbuildArg! !__msbuildArgs!  !__PriorityArg! !__SkipFXRestoreArg! !__UnprocessedBuildArgs! "/t:CopyAllNativeProjectReferenceBinaries"
+        set __MSBuildBuildArgs=!__ProjectDir!\tests\build.proj -warnAsError:0 /nodeReuse:false !__Logging! !TargetsWindowsMsbuildArg! !__msbuildArgs!  !__PriorityArg! !__BuildNeedTargetArg! !__SkipFXRestoreArg! !__UnprocessedBuildArgs! "/t:CopyAllNativeProjectReferenceBinaries"
         echo Running: msbuild !__MSBuildBuildArgs!
         !__CommonMSBuildCmdPrefix! !__MSBuildBuildArgs!
 
@@ -464,7 +468,7 @@ powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__RepoRootDir%\eng
   /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^
   /p:UsePartialNGENOptimization=false /maxcpucount^
   %__SkipFXRestoreArg%^
-  !__Logging! %__CommonMSBuildArgs% %RuntimeIdArg% %__PriorityArg% %__UnprocessedBuildArgs%
+  !__Logging! %__CommonMSBuildArgs% %RuntimeIdArg% %__PriorityArg% %__BuildNeedTargetArg% %__UnprocessedBuildArgs%
 if errorlevel 1 (
     echo %__ErrMsgPrefix%%__MsgPrefix%Error: Create Test Overlay failed. Refer to the build log files for details:
     echo     %__BuildLog%
@@ -606,6 +610,8 @@ echo -priority=^<N^> : specify a set of tests that will be built and run, with p
 echo     0: Build only priority 0 cases as essential testcases (default)
 echo     1: Build all tests with priority 0 and 1
 echo     666: Build all tests with priority 0, 1 ... 666
+echo targetGeneric: Only build tests which run on any target platform.
+echo targetSpecific: Only build tests which run on a specific target platform.
 echo -verbose: enables detailed file logging for the msbuild tasks into the msbuild log file.
 exit /b 1
 
index 24b7d32..65110b5 100755 (executable)
@@ -494,6 +494,9 @@ usage_list+=("-crossgen2: Precompiles the framework managed assemblies in corero
 usage_list+=("-generatetesthostonly: only generate the test host.")
 usage_list+=("-generatelayoutonly: only pull down dependencies and build coreroot.")
 usage_list+=("-priority1: include priority=1 tests in the build.")
+usage_list+=("-targetGeneric: Only build tests which run on any target platform.")
+usage_list+=("-targetSpecific: Only build tests which run on a specific target platform.")
+
 usage_list+=("-rebuild: if tests have already been built - rebuild them.")
 usage_list+=("-runtests: run tests after building them.")
 usage_list+=("-skiprestorepackages: skip package restore.")
@@ -503,6 +506,7 @@ usage_list+=("-excludemonofailures: Mark the build as running on Mono runtime so
 # Obtain the location of the bash script to figure out where the root of the repo is.
 __ProjectRoot="$(cd "$(dirname "$0")"; pwd -P)"
 __RepoRootDir="$(cd "$__ProjectRoot"/../..; pwd -P)"
+__BuildArch=
 
 handle_arguments_local() {
     case "$1" in
@@ -545,6 +549,14 @@ handle_arguments_local() {
             __UnprocessedBuildArgs+=("/p:CLRTestPriorityToBuild=1")
             ;;
 
+        targetGeneric|-targetGeneric)
+            __UnprocessedBuildArgs+=("/p:CLRTestNeedTargetToBuild=targetGeneric")
+            ;;
+
+        targetSpecific|-targetSpecific)
+            __UnprocessedBuildArgs+=("/p:CLRTestNeedTargetToBuild=targetSpecific")
+            ;;
+
         rebuild|-rebuild)
             __RebuildTests=1
             ;;
@@ -570,7 +582,6 @@ handle_arguments_local() {
     esac
 }
 
-__BuildArch=
 __BuildType=Debug
 __CodeCoverage=
 __IncludeTests=INCLUDE_TESTS
index d2a5b80..db10db5 100644 (file)
     <CLRTestPriorityToBuild>0</CLRTestPriorityToBuild>
   </PropertyGroup>
 
+  <!-- Which tests can we build? Default: All tests.
+    At the command-line, the user can specify:
+    +  /p:CLRTestNeedTargetToBuild=targetGeneric    Only build tests which run on any target platform.
+    +  /p:CLRTestNeedTargetToBuild=targetSpecific   Only build tests which run on a specific target platform.
+   -->
+  <PropertyGroup>
+    <CLRTestNeedTargetToBuild></CLRTestNeedTargetToBuild>
+  </PropertyGroup>
+
   <!-- Where to put a "testhost" for running corefx tests -->
   <PropertyGroup>
     <TestHostVersion>$(ProductVersion)</TestHostVersion>
index 19d473b..124c872 100644 (file)
     </ItemGroup>
   </Target>
 
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+
   <Target Name="AddLibrariesToCoreRoot" BeforeTargets="CopyDependencyToCoreRoot" DependsOnTargets="ResolveLibrariesFromLocalBuild">
     <ItemGroup>
       <RuntimeCopyLocalItems Include="@(LibrariesRuntimeFiles)" />
index f99c73d..d51b15a 100644 (file)
@@ -4,6 +4,7 @@
     <CLRTestKind Condition="'$(CLRTestKind)' == '' and '$(OutputType)' == 'Library'">SharedLibrary</CLRTestKind>
     <CLRTestKind Condition="'$(CLRTestKind)' == ''">BuildAndRun</CLRTestKind>
     <CLRTestPriority Condition="'$(CLRTestPriority)' == ''">0</CLRTestPriority>
+    <CLRTestNeedTarget Condition="'$(CLRTestNeedTarget)' == ''">0</CLRTestNeedTarget>
   </PropertyGroup>
 
   <!-- All CLRTests need to be of a certain "kind". These kinds are enumerated below.
@@ -72,6 +73,8 @@
     <_WillCLRTestProjectBuild Condition="'$(_WillCLRTestProjectBuild)' == ''">false</_WillCLRTestProjectBuild>
     <_WillCLRTestProjectBuild Condition="'$(BuildAllProjects)' != 'true'">true</_WillCLRTestProjectBuild>
     <_WillCLRTestProjectBuild Condition="'$(BuildAllProjects)' == 'true' And '$(CLRTestPriority)' &lt;= '$(CLRTestPriorityToBuild)'">true</_WillCLRTestProjectBuild>
+    <_WillCLRTestProjectBuild Condition="'$(CLRTestNeedTargetToBuild)' == 'targetGeneric' And '$(CLRTestNeedTarget)' == '1'">false</_WillCLRTestProjectBuild>
+    <_WillCLRTestProjectBuild Condition="'$(CLRTestNeedTargetToBuild)' == 'targetSpecific' And '$(CLRTestNeedTarget)' != '1'">false</_WillCLRTestProjectBuild>
     <_WillCLRTestProjectBuild Condition="'$(DisableProjectBuild)' == 'true'">false</_WillCLRTestProjectBuild>
   </PropertyGroup>
 
     <ProjectLanguage Condition="'$(MSBuildProjectExtension)' == '.csproj' OR '$(Language)' == 'C#' OR '$(ProjectLanguage)'==''">CSharp</ProjectLanguage>
 
     <SkipImportILTargets Condition="'$(CLRTestPriority)' &gt; '$(CLRTestPriorityToBuild)'">true</SkipImportILTargets>
+    <SkipImportILTargets Condition="'$(CLRTestNeedTargetToBuild)' != '' And '$(CLRTestNeedTarget)' != '$(CLRTestNeedTargetToBuild)'">true</SkipImportILTargets>
   </PropertyGroup>
 
   <Import Project="CLRTest.Execute.targets" />
index 12afda6..79b1c0a 100644 (file)
@@ -9,6 +9,9 @@
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
     <ProjectReference Include="CMakeLists.txt" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="OsSpecific" />
   </ItemGroup>
index 6cb6721..75cd4e8 100644 (file)
@@ -16,6 +16,9 @@
     <ProjectReference Include="../NetServer/NetServer.DefaultInterfaces.ilproj" />
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="OsSpecific" />
   </ItemGroup>
index b33ab1d..1c758d9 100644 (file)
@@ -16,6 +16,9 @@
     <ProjectReference Include="../NetServer/NetServer.csproj" />
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="OsSpecific" />
   </ItemGroup>
index 0fe6b39..4b94fda 100644 (file)
@@ -16,6 +16,9 @@
     <ProjectReference Include="../NetServer/NetServer.csproj" />
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="OsSpecific" />
   </ItemGroup>
index 13dd6c5..0419036 100644 (file)
@@ -16,6 +16,9 @@
     <ProjectReference Include="../NetServer/NetServer.csproj" />
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="OsSpecific" />
   </ItemGroup>
index 710b722..15f9293 100644 (file)
@@ -19,6 +19,9 @@
   <ItemGroup>
     <ProjectReference Include="CMakeLists.txt" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="OsSpecific" />
   </ItemGroup>
index c04abb8..f7c511d 100644 (file)
@@ -9,6 +9,9 @@
     <ProjectReference Include="CMakeLists.txt" />
     <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="OsSpecific" />
   </ItemGroup>
index 4d561ff..9e95f3b 100644 (file)
@@ -10,6 +10,9 @@
     <Compile Include="ICustomMarshaler.cs" />
     <Compile Include="..\..\common\XunitBase.cs" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="OsSpecific" />
   </ItemGroup>
index 16d0808..37f521f 100644 (file)
@@ -11,6 +11,9 @@
   <ItemGroup>
     <ProjectReference Include="../NativeLibraryToLoad/CMakeLists.txt" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="OsSpecific" />
   </ItemGroup>
index 9b4a048..8537d83 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' == 'arm64'" Include="arglist64.il" />
     <Compile Condition="'$(TargetArchitecture)' == 'armel'" Include="arglistARM.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="ArchSpecific" />
+  </ItemGroup>
 </Project>
index 9b4a048..8537d83 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' == 'arm64'" Include="arglist64.il" />
     <Compile Condition="'$(TargetArchitecture)' == 'armel'" Include="arglistARM.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="ArchSpecific" />
+  </ItemGroup>
 </Project>
index 9b4a048..8537d83 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' == 'arm64'" Include="arglist64.il" />
     <Compile Condition="'$(TargetArchitecture)' == 'armel'" Include="arglistARM.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="ArchSpecific" />
+  </ItemGroup>
 </Project>
index 9b4a048..8537d83 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' == 'arm64'" Include="arglist64.il" />
     <Compile Condition="'$(TargetArchitecture)' == 'armel'" Include="arglistARM.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="ArchSpecific" />
+  </ItemGroup>
 </Project>
index cf56275..d43bf08 100644 (file)
@@ -7,6 +7,12 @@
     <DebugType>PdbOnly</DebugType>
     <Optimize>True</Optimize>
   </PropertyGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="OsSpecific" />
+  </ItemGroup>
   <ItemGroup>
     <Compile Include="StructABI.cs" />
     <Compile Include="StructABI.Windows.cs" Condition="'$(TargetOS)' == 'Windows_NT'" />
index c6dbd68..7068aa4 100644 (file)
@@ -17,6 +17,9 @@
   <ItemGroup>
     <ProjectReference Include="CMakeLists.txt" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="OsSpecific" />
   </ItemGroup>
index 478982e..bd7959e 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' ==   'arm'" Include="i_array_merge-i386.il" />
     <Compile Condition="'$(TargetArchitecture)' ==   'armel'" Include="i_array_merge-i386.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="BitSpecific" />
+  </ItemGroup>
 </Project>
index 0659873..0aa2ae5 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' ==   'arm'" Include="sizeof-i386.il" />
     <Compile Condition="'$(TargetArchitecture)' ==   'armel'" Include="sizeof-i386.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="BitSpecific" />
+  </ItemGroup>
 </Project>
index c5ca10a..0d4ec04 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' ==   'arm'" Include="u_array_merge-i386.il" />
     <Compile Condition="'$(TargetArchitecture)' ==   'armel'" Include="u_array_merge-i386.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="BitSpecific" />
+  </ItemGroup>
 </Project>
index c5e2a6e..668ee76 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' ==   'arm'" Include="i_array_merge-i386.il" />
     <Compile Condition="'$(TargetArchitecture)' ==   'armel'" Include="i_array_merge-i386.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="BitSpecific" />
+  </ItemGroup>
 </Project>
index 3e8d48b..66c4e23 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' ==   'arm'" Include="sizeof-i386.il" />
     <Compile Condition="'$(TargetArchitecture)' ==   'armel'" Include="sizeof-i386.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="BitSpecific" />
+  </ItemGroup>
 </Project>
index f4667a3..e0aebf0 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' ==   'arm'" Include="u_array_merge-i386.il" />
     <Compile Condition="'$(TargetArchitecture)' ==   'armel'" Include="u_array_merge-i386.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="BitSpecific" />
+  </ItemGroup>
 </Project>
index dc96da1..8ab9898 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' == 'x86'" Include="sizeof.il" />
     <Compile Condition="'$(TargetArchitecture)' != 'x86'" Include="64sizeof.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="BitSpecific" />
+  </ItemGroup>
 </Project>
index 31e939d..e018c7d 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' == 'x86'" Include="sizeof32.il" />
     <Compile Condition="'$(TargetArchitecture)' != 'x86'" Include="64sizeof32.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="BitSpecific" />
+  </ItemGroup>
 </Project>
index 11a4aaf..ec29e45 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' == 'x86'" Include="sizeof.il" />
     <Compile Condition="'$(TargetArchitecture)' != 'x86'" Include="64sizeof.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="BitSpecific" />
+  </ItemGroup>
 </Project>
index 009bf41..5b71d7e 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' == 'x86'" Include="sizeof32.il" />
     <Compile Condition="'$(TargetArchitecture)' != 'x86'" Include="64sizeof32.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="BitSpecific" />
+  </ItemGroup>
 </Project>
index e23cce8..0323f6a 100644 (file)
     <Compile Condition="'$(TargetArchitecture)' == 'x86'" Include="sizeof64.il" />
     <Compile Condition="'$(TargetArchitecture)' != 'x86'" Include="64sizeof64.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="BitSpecific" />
+  </ItemGroup>
 </Project>
index 405a317..c5def63 100644 (file)
   <ItemGroup Condition=" '$(PointerSize)' == '32' ">
     <Compile Include="DevDiv_278523_32.il" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
+  <ItemGroup>
+    <TraitTags Include="BitSpecific" />
+  </ItemGroup>
 </Project>
index 646ca2f..6bd75d8 100644 (file)
@@ -23,6 +23,9 @@ export COMPlus_GcStressOnDirectCalls=1
   <ItemGroup>
     <Compile Include="$(MSBuildProjectName).cs" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="BitSpecific" />
   </ItemGroup>
index 6d2c482..b74db7c 100644 (file)
@@ -13,6 +13,9 @@
     <Compile Include="VectorConvert.cs" />
     <Compile Include="VectorUtil.cs" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="BitSpecific" />
   </ItemGroup>
index 5fe92ee..f3ae2a5 100644 (file)
@@ -13,6 +13,9 @@
     <Compile Include="VectorConvert.cs" />
     <Compile Include="VectorUtil.cs" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="BitSpecific" />
   </ItemGroup>
index aa33e31..2044e16 100644 (file)
@@ -10,6 +10,9 @@
   <ItemGroup>
     <Compile Include="$(MSBuildProjectName).cs" />
   </ItemGroup>
+  <PropertyGroup>
+    <CLRTestNeedTarget>1</CLRTestNeedTarget>
+  </PropertyGroup>
   <ItemGroup>
     <TraitTags Include="OsSpecific" />
   </ItemGroup>
index fec8121..562be79 100644 (file)
 
     <Message Text="Found $(TestCount) built tests"/>
 
-    <Error Condition="'$(CLRTestPriorityToBuild)' == '0' and '$(TestCount)' &lt;= 2000" Text="Unexpected test count. Expected &gt; 2000, found $(TestCount).'" />
-    <Error Condition="'$(CLRTestPriorityToBuild)' == '0' and '$(TestCount)' &gt;= 3000" Text="Unexpected test count. Expected &lt; 3000, found $(TestCount).'" />
-    <Error Condition="'$(CLRTestPriorityToBuild)' == '1' and '$(TestCount)' &lt;= 9000" Text="Unexpected test count. Expected &gt; 9000, found $(TestCount).'" />
-    <Error Condition="'$(CLRTestPriorityToBuild)' != '0' and '$(CLRTestPriorityToBuild)' != '1'" Text="Unknown priority $(CLRTestPriorityToBuild)" />
+    <Error Condition="'$(CLRTestNeedTargetToBuild)' != '' and '$(CLRTestNeedTargetToBuild)' != 'targetGeneric' and '$(CLRTestNeedTargetToBuild)' != 'targetSpecific'" Text="Unknown CLRTestNeedTargetToBuild $(CLRTestNeedTargetToBuild)" />
+
+    <ItemGroup Condition="'$(CLRTestNeedTargetToBuild)' != 'targetSpecific'">
+      <Error Condition="'$(CLRTestPriorityToBuild)' == '0' and '$(TestCount)' &lt;= 2000" Text="Unexpected test count. Expected &gt; 2000, found $(TestCount).'" />
+      <Error Condition="'$(CLRTestPriorityToBuild)' == '0' and '$(TestCount)' &gt;= 3000" Text="Unexpected test count. Expected &lt; 3000, found $(TestCount).'" />
+      <Error Condition="'$(CLRTestPriorityToBuild)' == '1' and '$(TestCount)' &lt;= 9000" Text="Unexpected test count. Expected &gt; 9000, found $(TestCount).'" />
+      <Error Condition="'$(CLRTestPriorityToBuild)' != '0' and '$(CLRTestPriorityToBuild)' != '1'" Text="Unknown priority $(CLRTestPriorityToBuild)" />
+    </ItemGroup>
+    <ItemGroup Condition="'$(CLRTestNeedTargetToBuild)' == 'targetSpecific'">
+      <Error Condition="'$(TestCount)' &lt;= 100" Text="Unexpected test count. Expected &lt; 100, found $(TestCount).'" />
+    </ItemGroup>
   </Target>
 
   <Import Project="$(__Exclude)" Condition="'$(__Exclude)' != '' AND '$(XunitTestBinBase)' != ''" />