summaryrefslogtreecommitdiff
path: root/.packages/microsoft.dotnet.buildtools/3.0.0-preview4-04022-01/lib/CodeCoverage.targets
diff options
context:
space:
mode:
Diffstat (limited to '.packages/microsoft.dotnet.buildtools/3.0.0-preview4-04022-01/lib/CodeCoverage.targets')
-rwxr-xr-x.packages/microsoft.dotnet.buildtools/3.0.0-preview4-04022-01/lib/CodeCoverage.targets259
1 files changed, 259 insertions, 0 deletions
diff --git a/.packages/microsoft.dotnet.buildtools/3.0.0-preview4-04022-01/lib/CodeCoverage.targets b/.packages/microsoft.dotnet.buildtools/3.0.0-preview4-04022-01/lib/CodeCoverage.targets
new file mode 100755
index 0000000000..8d0f3576ed
--- /dev/null
+++ b/.packages/microsoft.dotnet.buildtools/3.0.0-preview4-04022-01/lib/CodeCoverage.targets
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <!--
+ Code coverage package versions go here and in the test-runtime-packages.config
+ -->
+ <PropertyGroup>
+ <OpenCoverVersion>4.6.519</OpenCoverVersion>
+ <CoverletMsbuildVersion>2.3.0</CoverletMsbuildVersion>
+ <ReportGeneratorVersion>3.0.1</ReportGeneratorVersion>
+ <CoverallsUploaderVersion>1.4</CoverallsUploaderVersion>
+ </PropertyGroup>
+
+ <!-- Coverage options -->
+ <PropertyGroup>
+ <CodeCoverageEnabled Condition="'$(CodeCoverageEnabled)' == '' and '$(SkipTests)' != 'true' and '$(Coverage)' == 'true' and '$(IsPerformanceTestProject)' != 'true'">true</CodeCoverageEnabled>
+ <CodeCoverageEnabled Condition="'$(CodeCoverageEnabled)' == ''">false</CodeCoverageEnabled>
+ <UseCoverlet Condition="'$(Coverage)' == 'true' and ('$(RunningOnUnix)' == 'true' or '$(UseCoverlet)' == 'true')">true</UseCoverlet>
+ <CoverageReportDir Condition="'$(CoverageReportDir)' == ''">$(TestWorkingDir)coverage\</CoverageReportDir>
+
+ <UseCoverageDedicatedRuntime Condition="'$(UseCoverageDedicatedRuntime)' == ''">true</UseCoverageDedicatedRuntime>
+ <CoverageDedicatedRuntimeDir>$(TestHostRootPath)shared/Microsoft.NETCore.App/10.10.10</CoverageDedicatedRuntimeDir>
+
+ <!-- This targets file has two modes one for individual projects and one for all -->
+ <GenerateCodeCoverageReportForAll Condition="'$(GenerateCodeCoverageReportForAll)'==''">false</GenerateCodeCoverageReportForAll>
+ <CoverageEnabledForProject Condition="'$(GenerateCodeCoverageReportForAll)'=='true'">false</CoverageEnabledForProject>
+ <CoverageEnabledForProject Condition="'$(CoverageEnabledForProject)'=='' and '$(IsTestProject)'=='true'">$(CodeCoverageEnabled)</CoverageEnabledForProject>
+
+ <GenerateIndividualCoverageReport Condition="'$(BuildAllProjects)'!='true' and '$(CoverageEnabledForProject)'=='true'">true</GenerateIndividualCoverageReport>
+ <GenerateFullCoverageReport Condition="'$(GenerateCodeCoverageReportForAll)'=='true' and '$(CodeCoverageEnabled)'=='true' and '$(SkipFullCoverageReport)' != 'true'">true</GenerateFullCoverageReport>
+ <GenerateVisitedMethodsReport Condition="'$(GenerateCodeCoverageReportForAll)'=='true' and '$(CodeCoverageEnabled)'=='true' and '$(GenerateVisitedReport)' == 'true'">true</GenerateVisitedMethodsReport>
+
+ <!--
+ When coverage is enabled, we disallow building projects in parallel.
+ There appear to be issues with the OpenCover tool in these scenarios.
+ -->
+ <SerializeProjects Condition="'$(CodeCoverageEnabled)'=='true'">true</SerializeProjects>
+ </PropertyGroup>
+
+ <!--
+ We need to filter the data to only the assembly being tested. Otherwise we will gather tons of data about other assemblies.
+ If the code being tested is part of the runtime itself, it requires special treatment.
+ -->
+ <PropertyGroup Condition="'$(AssemblyBeingTestedName)'==''">
+ <_ProjectDirectoryUnderSourceDir Condition="'$(IsTestProject)' == 'true'">$(MSBuildProjectDirectory.SubString($(SourceDir.Length)))</_ProjectDirectoryUnderSourceDir>
+ <AssemblyBeingTestedName Condition="'$(IsTestProject)' == 'true'">$(_ProjectDirectoryUnderSourceDir.SubString(0, $(_ProjectDirectoryUnderSourceDir.IndexOfAny("\\/"))))</AssemblyBeingTestedName>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(GenerateFullCoverageReport)'=='true'">
+ <GenerateFullCoverageReportAfterTargets Condition="'$(GenerateFullCoverageReportAfterTargets)'==''">TestAllProjects</GenerateFullCoverageReportAfterTargets>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(UseCoverlet)'=='true'">
+ <CoverletOutputFormat Condition="$(CoverletOutputFormat) == ''">opencover</CoverletOutputFormat>
+ <CoverletOutputDirectory Condition="$(CoverletOutputDirectory) == ''">$(CoverageReportDir)</CoverletOutputDirectory>
+ <CoverletOutputName Condition=" '$(CoverletOutputName)' == '' ">$(MSBuildProjectName).coverlet</CoverletOutputName>
+ <CoverletOutput>$([MSBuild]::EnsureTrailingSlash('$(CoverletOutputDirectory)'))$(CoverletOutputName).xml</CoverletOutput>
+ <CoverageOutputFilePath>$(CoverletOutput)</CoverageOutputFilePath>
+ <ExcludeByFile Condition="$(ExcludeByFile) == ''">$(SourceDir)Common/src/System/SR.*</ExcludeByFile>
+ <Threshold Condition="$(Threshold) == ''">0</Threshold>
+ <ThresholdType Condition="$(ThresholdType) == ''">line,branch,method</ThresholdType>
+ <CollectCoverage Condition="$(CollectCoverage) == ''">$(CodeCoverageEnabled)</CollectCoverage>
+ </PropertyGroup>
+
+ <UsingTask Condition="'$(UseCoverlet)'=='true'" TaskName="Coverlet.MSbuild.Tasks.InstrumentationTask" AssemblyFile="$(PackagesDir)coverlet.msbuild/$(CoverletMsbuildVersion)/build/netstandard2.0/coverlet.msbuild.tasks.dll" />
+ <UsingTask Condition="'$(UseCoverlet)'=='true'" TaskName="Coverlet.MSbuild.Tasks.CoverageResultTask" AssemblyFile="$(PackagesDir)coverlet.msbuild/$(CoverletMsbuildVersion)/build/netstandard2.0/coverlet.msbuild.tasks.dll" />
+
+ <Target Condition="'$(UseCoverlet)'=='true'" Name="GenerateCoverageResult" AfterTargets="$(GenerateIndividualCoverageReportAfterTargets)">
+ <Coverlet.MSbuild.Tasks.CoverageResultTask
+ Condition="'$(CollectCoverage)' == 'true'"
+ Output="$(CoverletOutput)"
+ OutputFormat="$(CoverletOutputFormat)"
+ Threshold="$(Threshold)"
+ ThresholdType="$(ThresholdType)" />
+ </Target>
+
+ <Target Name="CreateCoverageFilter" BeforeTargets="GenerateTestExecutionScripts">
+ <!-- By default, code coverage data is only gathered for the assembly being tested.
+ CodeCoverageAssemblies can be passed in to the build to gather coverage on additional assemblies. -->
+ <ItemGroup>
+ <_CodeCoverageAssemblies Include="$(AssemblyBeingTestedName)" />
+ <_CodeCoverageAssemblies Include="System.Private.CoreLib" Condition="'$(TestRuntime)' == 'true' and ('$(TargetGroup)' == 'netcoreapp' or '$(TargetGroup)' == 'netstandard')" />
+ <_CodeCoverageAssemblies Include="@(AdditionalCodeCoverageAssemblies)" />
+ <_CodeCoverageAssemblies Include="$(CodeCoverageAssemblies)" Condition="'$(CodeCoverageAssemblies)' != ''" />
+ </ItemGroup>
+ <PropertyGroup>
+ <CoverageFilter Condition="'$(UseCoverlet)'!='true'">@(_CodeCoverageAssemblies->'+[%(Identity)]*', ' ')</CoverageFilter>
+ <CoverageFilter Condition="'$(UseCoverlet)'=='true'">@(_CodeCoverageAssemblies->'[%(Identity)]*', ',')</CoverageFilter>
+ <CoverageFilter Condition="'$(CodeCoverageAssemblies)' == 'all'">[*]*</CoverageFilter>
+ </PropertyGroup>
+ </Target>
+
+ <Target Name="CreateCoverageDedicatedRuntime"
+ BeforeTargets="GenerateTestExecutionScripts"
+ Condition="'$(CodeCoverageEnabled)'=='true' and '$(UseCoverageDedicatedRuntime)'=='true'">
+ <PropertyGroup>
+ </PropertyGroup>
+ <ItemGroup>
+ <_RuntimeFiles Include="$(NETCoreAppTestSharedFrameworkPath)/*.*" />
+ <RuntimeFiles Include="%(_RuntimeFiles.Identity)" Condition="!Exists('$(NETCoreAppTestSharedFrameworkPath)il/%(Filename)%(Extension)')" />
+ <RuntimeFiles Include="$(NETCoreAppTestSharedFrameworkPath)il/*.*" />
+ <RuntimeFilesAmd64 Include="$(NETCoreAppTestSharedFrameworkPath)amd64/*.*" />
+ <RuntimeFilesx86 Include="$(NETCoreAppTestSharedFrameworkPath)x86/*.*" />
+ </ItemGroup>
+ <Copy SourceFiles="@(RuntimeFiles)"
+ DestinationFolder="$(CoverageDedicatedRuntimeDir)"
+ SkipUnchangedFiles="true"
+ UseHardlinksIfPossible="false" />
+ <Copy SourceFiles="@(RuntimeFilesAmd64)"
+ DestinationFolder="$(CoverageDedicatedRuntimeDir)/amd64/"
+ SkipUnchangedFiles="true"
+ UseHardlinksIfPossible="false" />
+ <Copy SourceFiles="@(RuntimeFilesx86)"
+ DestinationFolder="$(CoverageDedicatedRuntimeDir)/x86/"
+ SkipUnchangedFiles="true"
+ UseHardlinksIfPossible="false" />
+ </Target>
+
+ <!-- *********************************************************************************************** -->
+ <!-- As of 10/2017 OpenCover does not support portable PDBs, but we want the builds to generate
+ portable PDBs. Thus we generate windows PDBs from portable PDBs here. Can be removed
+ when OpenCover directly supports Portable PDBs (probably by early 2018) -->
+
+ <Choose>
+ <When Condition="'$(UseCoverageDedicatedRuntime)'=='true'">
+ <PropertyGroup>
+ <CoverageRuntimeDir>$(CoverageDedicatedRuntimeDir)</CoverageRuntimeDir>
+ </PropertyGroup>
+ </When>
+ <Otherwise>
+ <PropertyGroup>
+ <CoverageRuntimeDir>$(NETCoreAppTestSharedFrameworkPath)</CoverageRuntimeDir>
+ </PropertyGroup>
+ </Otherwise>
+ </Choose>
+
+ <Target Name="GenerateWindowsPdbsForAssemblyBeingTested"
+ BeforeTargets="GenerateTestExecutionScripts"
+ Condition="'$(CodeCoverageEnabled)' == 'true' and '$(TargetOS)'=='Windows_NT' and '$(UseCoverlet)'!='true'">
+
+ <!-- We look for the DLL being tested for coverage and its PDB create a WindowsPDB\*.pdb which has
+ the windows PDB. -->
+ <ItemGroup>
+ <CandidateAssemblies Include="@(_CodeCoverageAssemblies -> '$(CoverageRuntimeDir)/%(Identity)')" />
+
+ <ExistingPortableDllsToConvert
+ Include="@(CandidateAssemblies -> '%(Identity).dll' )"
+ Condition="Exists('%(CandidateAssemblies.Identity).dll') AND Exists('%(CandidateAssemblies.Identity).pdb')">
+ <PdbPath>%(Identity).pdb</PdbPath>
+ <TargetPath>%(RootDir)/%(Directory)WindowsPDB/%(Filename)%(Extension).pdb</TargetPath>
+ </ExistingPortableDllsToConvert>
+ </ItemGroup>
+
+ <!-- There are two file in CoreFX, (System.Security.Permissions and Microsoft.Win32.Registry.AccessControl.pdb)
+ are generated by the GenFacades task and lack a Debug diretory (see https://github.com/dotnet/buildtools/issues/1739)
+ This causes ConvertPortablePdbsToWindowsPdbs to fail. Work around it right now by using WarnAndContinue
+ Soon we won't need this code, (since OpenCover will support portable PDBs) so it is OK to just give up for now. -->
+ <ConvertPortablePdbsToWindowsPdbs Files="@(ExistingPortableDllsToConvert)" ContinueOnError="WarnAndContinue"/>
+
+ <!-- This is a work around because it seems that OpenCover does not seem to accept the PDB unless
+ it is right next to the DLL it is for. (-searchDir:XXX does not seem to work).
+ This code puts next to the DLL as a work-around. However doing thi also clobbers
+ the original portable PDB in the runtime directory in the process. I don't like this but
+ it does unblock things and this is all intended to be temporary until OpenCover supports
+ portable PDBs directly -->
+ <Message Importance="high" Text="Replacing Portable PDB with Windows Pdb in place!" />
+ <Copy SourceFiles="%(ExistingPortableDllsToConvert.TargetPath)" DestinationFolder="$(CoverageRuntimeDir)" Condition="Exists('%(ExistingPortableDllsToConvert.TargetPath)')"/>
+ </Target>
+ <!-- *********************************************************************************************** -->
+
+ <Target Name="InstrumentModulesAfterBuild" BeforeTargets="GenerateTestExecutionScripts" Condition="'$(UseCoverlet)'=='true'">
+ <Coverlet.MSbuild.Tasks.InstrumentationTask
+ Condition="'$(CollectCoverage)' == 'true'"
+ Include="$(CoverageFilter)"
+ ExcludeByFile="$(ExcludeByFile)"
+ Path="$(CoverageRuntimeDir)/" />
+ </Target>
+
+ <!-- xUnit command line with coverage enabled using OpenCover -->
+ <PropertyGroup Condition="'$(CoverageEnabledForProject)'=='true' and '$(UseCoverlet)'!='true'">
+ <CoverageHost>$(PackagesDir)OpenCover\$(OpenCoverVersion)\tools\OpenCover.Console.exe</CoverageHost>
+ <CoverageOutputFilePath>$(CoverageReportDir)$(MSBuildProjectName).coverage.xml</CoverageOutputFilePath>
+ <CoverageOptions>-oldStyle -filter:"{CoverageFilter}" -excludebyfile:"*\Common\src\System\SR.*" -nodefaultfilters -excludebyattribute:*.ExcludeFromCodeCoverage* -skipautoprops -hideskipped:All -threshold:1</CoverageOptions>
+ <CoverageCommandLine>$(CoverageOptions) -returntargetcode -register:user -target:$(TestProgram) -output:$(CoverageOutputFilePath)</CoverageCommandLine>
+ <TestCommandLine>$(CoverageHost) $(CoverageCommandLine) -targetargs:"$(TestArguments) {XunitTraitOptions} -notrait Benchmark=true"</TestCommandLine>
+ </PropertyGroup>
+
+ <!-- Report Generator Properties -->
+ <PropertyGroup>
+ <CoverageReportAssemblyFilters Condition="'$(CodeCoverageAssemblies)' != 'all'">"-assemblyfilters:@(_CodeCoverageAssemblies->'+%(Identity)', ';')"</CoverageReportAssemblyFilters>
+ <CoverageReportGeneratorOptions>-targetdir:$(CoverageReportDir) "-reporttypes:Html;Badges" $(CoverageReportAssemblyFilters)</CoverageReportGeneratorOptions>
+ <CoverageReportTool>$(PackagesDir)ReportGenerator\$(ReportGeneratorVersion)\tools\ReportGenerator.exe</CoverageReportTool>
+ <CoverageReportTool Condition="'$(RunningOnUnix)' == 'true'">reportgenerator</CoverageReportTool>
+ <CoverageReportGeneratorCommandLine>$(CoverageReportTool) $(CoverageReportGeneratorOptions)</CoverageReportGeneratorCommandLine>
+ <CoverageInputFilter>*.coverage.xml</CoverageInputFilter>
+ <CoverageInputFilter Condition="'$(UseCoverlet)'=='true'">*.coverlet.xml</CoverageInputFilter>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(GenerateIndividualCoverageReport)'=='true'">
+ <GenerateIndividualCoverageReportAfterTargets Condition="'$(GenerateIndividualCoverageReportAfterTargets)'==''">RunTestsForProject</GenerateIndividualCoverageReportAfterTargets>
+ </PropertyGroup>
+
+ <!-- Generate coverage reports for individual projects. -->
+ <Target Name="GenerateIndividualCoverageReport"
+ AfterTargets="$(GenerateIndividualCoverageReportAfterTargets)"
+ Inputs="$(CoverageOutputFilePath)"
+ Outputs="$(CoverageReportDir)index.htm"
+ Condition="'$(GenerateIndividualCoverageReport)'=='true'">
+
+ <Exec Command="$(CoverageReportGeneratorCommandLine) -reports:$(CoverageOutputFilePath)"
+ ContinueOnError="ErrorAndContinue" />
+
+ <Exec Command="start $(CoverageReportDir)index.htm"
+ Condition="'$(PopCoverageReport)' == 'true'" />
+
+ </Target>
+
+ <!-- Generate coverage report for all the projects. -->
+ <Target Name="GenerateFullCoverageReport"
+ AfterTargets="$(GenerateFullCoverageReportAfterTargets)"
+ Inputs="$(CoverageReportDir)\$(CoverageInputFilter)"
+ Outputs="$(CoverageReportDir)index.htm"
+ Condition="'$(GenerateFullCoverageReport)'=='true'">
+
+ <Exec Command="$(CoverageReportGeneratorCommandLine) -reports:$(CoverageReportDir)\$(CoverageInputFilter)"
+ ContinueOnError="ErrorAndContinue"
+ WorkingDirectory="$(ProjectDir)" />
+
+ <Exec Command="start $(CoverageReportDir)index.htm"
+ Condition="'$(PopCoverageReport)' == 'true'" />
+
+ <PropertyGroup>
+ <CoverallsUploaderCommandLine>$(PackagesDir)coveralls.io.$(CoverallsUploaderVersion)\tools\coveralls.net.exe</CoverallsUploaderCommandLine>
+ <CoverallsUploaderOptions>--opencover $(CoverageReportDir)\$(CoverageInputFilter) --repo-token $(CoverallsToken)</CoverallsUploaderOptions>
+ </PropertyGroup>
+
+ <Exec Command="$(CoverallsUploaderCommandLine) $(CoverallsUploaderOptions)"
+ ContinueOnError="ErrorAndContinue"
+ WorkingDirectory="$(ProjectDir)"
+ Condition="'$(UploadCoverallsData)'=='true'" />
+
+ </Target>
+
+ <UsingTask TaskName="ParseTestCoverageInfo" AssemblyFile="$(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll"/>
+
+ <!-- Generates VisitedMethodsReport.xml -->
+ <Target Name="GenerateVisitedReport"
+ AfterTargets="Test"
+ Condition="'$(GenerateVisitedMethodsReport)' == 'true'"
+ Inputs="$(CoverageReportDir)$(CoverageInputFilter)"
+ Outputs="$(CoverageReportDir)\VisitedMethodsReport.xml">
+ <ItemGroup>
+ <Reports Include="$(CoverageReportDir)$(CoverageInputFilter)"/>
+ </ItemGroup>
+ <ParseTestCoverageInfo CoverageReports="@(Reports)"
+ OutputReport="$(CoverageReportDir)\VisitedMethodsReport.xml"/>
+ </Target>
+
+</Project>