summaryrefslogtreecommitdiff
path: root/tests/src
diff options
context:
space:
mode:
authorSean Gillespie <segilles@microsoft.com>2016-04-19 17:00:41 -0700
committerSean Gillespie <segilles@microsoft.com>2016-04-22 14:07:17 -0700
commitc861c4d52007a611b6436ef834e02bc497c7a15c (patch)
treedad55660a5f16ca0c8f449ecb34b79c06d8b7195 /tests/src
parent5b5a3df3d7d6c9c84afae2e69072da67f79ce459 (diff)
downloadcoreclr-c861c4d52007a611b6436ef834e02bc497c7a15c.tar.gz
coreclr-c861c4d52007a611b6436ef834e02bc497c7a15c.tar.bz2
coreclr-c861c4d52007a611b6436ef834e02bc497c7a15c.zip
Update the GC Performance test framework since the deprecation of DNX
Diffstat (limited to 'tests/src')
-rw-r--r--tests/src/GC/Performance/Framework/GCPerfTestFramework.csproj119
-rw-r--r--tests/src/GC/Performance/Framework/GCPerfTestFramework.sln22
-rw-r--r--tests/src/GC/Performance/Framework/GCPerfTestFramework.xproj20
-rw-r--r--tests/src/GC/Performance/Framework/Metrics/CollectGCMetricsAttribute.cs2
-rw-r--r--tests/src/GC/Performance/Framework/packages.config24
-rw-r--r--tests/src/GC/Performance/Framework/project.json62
-rw-r--r--tests/src/GC/Performance/README.md68
-rw-r--r--tests/src/dirs.proj1
8 files changed, 194 insertions, 124 deletions
diff --git a/tests/src/GC/Performance/Framework/GCPerfTestFramework.csproj b/tests/src/GC/Performance/Framework/GCPerfTestFramework.csproj
new file mode 100644
index 0000000000..cc8261f26e
--- /dev/null
+++ b/tests/src/GC/Performance/Framework/GCPerfTestFramework.csproj
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <DisableProjectBuild>true</DisableProjectBuild>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">x64</Platform>
+ <ProjectGuid>{07501894-7A01-4A0D-B9A2-3C72799A68BA}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>GCPerfTestFramework</RootNamespace>
+ <AssemblyName>GCPerfTestFramework</AssemblyName>
+ <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <NuGetPackageImportStamp>
+ </NuGetPackageImportStamp>
+ <TargetFrameworkProfile />
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>TRACE;DEBUG;WINDOWS</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE;WINDOWS</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <PlatformTarget>x64</PlatformTarget>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="Microsoft.Diagnostics.Tracing.TraceEvent, Version=1.0.39.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>packages\Microsoft.Diagnostics.Tracing.TraceEvent.1.0.39\lib\net40\Microsoft.Diagnostics.Tracing.TraceEvent.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.IO.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>packages\System.IO.FileSystem.4.0.0\lib\net46\System.IO.FileSystem.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="System.IO.FileSystem.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+ <HintPath>packages\System.IO.FileSystem.Primitives.4.0.0\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xml" />
+ <Reference Include="xunit.abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
+ <HintPath>packages\Microsoft.DotNet.xunit.performance.metrics.1.0.0-alpha-build0030\lib\net46\xunit.abstractions.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="xunit.core, Version=2.1.0.3179, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
+ <HintPath>packages\xunit.extensibility.core.2.1.0\lib\dotnet\xunit.core.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="xunit.execution.desktop, Version=2.1.0.3179, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c, processorArchitecture=MSIL">
+ <HintPath>packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="xunit.performance.core, Version=1.0.0.30, Culture=neutral, PublicKeyToken=67066efe964d3b03, processorArchitecture=MSIL">
+ <HintPath>packages\Microsoft.DotNet.xunit.performance.metrics.1.0.0-alpha-build0030\lib\net46\xunit.performance.core.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="xunit.performance.execution.desktop, Version=1.0.0.30, Culture=neutral, PublicKeyToken=67066efe964d3b03, processorArchitecture=MSIL">
+ <HintPath>packages\Microsoft.DotNet.xunit.performance.1.0.0-alpha-build0030\lib\net46\xunit.performance.execution.desktop.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="xunit.performance.metrics, Version=1.0.0.30, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>packages\Microsoft.DotNet.xunit.performance.metrics.1.0.0-alpha-build0030\lib\net46\xunit.performance.metrics.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="PerfTests.cs" />
+ <Compile Include="ProcessFactory.cs" />
+ <Compile Include="Metrics\CollectGCMetricsAttribute.cs" />
+ <Compile Include="Metrics\GCMetricDiscoverer.cs" />
+ <Compile Include="Metrics\GCMetrics.cs" />
+ <Compile Include="Metrics\Builders\CircularBuffer.cs" />
+ <Compile Include="Metrics\Builders\CondemnedReasonGroup.cs" />
+ <Compile Include="Metrics\Builders\DictionaryExtensions.cs" />
+ <Compile Include="Metrics\Builders\GCEvent.cs" />
+ <Compile Include="Metrics\Builders\GCInfo.cs" />
+ <Compile Include="Metrics\Builders\GCProcess.cs" />
+ <Compile Include="Metrics\Builders\ThreadWorkSpan.cs" />
+ <None Include="..\..\..\NuGet.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="Properties\" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <Import Project="packages\Microsoft.Diagnostics.Tracing.TraceEvent.1.0.39\build\Microsoft.Diagnostics.Tracing.TraceEvent.targets" Condition="Exists('packages\Microsoft.Diagnostics.Tracing.TraceEvent.1.0.39\build\Microsoft.Diagnostics.Tracing.TraceEvent.targets')" />
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ <Error Condition="!Exists('packages\Microsoft.Diagnostics.Tracing.TraceEvent.1.0.39\build\Microsoft.Diagnostics.Tracing.TraceEvent.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Diagnostics.Tracing.TraceEvent.1.0.39\build\Microsoft.Diagnostics.Tracing.TraceEvent.targets'))" />
+ </Target>
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/tests/src/GC/Performance/Framework/GCPerfTestFramework.sln b/tests/src/GC/Performance/Framework/GCPerfTestFramework.sln
new file mode 100644
index 0000000000..fcbeef5fa0
--- /dev/null
+++ b/tests/src/GC/Performance/Framework/GCPerfTestFramework.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.24912.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GCPerfTestFramework", "GCPerfTestFramework.csproj", "{07501894-7A01-4A0D-B9A2-3C72799A68BA}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {07501894-7A01-4A0D-B9A2-3C72799A68BA}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {07501894-7A01-4A0D-B9A2-3C72799A68BA}.Debug|Any CPU.Build.0 = Debug|x64
+ {07501894-7A01-4A0D-B9A2-3C72799A68BA}.Release|Any CPU.ActiveCfg = Release|x64
+ {07501894-7A01-4A0D-B9A2-3C72799A68BA}.Release|Any CPU.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/tests/src/GC/Performance/Framework/GCPerfTestFramework.xproj b/tests/src/GC/Performance/Framework/GCPerfTestFramework.xproj
deleted file mode 100644
index d260467144..0000000000
--- a/tests/src/GC/Performance/Framework/GCPerfTestFramework.xproj
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
- <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
- </PropertyGroup>
-
- <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
- <PropertyGroup Label="Globals">
- <ProjectGuid>f1913803-be3c-47c7-ad4e-8289bd7b665a</ProjectGuid>
- <RootNamespace>GCPerfTestFramework</RootNamespace>
- <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
- <OutputPath Condition="'$(OutputPath)'=='' ">..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
- </PropertyGroup>
-
- <PropertyGroup>
- <SchemaVersion>2.0</SchemaVersion>
- </PropertyGroup>
- <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
-</Project>
diff --git a/tests/src/GC/Performance/Framework/Metrics/CollectGCMetricsAttribute.cs b/tests/src/GC/Performance/Framework/Metrics/CollectGCMetricsAttribute.cs
index 19b92f489b..fe9d243731 100644
--- a/tests/src/GC/Performance/Framework/Metrics/CollectGCMetricsAttribute.cs
+++ b/tests/src/GC/Performance/Framework/Metrics/CollectGCMetricsAttribute.cs
@@ -14,7 +14,7 @@ namespace GCPerfTestFramework.Metrics
/// </summary>
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Assembly)]
#if WINDOWS
- [PerformanceMetricDiscoverer("GCPerfTestFramework.Metrics.GCMetricDiscoverer", "Framework")]
+ [PerformanceMetricDiscoverer("GCPerfTestFramework.Metrics.GCMetricDiscoverer", "GCPerfTestFramework")]
#endif
public class CollectGCMetricsAttribute :
Attribute
diff --git a/tests/src/GC/Performance/Framework/packages.config b/tests/src/GC/Performance/Framework/packages.config
new file mode 100644
index 0000000000..16572761b4
--- /dev/null
+++ b/tests/src/GC/Performance/Framework/packages.config
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="Microsoft.Diagnostics.Tracing.TraceEvent" version="1.0.39" targetFramework="net461" />
+ <package id="Microsoft.DotNet.xunit.performance" version="1.0.0-alpha-build0030" targetFramework="net461" />
+ <package id="Microsoft.DotNet.xunit.performance.metrics" version="1.0.0-alpha-build0030" targetFramework="net461" />
+ <package id="System.Collections" version="4.0.10" targetFramework="net461" />
+ <package id="System.Diagnostics.Debug" version="4.0.10" targetFramework="net461" />
+ <package id="System.Diagnostics.Tracing" version="4.0.20" targetFramework="net461" />
+ <package id="System.Globalization" version="4.0.10" targetFramework="net461" />
+ <package id="System.IO" version="4.0.10" targetFramework="net461" />
+ <package id="System.IO.FileSystem" version="4.0.0" targetFramework="net461" />
+ <package id="System.IO.FileSystem.Primitives" version="4.0.0" targetFramework="net461" />
+ <package id="System.Linq" version="4.0.0" targetFramework="net461" />
+ <package id="System.Reflection" version="4.0.10" targetFramework="net461" />
+ <package id="System.Runtime" version="4.0.20" targetFramework="net461" />
+ <package id="System.Runtime.Extensions" version="4.0.10" targetFramework="net461" />
+ <package id="System.Runtime.Handles" version="4.0.0" targetFramework="net461" />
+ <package id="System.Text.Encoding" version="4.0.10" targetFramework="net461" />
+ <package id="System.Threading" version="4.0.10" targetFramework="net461" />
+ <package id="System.Threading.Tasks" version="4.0.10" targetFramework="net461" />
+ <package id="xunit.abstractions" version="2.0.0" targetFramework="net461" />
+ <package id="xunit.extensibility.core" version="2.1.0" targetFramework="net461" />
+ <package id="xunit.extensibility.execution" version="2.1.0" targetFramework="net461" />
+</packages> \ No newline at end of file
diff --git a/tests/src/GC/Performance/Framework/project.json b/tests/src/GC/Performance/Framework/project.json
deleted file mode 100644
index de682cc3a9..0000000000
--- a/tests/src/GC/Performance/Framework/project.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "version": "1.0.0-*",
- "description": "GCPerfTestFramework Class Library",
- "authors": [
- "segilles"
- ],
- "tags": [
- ""
- ],
- "projectUrl": "",
- "licenseUrl": "",
- "dependencies": {
- "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0029",
- "Microsoft.NETCore.Platforms": "1.0.1-rc2-23816",
- "xunit": "2.1.0"
- },
- "frameworks": {
- "dnxcore5": {
- "compilationOptions": {
- "warningsAsErrors": true
- },
- "dependencies": {
- "System.Diagnostics.Process": "4.1.0-rc2-23816",
- "System.IO": "4.0.10",
- "System.IO.FileSystem": "4.0.0",
- "System.IO.FileSystem.Primitives": "4.0.0",
- "System.Runtime": "4.1.0-rc2-23816",
- "System.Runtime.Extensions": "4.0.10",
- "System.Runtime.Handles": "4.0.0",
- "System.Runtime.Loader": "4.0.0-rc2-23816",
- "System.Threading": "4.0.10",
- "System.Globalization.Calendars": "4.0.0",
- "System.Globalization": "4.0.10",
- "System.Text.Encoding": "4.0.10",
- "System.Runtime.InteropServices": "4.1.0-rc2-23816",
- "System.Collections": "4.0.10",
- "System.Console": "4.0.0-rc2-23816",
- "System.Reflection": "4.0.10",
- "System.Reflection.Primitives": "4.0.0",
- "System.ComponentModel": "4.0.1-rc2-23816",
- "System.Xml.ReaderWriter": "4.0.11-rc2-23816",
- "System.Collections.NonGeneric": "4.0.1-rc2-23816",
- "System.Collections.Specialized": "4.0.1-rc2-23816",
- "System.Linq": "4.0.1-rc2-23816",
- "System.Linq.Queryable": "4.0.1-rc2-23816",
- "System.Xml.XmlSerializer": "4.0.11-rc2-23816",
- "System.Xml.XmlDocument": "4.0.1-rc2-23816",
- "System.Xml.XDocument": "4.0.11-rc2-23816"
- },
- "imports": "portable-net45+win8"
- }
- },
- "runtimes": {
- "win7-x86": {},
- "win7-x64": {},
- "ubuntu.14.04-x64": {},
- "osx.10.10-x64": {},
- "centos.7-x64": {},
- "rhel.7-x64": {},
- "debian.8.2-x64": {}
- }
-}
diff --git a/tests/src/GC/Performance/README.md b/tests/src/GC/Performance/README.md
index 60b0c97053..239b5df97e 100644
--- a/tests/src/GC/Performance/README.md
+++ b/tests/src/GC/Performance/README.md
@@ -9,9 +9,8 @@ all invoke one of the test artifacts (as defined in the `Tests` assembly) and co
in which the child process runs, as well as a number of other metrics on Windows platforms.
## Building the test framework
-The test framework currently does not build as part of the CoreCLR test build. The framework
-builds using the `dnu` build tool in order to target both DNX46 (Desktop) or DNXCORE5 (CoreCLR)
-depending on the platform on which the tests are to be invoked.
+The test framework currently does not build as part of the CoreCLR test build. The
+framework targets Desktop CLR and compiles using msbuild.
The Desktop (DNX46) target of the test framework contains a number of custom metrics that are given
to `xunit.performance` to evaluate the test run. These metrics provide a number of interesting
@@ -20,48 +19,55 @@ durations, and number of garbage collections for each generation.
The CoreCLR (DNXCORE5) target of the test framework consists only of the tests themselves and not
the metrics. This is because metric definitions have a dependency on TraceEvent, which is itself
-not available currently on CoreCLR.
+not available currently on CoreCLR. This target is temporarily disabled for now.
## Running the tests on Windows
Since the Desktop CLR is already installed on Windows machines, we can use the host CLR to
invoke the `xunit.performance.run` test runner, even if we are testing CoreCLR.
-Regardless of whether or not we are testing the Desktop CLR or CoreCLR, we need to copy all of our
-test dependencies to the same location, some sort of scratch folder:
+Regardless of whether or not we are testing the Desktop CLR or CoreCLR, we first need to set up
+the coreclr repo by building a build that we will be testing:
+
+```
+build.cmd Release
+tests\runtest.cmd Release GenerateLayoutOnly
+```
+
+Then, we create a temporary directory somewhere on our system and set up all of our dependencies:
```
mkdir sandbox
pushd sandbox
REM Get the xunit-performance console runner
-xcopy /s C:\<path_to_your_coreclr>\coreclr\tests\packages\Microsoft.DotNet.xunit.performance.runner.Windows\1.0.0-alpha-build0025\tools\* .
+xcopy /sy C:\<path_to_your_coreclr>\coreclr\packages\Microsoft.DotNet.xunit.performance.runner.Windows\1.0.0-alpha-build0029\tools\* .
REM Get the xunit-performance analysis engine
-xcopy /sy C:\<path_to_your_coreclr>\coreclr\tests\packages\Microsoft.DotNet.xunit.performance.analysis\1.0.0-alpha-build0025\tools\* .
+xcopy /sy C:\<path_to_your_coreclr>\coreclr\packages\Microsoft.DotNet.xunit.performance.analysis\1.0.0-alpha-build0029\tools\* .
REM Get the xunit console runner
-xcopy /sy C:\<path_to_your_coreclr>\coreclr\tests\packages\xunit.console.netcore\1.0.2-prerelease-00128\runtimes\any\native\* .
+xcopy /sy C:\<path_to_your_coreclr>\coreclr\packages\xunit.runner.console\2.1.0\tools\* .
REM Get the test executables' dependencies
xcopy /sy C:\<path_to_your_coreclr>\coreclr\bin\tests\Windows_NT.x64.Release\Tests\Core_Root\* .
REM Get the test executables themselves
-for /r C:\<path_to_your_coreclr>\coreclr\bin\tests\Windows_NT.x64.Release\GC\Performance\Tests\ %ff in (*) do xcopy "%%f" .
+for /r C:\<path_to_your_coreclr>\coreclr\bin\tests\Windows_NT.x64.Release\GC\Performance\Tests\ %%f in (*) do xcopy /sy "%%f" .
REM Get the test framework assembly
-xcopy /sy C:\<path_to_your_coreclr>\coreclr\tests\src\GC\Performance\Framework\bin\Debug\dnx46\* .
+xcopy /sy C:\<path_to_your_coreclr>\coreclr\tests\src\GC\Performance\Framework\bin\Release\* .
+
+REM Instruct the framework to 1) run using CoreRun (coreclr) and 2) find CoreRun in the current directory
+REM If not set, the framework will test the currently running Desktop CLR instead.
+set GC_PERF_TEST_CORECLR=1
+set GC_PERF_TEST_CORE_RUN_PROBE_PATH=.
```
Once all of our dependencies are in the same place, we can run the tests:
```
-xunit.performance.run.exe Framework.dll -runner xunit.console.exe -verbose -runid PerformanceTest
+xunit.performance.run.exe GCPerfTestFramework.dll -runner xunit.console.exe -verbose -runid PerformanceTest
```
-In order to test CoreCLR, we need to set two environment variables: `GC_PERF_TEST_CORE_RUN_PROBE_PATH`, indicating
-where to look for `CoreRun.exe`, and `GC_PERF_TEST_CORECLR`, which when set to "1" indicates the test runner
-to launch subprocesses under `CoreRun`. All other commands should be exactly the same. (See the Environment Variables
-section for more details on what environment variables the test framework respects).
-
The result of this invocation will be `PerformanceTest.etl`, an ETW trace, and `PerformanceTest.xml`, a file
containing a summary of every test run and the metrics that were calculated for every test iteration. A summary
XML file can be created using the analysis executable:
@@ -70,31 +76,11 @@ XML file can be created using the analysis executable:
xunit.performance.analysis.exe PerformanceTest.xml -xml PerformanceTestSummary.xml
```
-## Running on other platforms
-In order to run performance tests on other platforms, it's necessary to obtain the required components as
-specified above, possibly from an existing CoreCLR build on Windows. However, there are three major differences:
-
-First, instead of using the `xunit.performance.run.exe` obtained from the
-`Microsoft.DotNet.xunit.performance.runner.Windows` nuget package, we must instead install the command:
-
-```
-dnu commands install Microsoft.DotNet.xunit.performance.runner.dnx 1.0.0-alpha-build0027 -f https://www.myget.org/F/dotnet-buildtools/
-```
-
-Second, instead of using the `xunit.console.exe` test runner, we must use `xunit.console.netcore.exe`, which
-is available as part of the CoreCLR test build, through NuGet at https://www.myget.org/F/dotnet-buildtools/, or
-on GitHub: https://github.com/dotnet/buildtools/tree/master/src/xunit.console.netcore.
-
-Finally, we must use the `dnxcore5` target when building the test framework, since custom metrics are not available
-on non-Windows platforms currently.
-
-With all of the above in place, we can run:
+This summary XML only contains test durations and discards all custom metrics.
-```
-xunit.performance.run.exe Framework.dll -verbose -runner ./xunit.console.netcore.exe -runnerhost ./corerun -runid PerformanceTest.xml
-```
-
-Only the Duration metric will be available in the resulting XML.
+## Running on other platforms
+The GC performance test framework is temporarily not available on non-Windows platform. It will be brought to
+non-Windows platforms in the very near future!
## Environment Variables
On Windows, the test runner respects the following environment variables:
diff --git a/tests/src/dirs.proj b/tests/src/dirs.proj
index 5c1ea09988..37228801f9 100644
--- a/tests/src/dirs.proj
+++ b/tests/src/dirs.proj
@@ -18,6 +18,7 @@
<DisabledProjects Include="*\**\cs_template.csproj" />
<DisabledProjects Include="Common\Coreclr.TestWrapper\Coreclr.TestWrapper.csproj" />
<DisabledProjects Include="Common\test_runtime\test_runtime.csproj" />
+ <DisabledProjects Include="GC\Performance\Framework\GCPerfTestFramework.csproj" />
</ItemGroup>
<ItemGroup>