summaryrefslogtreecommitdiff
path: root/tests/src/baseservices/threading/generics/threadstart
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/baseservices/threading/generics/threadstart')
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread01.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread02.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread03.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread04.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread05.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread06.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread07.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread08.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread09.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread10.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread11.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread12.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread13.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread14.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread15.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread16.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread17.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread18.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread19.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread20.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread21.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread22.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread23.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread24.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread25.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread26.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread27.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread28.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread29.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/GThread30.csproj44
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread01.cs78
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread02.cs78
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread03.cs74
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread04.cs74
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread05.cs74
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread06.cs74
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread07.cs78
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread08.cs74
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread09.cs74
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread10.cs88
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread11.cs88
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread12.cs88
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread13.cs201
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread14.cs201
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread15.cs201
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread16.cs79
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread17.cs79
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread18.cs79
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread19.cs83
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread20.cs83
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread21.cs83
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread22.cs238
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread23.cs238
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread24.cs238
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread25.cs77
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread26.cs77
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread27.cs74
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread28.cs74
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread29.cs73
-rw-r--r--tests/src/baseservices/threading/generics/threadstart/thread30.cs73
60 files changed, 4513 insertions, 0 deletions
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread01.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread01.csproj
new file mode 100644
index 0000000000..c698a228fc
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread01.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread01.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread02.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread02.csproj
new file mode 100644
index 0000000000..d85759edda
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread02.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread02.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread03.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread03.csproj
new file mode 100644
index 0000000000..4b7e397537
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread03.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread03.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread04.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread04.csproj
new file mode 100644
index 0000000000..d57dadc72f
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread04.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread04.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread05.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread05.csproj
new file mode 100644
index 0000000000..31d8753c1c
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread05.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread05.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread06.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread06.csproj
new file mode 100644
index 0000000000..3cd6365782
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread06.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread06.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread07.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread07.csproj
new file mode 100644
index 0000000000..cbef961f0a
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread07.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread07.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread08.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread08.csproj
new file mode 100644
index 0000000000..dc56ae4f5c
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread08.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread08.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread09.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread09.csproj
new file mode 100644
index 0000000000..509746e2c5
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread09.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread09.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread10.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread10.csproj
new file mode 100644
index 0000000000..cacd4c4367
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread10.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread10.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread11.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread11.csproj
new file mode 100644
index 0000000000..0ecce49865
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread11.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread11.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread12.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread12.csproj
new file mode 100644
index 0000000000..7a4973aa71
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread12.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread12.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread13.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread13.csproj
new file mode 100644
index 0000000000..a97a685367
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread13.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread13.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread14.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread14.csproj
new file mode 100644
index 0000000000..18e5d7445c
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread14.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread14.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread15.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread15.csproj
new file mode 100644
index 0000000000..584cae692e
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread15.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread15.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread16.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread16.csproj
new file mode 100644
index 0000000000..d845ee3385
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread16.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread16.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread17.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread17.csproj
new file mode 100644
index 0000000000..d20243abaa
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread17.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread17.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread18.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread18.csproj
new file mode 100644
index 0000000000..6cdb760ef9
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread18.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread18.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread19.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread19.csproj
new file mode 100644
index 0000000000..cc22171d44
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread19.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread19.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread20.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread20.csproj
new file mode 100644
index 0000000000..4e11b3384f
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread20.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread20.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread21.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread21.csproj
new file mode 100644
index 0000000000..3763936378
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread21.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread21.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread22.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread22.csproj
new file mode 100644
index 0000000000..38aa2c006b
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread22.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread22.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread23.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread23.csproj
new file mode 100644
index 0000000000..168d26be22
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread23.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread23.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread24.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread24.csproj
new file mode 100644
index 0000000000..97a83d5f35
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread24.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread24.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread25.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread25.csproj
new file mode 100644
index 0000000000..d7d9165a12
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread25.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread25.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread26.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread26.csproj
new file mode 100644
index 0000000000..e099a14795
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread26.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread26.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread27.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread27.csproj
new file mode 100644
index 0000000000..294e901611
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread27.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread27.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread28.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread28.csproj
new file mode 100644
index 0000000000..69b40e9924
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread28.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread28.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread29.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread29.csproj
new file mode 100644
index 0000000000..180dfcead0
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread29.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread29.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/GThread30.csproj b/tests/src/baseservices/threading/generics/threadstart/GThread30.csproj
new file mode 100644
index 0000000000..58e4b71fbd
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/GThread30.csproj
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
+ <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>1</CLRTestPriority>
+ </PropertyGroup>
+ <!-- Default configurations to help VS understand the configurations -->
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ </PropertyGroup>
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+ <ItemGroup>
+ <!-- Add Compile Object Here -->
+ <Compile Include="thread30.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="../../../../Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+ <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread01.cs b/tests/src/baseservices/threading/generics/threadstart/thread01.cs
new file mode 100644
index 0000000000..4ab65e0133
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread01.cs
@@ -0,0 +1,78 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+class Gen<T>
+{
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ Gen<T> obj = new Gen<T>();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads = 50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest();
+ Gen<double>.ThreadPoolTest();
+ Gen<string>.ThreadPoolTest();
+ Gen<object>.ThreadPoolTest();
+ Gen<Guid>.ThreadPoolTest();
+
+ Gen<int[]>.ThreadPoolTest();
+ Gen<double[,]>.ThreadPoolTest();
+ Gen<string[][][]>.ThreadPoolTest();
+ Gen<object[,,,]>.ThreadPoolTest();
+ Gen<Guid[][,,,][]>.ThreadPoolTest();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread02.cs b/tests/src/baseservices/threading/generics/threadstart/thread02.cs
new file mode 100644
index 0000000000..45669ab6f6
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread02.cs
@@ -0,0 +1,78 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+class Gen<T>
+{
+ public virtual void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ Gen<T> obj = new Gen<T>();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads = 50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest();
+ Gen<double>.ThreadPoolTest();
+ Gen<string>.ThreadPoolTest();
+ Gen<object>.ThreadPoolTest();
+ Gen<Guid>.ThreadPoolTest();
+
+ Gen<int[]>.ThreadPoolTest();
+ Gen<double[,]>.ThreadPoolTest();
+ Gen<string[][][]>.ThreadPoolTest();
+ Gen<object[,,,]>.ThreadPoolTest();
+ Gen<Guid[][,,,][]>.ThreadPoolTest();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread03.cs b/tests/src/baseservices/threading/generics/threadstart/thread03.cs
new file mode 100644
index 0000000000..725dd669b8
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread03.cs
@@ -0,0 +1,74 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+class Gen
+{
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ Gen obj = new Gen();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen.ThreadPoolTest<object>();
+ Gen.ThreadPoolTest<string>();
+ Gen.ThreadPoolTest<Guid>();
+ Gen.ThreadPoolTest<int>();
+ Gen.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread04.cs b/tests/src/baseservices/threading/generics/threadstart/thread04.cs
new file mode 100644
index 0000000000..4f8622b5a5
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread04.cs
@@ -0,0 +1,74 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+class Gen
+{
+ public virtual void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ Gen obj = new Gen();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen.ThreadPoolTest<object>();
+ Gen.ThreadPoolTest<string>();
+ Gen.ThreadPoolTest<Guid>();
+ Gen.ThreadPoolTest<int>();
+ Gen.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread05.cs b/tests/src/baseservices/threading/generics/threadstart/thread05.cs
new file mode 100644
index 0000000000..97497d6d39
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread05.cs
@@ -0,0 +1,74 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+class Gen<T>
+{
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ Gen<T> obj = new Gen<T>();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest<object>();
+ Gen<double>.ThreadPoolTest<string>();
+ Gen<string>.ThreadPoolTest<Guid>();
+ Gen<object>.ThreadPoolTest<int>();
+ Gen<Guid>.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread06.cs b/tests/src/baseservices/threading/generics/threadstart/thread06.cs
new file mode 100644
index 0000000000..db704d1cc3
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread06.cs
@@ -0,0 +1,74 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+class Gen<T>
+{
+ public virtual void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ Gen<T> obj = new Gen<T>();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest<object>();
+ Gen<double>.ThreadPoolTest<string>();
+ Gen<string>.ThreadPoolTest<Guid>();
+ Gen<object>.ThreadPoolTest<int>();
+ Gen<Guid>.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread07.cs b/tests/src/baseservices/threading/generics/threadstart/thread07.cs
new file mode 100644
index 0000000000..13ae54cce7
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread07.cs
@@ -0,0 +1,78 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+struct Gen<T>
+{
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ Gen<T> obj = new Gen<T>();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads = 50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest();
+ Gen<double>.ThreadPoolTest();
+ Gen<string>.ThreadPoolTest();
+ Gen<object>.ThreadPoolTest();
+ Gen<Guid>.ThreadPoolTest();
+
+ Gen<int[]>.ThreadPoolTest();
+ Gen<double[,]>.ThreadPoolTest();
+ Gen<string[][][]>.ThreadPoolTest();
+ Gen<object[,,,]>.ThreadPoolTest();
+ Gen<Guid[][,,,][]>.ThreadPoolTest();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread08.cs b/tests/src/baseservices/threading/generics/threadstart/thread08.cs
new file mode 100644
index 0000000000..cb75a1912f
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread08.cs
@@ -0,0 +1,74 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+struct Gen
+{
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ Gen obj = new Gen();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen.ThreadPoolTest<object>();
+ Gen.ThreadPoolTest<string>();
+ Gen.ThreadPoolTest<Guid>();
+ Gen.ThreadPoolTest<int>();
+ Gen.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread09.cs b/tests/src/baseservices/threading/generics/threadstart/thread09.cs
new file mode 100644
index 0000000000..be4ac8296a
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread09.cs
@@ -0,0 +1,74 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+struct Gen<T>
+{
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ Gen<T> obj = new Gen<T>();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest<object>();
+ Gen<double>.ThreadPoolTest<string>();
+ Gen<string>.ThreadPoolTest<Guid>();
+ Gen<object>.ThreadPoolTest<int>();
+ Gen<Guid>.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread10.cs b/tests/src/baseservices/threading/generics/threadstart/thread10.cs
new file mode 100644
index 0000000000..1798e326de
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread10.cs
@@ -0,0 +1,88 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+
+interface IGen<T>
+{
+ void Target();
+ T Dummy(T t);
+}
+
+class Gen<T> : IGen<T>
+{
+ public T Dummy(T t) { return t; }
+
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<T> obj = new Gen<T>();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest();
+ Gen<double>.ThreadPoolTest();
+ Gen<string>.ThreadPoolTest();
+ Gen<object>.ThreadPoolTest();
+ Gen<Guid>.ThreadPoolTest();
+
+ Gen<int[]>.ThreadPoolTest();
+ Gen<double[,]>.ThreadPoolTest();
+ Gen<string[][][]>.ThreadPoolTest();
+ Gen<object[,,,]>.ThreadPoolTest();
+ Gen<Guid[][,,,][]>.ThreadPoolTest();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread11.cs b/tests/src/baseservices/threading/generics/threadstart/thread11.cs
new file mode 100644
index 0000000000..1e5d7b5bbb
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread11.cs
@@ -0,0 +1,88 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+
+interface IGen<T>
+{
+ void Target();
+ T Dummy(T t);
+}
+
+struct Gen<T> : IGen<T>
+{
+ public T Dummy(T t) { return t; }
+
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<T> obj = new Gen<T>();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest();
+ Gen<double>.ThreadPoolTest();
+ Gen<string>.ThreadPoolTest();
+ Gen<object>.ThreadPoolTest();
+ Gen<Guid>.ThreadPoolTest();
+
+ Gen<int[]>.ThreadPoolTest();
+ Gen<double[,]>.ThreadPoolTest();
+ Gen<string[][][]>.ThreadPoolTest();
+ Gen<object[,,,]>.ThreadPoolTest();
+ Gen<Guid[][,,,][]>.ThreadPoolTest();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread12.cs b/tests/src/baseservices/threading/generics/threadstart/thread12.cs
new file mode 100644
index 0000000000..4b216991f3
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread12.cs
@@ -0,0 +1,88 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+
+interface IGen<T>
+{
+ void Target();
+ T Dummy(T t);
+}
+
+class Gen<T> : IGen<T>
+{
+ public T Dummy(T t) { return t; }
+
+ public virtual void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<T> obj = new Gen<T>();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest();
+ Gen<double>.ThreadPoolTest();
+ Gen<string>.ThreadPoolTest();
+ Gen<object>.ThreadPoolTest();
+ Gen<Guid>.ThreadPoolTest();
+
+ Gen<int[]>.ThreadPoolTest();
+ Gen<double[,]>.ThreadPoolTest();
+ Gen<string[][][]>.ThreadPoolTest();
+ Gen<object[,,,]>.ThreadPoolTest();
+ Gen<Guid[][,,,][]>.ThreadPoolTest();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread13.cs b/tests/src/baseservices/threading/generics/threadstart/thread13.cs
new file mode 100644
index 0000000000..8d58f15197
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread13.cs
@@ -0,0 +1,201 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+interface IGen<T>
+{
+ void Target();
+ T Dummy(T t);
+}
+
+class GenInt : IGen<int>
+{
+ public int Dummy(int t) { return t; }
+
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<int> obj = new GenInt();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenDouble : IGen<double>
+{
+ public double Dummy(double t) { return t; }
+
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<double> obj = new GenDouble();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenString : IGen<string>
+{
+ public string Dummy(string t) { return t; }
+
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<string> obj = new GenString();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenObject : IGen<object>
+{
+ public object Dummy(object t) { return t; }
+
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<object> obj = new GenObject();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenGuid : IGen<Guid>
+{
+ public Guid Dummy(Guid t) { return t; }
+
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<Guid> obj = new GenGuid();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+
+ GenInt.ThreadPoolTest();
+ GenDouble.ThreadPoolTest();
+ GenString.ThreadPoolTest();
+ GenObject.ThreadPoolTest();
+ GenGuid.ThreadPoolTest();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread14.cs b/tests/src/baseservices/threading/generics/threadstart/thread14.cs
new file mode 100644
index 0000000000..7369b2dbde
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread14.cs
@@ -0,0 +1,201 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+interface IGen<T>
+{
+ void Target();
+ T Dummy(T t);
+}
+
+struct GenInt : IGen<int>
+{
+ public int Dummy(int t) { return t; }
+
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<int> obj = new GenInt();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+struct GenDouble : IGen<double>
+{
+ public double Dummy(double t) { return t; }
+
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<double> obj = new GenDouble();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+struct GenString : IGen<string>
+{
+ public string Dummy(string t) { return t; }
+
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<string> obj = new GenString();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+struct GenObject : IGen<object>
+{
+ public object Dummy(object t) { return t; }
+
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<object> obj = new GenObject();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+struct GenGuid : IGen<Guid>
+{
+ public Guid Dummy(Guid t) { return t; }
+
+ public void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<Guid> obj = new GenGuid();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+
+ GenInt.ThreadPoolTest();
+ GenDouble.ThreadPoolTest();
+ GenString.ThreadPoolTest();
+ GenObject.ThreadPoolTest();
+ GenGuid.ThreadPoolTest();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread15.cs b/tests/src/baseservices/threading/generics/threadstart/thread15.cs
new file mode 100644
index 0000000000..5ae8a67de3
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread15.cs
@@ -0,0 +1,201 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+interface IGen<T>
+{
+ void Target();
+ T Dummy(T t);
+}
+
+class GenInt : IGen<int>
+{
+ public int Dummy(int t) { return t; }
+
+ public virtual void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<int> obj = new GenInt();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenDouble : IGen<double>
+{
+ public double Dummy(double t) { return t; }
+
+ public virtual void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<double> obj = new GenDouble();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenString : IGen<string>
+{
+ public string Dummy(string t) { return t; }
+
+ public virtual void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<string> obj = new GenString();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenObject : IGen<object>
+{
+ public object Dummy(object t) { return t; }
+
+ public virtual void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<object> obj = new GenObject();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenGuid : IGen<Guid>
+{
+ public Guid Dummy(Guid t) { return t; }
+
+ public virtual void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<Guid> obj = new GenGuid();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result &= exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+
+ GenInt.ThreadPoolTest();
+ GenDouble.ThreadPoolTest();
+ GenString.ThreadPoolTest();
+ GenObject.ThreadPoolTest();
+ GenGuid.ThreadPoolTest();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread16.cs b/tests/src/baseservices/threading/generics/threadstart/thread16.cs
new file mode 100644
index 0000000000..c798fe727e
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread16.cs
@@ -0,0 +1,79 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+interface IGen
+{
+ void Target<U>();
+}
+
+class Gen : IGen
+{
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen obj = new Gen();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen.ThreadPoolTest<object>();
+ Gen.ThreadPoolTest<string>();
+ Gen.ThreadPoolTest<Guid>();
+ Gen.ThreadPoolTest<int>();
+ Gen.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread17.cs b/tests/src/baseservices/threading/generics/threadstart/thread17.cs
new file mode 100644
index 0000000000..b9852de9e8
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread17.cs
@@ -0,0 +1,79 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+interface IGen
+{
+ void Target<U>();
+}
+
+struct Gen : IGen
+{
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen obj = new Gen();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen.ThreadPoolTest<object>();
+ Gen.ThreadPoolTest<string>();
+ Gen.ThreadPoolTest<Guid>();
+ Gen.ThreadPoolTest<int>();
+ Gen.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread18.cs b/tests/src/baseservices/threading/generics/threadstart/thread18.cs
new file mode 100644
index 0000000000..7eabb433a4
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread18.cs
@@ -0,0 +1,79 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+interface IGen
+{
+ void Target<U>();
+}
+
+class Gen : IGen
+{
+ public virtual void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen obj = new Gen();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen.ThreadPoolTest<object>();
+ Gen.ThreadPoolTest<string>();
+ Gen.ThreadPoolTest<Guid>();
+ Gen.ThreadPoolTest<int>();
+ Gen.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread19.cs b/tests/src/baseservices/threading/generics/threadstart/thread19.cs
new file mode 100644
index 0000000000..e302bf0e57
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread19.cs
@@ -0,0 +1,83 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+
+interface IGen<T>
+{
+ void Target<U>();
+ T Dummy(T t);
+}
+
+class Gen<T> : IGen<T>
+{
+ public T Dummy(T t) {return t;}
+
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<T> obj = new Gen<T>();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest<object>();
+ Gen<double>.ThreadPoolTest<string>();
+ Gen<string>.ThreadPoolTest<Guid>();
+ Gen<object>.ThreadPoolTest<int>();
+ Gen<Guid>.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread20.cs b/tests/src/baseservices/threading/generics/threadstart/thread20.cs
new file mode 100644
index 0000000000..d862f32581
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread20.cs
@@ -0,0 +1,83 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+
+interface IGen<T>
+{
+ void Target<U>();
+ T Dummy(T t);
+}
+
+struct Gen<T> : IGen<T>
+{
+ public T Dummy(T t) {return t;}
+
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<T> obj = new Gen<T>();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest<object>();
+ Gen<double>.ThreadPoolTest<string>();
+ Gen<string>.ThreadPoolTest<Guid>();
+ Gen<object>.ThreadPoolTest<int>();
+ Gen<Guid>.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread21.cs b/tests/src/baseservices/threading/generics/threadstart/thread21.cs
new file mode 100644
index 0000000000..b75a7d399a
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread21.cs
@@ -0,0 +1,83 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+
+interface IGen<T>
+{
+ void Target<U>();
+ T Dummy(T t);
+}
+
+class Gen<T> : IGen<T>
+{
+ public T Dummy(T t) {return t;}
+
+ public virtual void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<T> obj = new Gen<T>();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest<object>();
+ Gen<double>.ThreadPoolTest<string>();
+ Gen<string>.ThreadPoolTest<Guid>();
+ Gen<object>.ThreadPoolTest<int>();
+ Gen<Guid>.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread22.cs b/tests/src/baseservices/threading/generics/threadstart/thread22.cs
new file mode 100644
index 0000000000..4ca3606b67
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread22.cs
@@ -0,0 +1,238 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+interface IGen<T>
+{
+ void Target<U>();
+ T Dummy(T t);
+}
+
+
+class GenInt : IGen<int>
+{
+ public int Dummy(int t) { return t; }
+
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<int> obj = new GenInt();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenDouble : IGen<double>
+{
+ public double Dummy(double t) { return t; }
+
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<double> obj = new GenDouble();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenString : IGen<string>
+{
+ public string Dummy(string t) { return t; }
+
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<string> obj = new GenString();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenObject : IGen<object>
+{
+ public object Dummy(object t) { return t; }
+
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<object> obj = new GenObject();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenGuid : IGen<Guid>
+{
+ public Guid Dummy(Guid t) { return t; }
+
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<Guid> obj = new GenGuid();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+
+ GenInt.ThreadPoolTest<int>();
+ GenDouble.ThreadPoolTest<int>();
+ GenString.ThreadPoolTest<int>();
+ GenObject.ThreadPoolTest<int>();
+ GenGuid.ThreadPoolTest<int>();
+
+ GenInt.ThreadPoolTest<double>();
+ GenDouble.ThreadPoolTest<double>();
+ GenString.ThreadPoolTest<double>();
+ GenObject.ThreadPoolTest<double>();
+ GenGuid.ThreadPoolTest<double>();
+
+ GenInt.ThreadPoolTest<string>();
+ GenDouble.ThreadPoolTest<string>();
+ GenString.ThreadPoolTest<string>();
+ GenObject.ThreadPoolTest<string>();
+ GenGuid.ThreadPoolTest<string>();
+
+ GenInt.ThreadPoolTest<object>();
+ GenDouble.ThreadPoolTest<object>();
+ GenString.ThreadPoolTest<object>();
+ GenObject.ThreadPoolTest<object>();
+ GenGuid.ThreadPoolTest<object>();
+
+ GenInt.ThreadPoolTest<Guid>();
+ GenDouble.ThreadPoolTest<Guid>();
+ GenString.ThreadPoolTest<Guid>();
+ GenObject.ThreadPoolTest<Guid>();
+ GenGuid.ThreadPoolTest<Guid>();
+
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread23.cs b/tests/src/baseservices/threading/generics/threadstart/thread23.cs
new file mode 100644
index 0000000000..d776b4b004
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread23.cs
@@ -0,0 +1,238 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+interface IGen<T>
+{
+ void Target<U>();
+ T Dummy(T t);
+}
+
+
+struct GenInt : IGen<int>
+{
+ public int Dummy(int t) { return t; }
+
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<int> obj = new GenInt();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+struct GenDouble : IGen<double>
+{
+ public double Dummy(double t) { return t; }
+
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<double> obj = new GenDouble();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+struct GenString : IGen<string>
+{
+ public string Dummy(string t) { return t; }
+
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<string> obj = new GenString();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+struct GenObject : IGen<object>
+{
+ public object Dummy(object t) { return t; }
+
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<object> obj = new GenObject();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+struct GenGuid : IGen<Guid>
+{
+ public Guid Dummy(Guid t) { return t; }
+
+ public void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<Guid> obj = new GenGuid();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+
+ GenInt.ThreadPoolTest<int>();
+ GenDouble.ThreadPoolTest<int>();
+ GenString.ThreadPoolTest<int>();
+ GenObject.ThreadPoolTest<int>();
+ GenGuid.ThreadPoolTest<int>();
+
+ GenInt.ThreadPoolTest<double>();
+ GenDouble.ThreadPoolTest<double>();
+ GenString.ThreadPoolTest<double>();
+ GenObject.ThreadPoolTest<double>();
+ GenGuid.ThreadPoolTest<double>();
+
+ GenInt.ThreadPoolTest<string>();
+ GenDouble.ThreadPoolTest<string>();
+ GenString.ThreadPoolTest<string>();
+ GenObject.ThreadPoolTest<string>();
+ GenGuid.ThreadPoolTest<string>();
+
+ GenInt.ThreadPoolTest<object>();
+ GenDouble.ThreadPoolTest<object>();
+ GenString.ThreadPoolTest<object>();
+ GenObject.ThreadPoolTest<object>();
+ GenGuid.ThreadPoolTest<object>();
+
+ GenInt.ThreadPoolTest<Guid>();
+ GenDouble.ThreadPoolTest<Guid>();
+ GenString.ThreadPoolTest<Guid>();
+ GenObject.ThreadPoolTest<Guid>();
+ GenGuid.ThreadPoolTest<Guid>();
+
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread24.cs b/tests/src/baseservices/threading/generics/threadstart/thread24.cs
new file mode 100644
index 0000000000..86c6bd98cc
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread24.cs
@@ -0,0 +1,238 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+interface IGen<T>
+{
+ void Target<U>();
+ T Dummy(T t);
+}
+
+
+class GenInt : IGen<int>
+{
+ public int Dummy(int t) { return t; }
+
+ public virtual void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<int> obj = new GenInt();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenDouble : IGen<double>
+{
+ public double Dummy(double t) { return t; }
+
+ public virtual void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<double> obj = new GenDouble();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenString : IGen<string>
+{
+ public string Dummy(string t) { return t; }
+
+ public virtual void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<string> obj = new GenString();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenObject : IGen<object>
+{
+ public object Dummy(object t) { return t; }
+
+ public virtual void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<object> obj = new GenObject();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+class GenGuid : IGen<Guid>
+{
+ public Guid Dummy(Guid t) { return t; }
+
+ public virtual void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+ IGen<Guid> obj = new GenGuid();
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(obj.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+
+ GenInt.ThreadPoolTest<int>();
+ GenDouble.ThreadPoolTest<int>();
+ GenString.ThreadPoolTest<int>();
+ GenObject.ThreadPoolTest<int>();
+ GenGuid.ThreadPoolTest<int>();
+
+ GenInt.ThreadPoolTest<double>();
+ GenDouble.ThreadPoolTest<double>();
+ GenString.ThreadPoolTest<double>();
+ GenObject.ThreadPoolTest<double>();
+ GenGuid.ThreadPoolTest<double>();
+
+ GenInt.ThreadPoolTest<string>();
+ GenDouble.ThreadPoolTest<string>();
+ GenString.ThreadPoolTest<string>();
+ GenObject.ThreadPoolTest<string>();
+ GenGuid.ThreadPoolTest<string>();
+
+ GenInt.ThreadPoolTest<object>();
+ GenDouble.ThreadPoolTest<object>();
+ GenString.ThreadPoolTest<object>();
+ GenObject.ThreadPoolTest<object>();
+ GenGuid.ThreadPoolTest<object>();
+
+ GenInt.ThreadPoolTest<Guid>();
+ GenDouble.ThreadPoolTest<Guid>();
+ GenString.ThreadPoolTest<Guid>();
+ GenObject.ThreadPoolTest<Guid>();
+ GenGuid.ThreadPoolTest<Guid>();
+
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread25.cs b/tests/src/baseservices/threading/generics/threadstart/thread25.cs
new file mode 100644
index 0000000000..b14e5df356
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread25.cs
@@ -0,0 +1,77 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+class Gen<T>
+{
+ public static void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(Gen<T>.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads = 50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest();
+ Gen<double>.ThreadPoolTest();
+ Gen<string>.ThreadPoolTest();
+ Gen<object>.ThreadPoolTest();
+ Gen<Guid>.ThreadPoolTest();
+
+ Gen<int[]>.ThreadPoolTest();
+ Gen<double[,]>.ThreadPoolTest();
+ Gen<string[][][]>.ThreadPoolTest();
+ Gen<object[,,,]>.ThreadPoolTest();
+ Gen<Guid[][,,,][]>.ThreadPoolTest();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread26.cs b/tests/src/baseservices/threading/generics/threadstart/thread26.cs
new file mode 100644
index 0000000000..c3036a90b5
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread26.cs
@@ -0,0 +1,77 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+struct Gen<T>
+{
+ public static void Target()
+ {
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(Gen<T>.Target));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads = 50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest();
+ Gen<double>.ThreadPoolTest();
+ Gen<string>.ThreadPoolTest();
+ Gen<object>.ThreadPoolTest();
+ Gen<Guid>.ThreadPoolTest();
+
+ Gen<int[]>.ThreadPoolTest();
+ Gen<double[,]>.ThreadPoolTest();
+ Gen<string[][][]>.ThreadPoolTest();
+ Gen<object[,,,]>.ThreadPoolTest();
+ Gen<Guid[][,,,][]>.ThreadPoolTest();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread27.cs b/tests/src/baseservices/threading/generics/threadstart/thread27.cs
new file mode 100644
index 0000000000..db223c445a
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread27.cs
@@ -0,0 +1,74 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+class Gen<T>
+{
+ public static void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(Gen<T>.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest<object>();
+ Gen<double>.ThreadPoolTest<string>();
+ Gen<string>.ThreadPoolTest<Guid>();
+ Gen<object>.ThreadPoolTest<int>();
+ Gen<Guid>.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread28.cs b/tests/src/baseservices/threading/generics/threadstart/thread28.cs
new file mode 100644
index 0000000000..5d3959ea71
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread28.cs
@@ -0,0 +1,74 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+struct Gen<T>
+{
+ public static void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(Gen<T>.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen<int>.ThreadPoolTest<object>();
+ Gen<double>.ThreadPoolTest<string>();
+ Gen<string>.ThreadPoolTest<Guid>();
+ Gen<object>.ThreadPoolTest<int>();
+ Gen<Guid>.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread29.cs b/tests/src/baseservices/threading/generics/threadstart/thread29.cs
new file mode 100644
index 0000000000..07e2c557d3
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread29.cs
@@ -0,0 +1,73 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+class Gen
+{
+ public static void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(Gen.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen.ThreadPoolTest<object>();
+ Gen.ThreadPoolTest<string>();
+ Gen.ThreadPoolTest<Guid>();
+ Gen.ThreadPoolTest<int>();
+ Gen.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+
diff --git a/tests/src/baseservices/threading/generics/threadstart/thread30.cs b/tests/src/baseservices/threading/generics/threadstart/thread30.cs
new file mode 100644
index 0000000000..eba2dbfed9
--- /dev/null
+++ b/tests/src/baseservices/threading/generics/threadstart/thread30.cs
@@ -0,0 +1,73 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+using System;
+using System.Threading;
+
+struct Gen
+{
+ public static void Target<U>()
+ {
+ //dummy line to avoid warnings
+ Test.Eval(typeof(U)!=null);
+ Interlocked.Increment(ref Test.Xcounter);
+ }
+ public static void ThreadPoolTest<U>()
+ {
+ Thread[] threads = new Thread[Test.nThreads];
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i] = new Thread(new ThreadStart(Gen.Target<U>));
+ threads[i].Start();
+ }
+
+ for (int i = 0; i < Test.nThreads; i++)
+ {
+ threads[i].Join();
+ }
+
+ Test.Eval(Test.Xcounter==Test.nThreads);
+ Test.Xcounter = 0;
+ }
+}
+
+public class Test
+{
+ public static int nThreads =50;
+ public static int counter = 0;
+ public static int Xcounter = 0;
+ public static bool result = true;
+ public static void Eval(bool exp)
+ {
+ counter++;
+ if (!exp)
+ {
+ result = exp;
+ Console.WriteLine("Test Failed at location: " + counter);
+ }
+
+ }
+
+ public static int Main()
+ {
+ Gen.ThreadPoolTest<object>();
+ Gen.ThreadPoolTest<string>();
+ Gen.ThreadPoolTest<Guid>();
+ Gen.ThreadPoolTest<int>();
+ Gen.ThreadPoolTest<double>();
+
+ if (result)
+ {
+ Console.WriteLine("Test Passed");
+ return 100;
+ }
+ else
+ {
+ Console.WriteLine("Test Failed");
+ return 1;
+ }
+ }
+}
+
+