summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepak Shankargouda <deshank@microsoft.com>2016-06-07 23:28:13 -0700
committerDeepak Shankargouda <deshank@microsoft.com>2016-06-07 23:28:13 -0700
commitc413a60a37aac18583a4c958726c7357184ffa66 (patch)
treecb4da8def375a6c8ad98d1e87c8932b5352b2614
parent4e89fc9c11bfe809f863ed7efb1e49312662416b (diff)
downloadcoreclr-c413a60a37aac18583a4c958726c7357184ffa66.tar.gz
coreclr-c413a60a37aac18583a4c958726c7357184ffa66.tar.bz2
coreclr-c413a60a37aac18583a4c958726c7357184ffa66.zip
Fixing perf runs on helix (#5102)
* Fixing issue with perf targets restoring test runtime * Fixing perf runs on helix
-rw-r--r--tests/dir.props2
-rw-r--r--tests/helix.targets2
-rw-r--r--tests/helixperftasks.targets86
-rw-r--r--tests/src/GC/Performance/README.md6
-rw-r--r--tests/src/JIT/config/benchmark+roslyn/project.json6
-rw-r--r--tests/src/JIT/config/benchmark+serialize/project.json6
-rw-r--r--tests/src/JIT/config/benchmark/project.json6
-rw-r--r--tests/src/performance/perflab/project.json6
8 files changed, 91 insertions, 29 deletions
diff --git a/tests/dir.props b/tests/dir.props
index ce9063c114..870d4e39be 100644
--- a/tests/dir.props
+++ b/tests/dir.props
@@ -56,7 +56,7 @@
<ExpectedVersion>1.0.2-prerelease-00101</ExpectedVersion>
</ValidationPattern>
<ValidationPattern Include="^(?i)Microsoft\.DotNet\.xunit\.performance.%2A$">
- <ExpectedVersion>1.0.0-alpha-build0029</ExpectedVersion>
+ <ExpectedVersion>1.0.0-alpha-build0035</ExpectedVersion>
</ValidationPattern>
</ItemGroup>
diff --git a/tests/helix.targets b/tests/helix.targets
index 36b14319a8..16acf01ca4 100644
--- a/tests/helix.targets
+++ b/tests/helix.targets
@@ -12,7 +12,7 @@
<CoreRootFiles Include="$(CORE_ROOT)\ilasm.exe" />
<!-- TODO these files should get copied to core_root but does not as they are xunit files. Using temporary workaround for now -->
- <CoreRootFiles Include="$(PackagesDir)Microsoft.DotNet.xunit.performance\1.0.0-alpha-build0029\lib\dotnet\xunit.performance.core.dll" />
+ <CoreRootFiles Include="$(PackagesDir)Microsoft.DotNet.xunit.performance\1.0.0-alpha-build0035\lib\dotnet\xunit.performance.core.dll" />
<CoreRootFiles Include="$(PackagesDir)xunit.extensibility.core\2.1.0\lib\dotnet\xunit.core.dll" />
</ItemGroup>
diff --git a/tests/helixperftasks.targets b/tests/helixperftasks.targets
index 73046cf341..52fb7f7ff4 100644
--- a/tests/helixperftasks.targets
+++ b/tests/helixperftasks.targets
@@ -1,4 +1,43 @@
-<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <UsingTask TaskName="RemoveDuplicateAssemblies" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
+ <ParameterGroup>
+ <DuplicateAssemblies ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true" />
+ <AssemblyPaths ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true" />
+ <UniqueAssemblyPaths ParameterType="Microsoft.Build.Framework.ITaskItem[]" Output="true" />
+ </ParameterGroup>
+ <Task>
+ <Using Namespace="System"/>
+ <Using Namespace="System.IO"/>
+ <Using Namespace="System.Collections.Generic"/>
+ <Code Type="Fragment" Language="cs">
+ <![CDATA[
+ var uniqueAssemblyPathsList = new List<Microsoft.Build.Framework.ITaskItem>();
+ var dupeSet = new HashSet<string>();
+ foreach(var dupe in DuplicateAssemblies)
+ {
+ dupeSet.Add(dupe.GetMetadata("Identity"));
+ }
+ foreach(var assemPath in AssemblyPaths)
+ {
+ if((dupeSet.Contains(assemPath.GetMetadata("FileName")+assemPath.GetMetadata("Extension")) &&
+ !(assemPath.GetMetadata("Identity").StartsWith("runtime"))))
+ {
+ Log.LogMessage("Duplicate assembly filtered: {0}", assemPath.GetMetadata("Identity"));
+ }
+ else
+ {
+ uniqueAssemblyPathsList.Add(assemPath);
+ }
+
+ }
+ uniqueAssemblyPaths = uniqueAssemblyPathsList.ToArray();
+ ]]>
+ </Code>
+ </Task>
+ </UsingTask>
+
+
<UsingTask TaskName="GetPerfTestAssemblies" AssemblyFile="$(ToolsDir)net45/Microsoft.DotNet.Build.CloudTestTasks.dll"/>
<Import Project="$(ToolsDir)publishtest.targets" />
<Import Project="$(ToolsDir)CloudTest.targets" />
@@ -8,7 +47,6 @@
<TestBinary Include="$(BinDir)**/*.dll" />
<TestBinary Include="$(BinDir)**/*.exe" />
</ItemGroup>
-
<!-- Get full paths to each of the perf test directories -->
<GetPerfTestAssemblies TestBinaries="@(TestBinary)" GetFullPaths="true">
<Output TaskParameter="PerfTestAssemblies" ItemName="CoreCLRPerfTest" />
@@ -33,6 +71,30 @@
</Target>
+ <Target Name="RunTestsForProject">
+ <Message Text="This is a dummy target to appease DependsOnTargets for ArchiveTestBuild in publishtest.targets" Importance="Low" />
+ </Target>
+
+ <!-- CoreCLR builds do not generate dependency lists yet, we need to archive the whole packages dir so that tests can find dependencies -->
+ <!-- compress the required files from the packages dir in preparation for uploading -->
+ <Target Name="CompressPackagesDir">
+ <ItemGroup>
+ <ExcludeFromArchive Include="nupkg$" />
+ <ExcludeFromArchive Include="Microsoft.DotNet.BuildTools" />
+ <ExcludeFromArchive Include="TestData" />
+ </ItemGroup>
+ <ZipFileCreateFromDirectory
+ SourceDirectory="$(PackagesDir)"
+ DestinationArchive="$(PackagesArchiveFile)"
+ ExcludePatterns="@(ExcludeFromArchive)"
+ OverwriteDestination="true" />
+ <ItemGroup>
+ <ForUpload Include="$(PackagesArchiveFile)">
+ <RelativeBlobPath>$(Platform)$(ConfigurationGroup)/$(PackagesArchiveFilename)</RelativeBlobPath>
+ </ForUpload>
+ </ItemGroup>
+ </Target>
+
<Target Name="_zipSingleProject">
<PropertyGroup>
<OutDir>$([System.IO.Path]::GetDirectoryName($(CurrPerfAssembly)))/</OutDir>
@@ -57,18 +119,18 @@
TargetMonikers="@(TestTargetFramework)">
<Output TaskParameter="ResolvedCopyLocalItems" ItemName="RequiredAssemblies" />
</PrereleaseResolveNuGetPackageAssets>
+
+
<ItemGroup>
<AssemblyPaths Include="$([MSBuild]::MakeRelative($(PackagesDir), %(RequiredAssemblies.FullPath)))" />
+ <AssemblyFiles Include="@(RequiredAssemblies->'%(FileName)%(Extension)')"></AssemblyFiles>
+ <DupeAssemblies Include="%(AssemblyFiles.Identity)" Condition="'@(AssemblyFiles->Count())' &gt; 1"> </DupeAssemblies>
</ItemGroup>
- <RemoveDuplicatesWithLastOneWinsPolicy Inputs="@(AssemblyPaths)">
- <Output TaskParameter="Filtered" ItemName="UniqueAssemblyPaths" />
- </RemoveDuplicatesWithLastOneWinsPolicy>
- <PropertyGroup>
- <_TestCopyLocalByFileNameWithoutDuplicates></_TestCopyLocalByFileNameWithoutDuplicates>
- </PropertyGroup>
- <ItemGroup>
- <UniqueAssemblyPaths Include="$([System.String]::Copy('%(_TestCopyLocalByFileNameWithoutDuplicates.SourcePath)').Replace('$(PackagesDir)',''))" Condition="'%(_TestCopyLocalByFileNameWithoutDuplicates.NugetPackageId)' != ''" />
- </ItemGroup>
+ <!-- There are duplicate dependency assemblies calculated for some projects that we need to fix, this is check/fix to weed out duplicates -->
+ <RemoveDuplicateAssemblies AssemblyPaths="@(AssemblyPaths)" DuplicateAssemblies="@(DupeAssemblies)">
+ <Output TaskParameter="UniqueAssemblyPaths" ItemName="UniqueAssemblyPaths" />
+ </RemoveDuplicateAssemblies>
+
<WriteLinesToFile
File="$(OutDir)/assemblylist.flat.txt"
Lines="@(UniqueAssemblyPaths)"
@@ -81,6 +143,6 @@
/>
<Message Text="Archiving Perf test assemblies for project: $(OutDir)" Importance="High" />
- <MSBuild Projects="$(MSBuildProjectFile)" Properties="OutDir=$(OutDir);TestArchiveDir=$(TestArchiveDir);TestProjectName=$(TestProjectName);DisableCopyTestToTestDirectory=true" Targets="ArchiveTestBuild"/>
+ <MSBuild Projects="$(MSBuildProjectFile)" Properties="OutDir=$(OutDir);TestArchiveDir=$(TestArchiveDir);TestProjectName=$(TestProjectName)" Targets="ArchiveTestBuild"/>
</Target>
</Project> \ No newline at end of file
diff --git a/tests/src/GC/Performance/README.md b/tests/src/GC/Performance/README.md
index 239b5df97e..c38e9c71e0 100644
--- a/tests/src/GC/Performance/README.md
+++ b/tests/src/GC/Performance/README.md
@@ -1,6 +1,6 @@
# CLR Garbage Collector Performance Tests
This folder houses both the test framework and test artifacts for performance tests
-targeting the garbage collector. These tests are run using the
+targeting the garbage collector. These tests are run using the
[xunit-performance](https://github.com/Microsoft/xunit-performance) performance testing
framework and can be used with the standard tools provided by that repository.
@@ -40,10 +40,10 @@ mkdir sandbox
pushd sandbox
REM Get the xunit-performance console runner
-xcopy /sy C:\<path_to_your_coreclr>\coreclr\packages\Microsoft.DotNet.xunit.performance.runner.Windows\1.0.0-alpha-build0029\tools\* .
+xcopy /sy C:\<path_to_your_coreclr>\coreclr\packages\Microsoft.DotNet.xunit.performance.runner.Windows\1.0.0-alpha-build0035\tools\* .
REM Get the xunit-performance analysis engine
-xcopy /sy C:\<path_to_your_coreclr>\coreclr\packages\Microsoft.DotNet.xunit.performance.analysis\1.0.0-alpha-build0029\tools\* .
+xcopy /sy C:\<path_to_your_coreclr>\coreclr\packages\Microsoft.DotNet.xunit.performance.analysis\1.0.0-alpha-build0035\tools\* .
REM Get the xunit console runner
xcopy /sy C:\<path_to_your_coreclr>\coreclr\packages\xunit.runner.console\2.1.0\tools\* .
diff --git a/tests/src/JIT/config/benchmark+roslyn/project.json b/tests/src/JIT/config/benchmark+roslyn/project.json
index 2c9a438c97..6478b3a7c4 100644
--- a/tests/src/JIT/config/benchmark+roslyn/project.json
+++ b/tests/src/JIT/config/benchmark+roslyn/project.json
@@ -1,9 +1,9 @@
{
"dependencies": {
"Microsoft.CodeAnalysis.Compilers": "1.1.1",
- "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0029",
- "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0029",
- "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0029",
+ "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0035",
+ "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0035",
+ "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0035",
"Microsoft.NETCore.Platforms": "1.0.1-rc3-24117-00",
"System.Console": "4.0.0-rc3-24117-00",
"System.Dynamic.Runtime": "4.0.11-rc3-24117-00",
diff --git a/tests/src/JIT/config/benchmark+serialize/project.json b/tests/src/JIT/config/benchmark+serialize/project.json
index c2d6616417..580207661b 100644
--- a/tests/src/JIT/config/benchmark+serialize/project.json
+++ b/tests/src/JIT/config/benchmark+serialize/project.json
@@ -1,8 +1,8 @@
{
"dependencies": {
- "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0029",
- "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0029",
- "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0029",
+ "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0035",
+ "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0035",
+ "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0035",
"Microsoft.NETCore.Platforms": "1.0.1-rc3-24117-00",
"Newtonsoft.Json": "7.0.1",
"System.Console": "4.0.0-rc3-24117-00",
diff --git a/tests/src/JIT/config/benchmark/project.json b/tests/src/JIT/config/benchmark/project.json
index a5a386e990..c2eefa033e 100644
--- a/tests/src/JIT/config/benchmark/project.json
+++ b/tests/src/JIT/config/benchmark/project.json
@@ -1,8 +1,8 @@
{
"dependencies": {
- "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0029",
- "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0029",
- "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0029",
+ "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0035",
+ "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0035",
+ "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0035",
"Microsoft.NETCore.Platforms": "1.0.1-rc3-24117-00",
"System.Collections.NonGeneric": "4.0.1-rc3-24117-00",
"System.Console": "4.0.0-rc3-24117-00",
diff --git a/tests/src/performance/perflab/project.json b/tests/src/performance/perflab/project.json
index 0f62d1c115..0c14b5f153 100644
--- a/tests/src/performance/perflab/project.json
+++ b/tests/src/performance/perflab/project.json
@@ -1,8 +1,8 @@
{
"dependencies": {
- "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0029",
- "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0029",
- "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0029",
+ "Microsoft.DotNet.xunit.performance": "1.0.0-alpha-build0035",
+ "Microsoft.DotNet.xunit.performance.analysis": "1.0.0-alpha-build0035",
+ "Microsoft.DotNet.xunit.performance.runner.Windows": "1.0.0-alpha-build0035",
"Microsoft.NETCore.Platforms": "1.0.1-rc3-24117-00",
"System.Console": "4.0.0-rc3-24117-00",
"System.IO.FileSystem": "4.0.1-rc3-24117-00",