merging perf tests and perf shared tests (#1840)

* Merging perf.tests and perf.shared.tests

* updating web sln

* adding netcoreapp2.1 and 3.1
This commit is contained in:
Eddy Nakamura 2020-04-30 22:10:10 -03:00 коммит произвёл GitHub
Родитель 62847cad35
Коммит 9637b12f97
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
54 изменённых файлов: 139 добавлений и 246 удалений

Просмотреть файл

@ -111,8 +111,6 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared.NetStandard20",
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared.NetStandard20Net45", "WEB\Src\PerformanceCollector\Perf.Shared.NetStandard20Net45\Perf.Shared.NetStandard20Net45.shproj", "{054C25DC-E545-4712-95C4-81F30CF65CE8}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared.Tests", "WEB\Src\PerformanceCollector\Perf.Shared.Tests\Perf.Shared.Tests.shproj", "{9B524BD3-682D-4B6F-9251-D4B2911DF0FD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "L) GenericTests", "L) GenericTests", "{D2A0AA36-57F7-436C-A7AF-7322927F1734}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xdt.Tests", "LOGGING\test\Xdt.Tests\Xdt.Tests.csproj", "{262792BF-31A8-4FCD-BBC7-341EB29FAE96}"
@ -171,7 +169,6 @@ Global
LOGGING\src\CommonShared\CommonShared.projitems*{1b0f54bf-078a-421c-9708-2d817d4bce30}*SharedItemsImports = 5
LOGGING\src\EventSource.Shared\EventSource.Shared\EventSource.Shared.projitems*{1b0f54bf-078a-421c-9708-2d817d4bce30}*SharedItemsImports = 5
LOGGING\src\CommonShared\CommonShared.projitems*{2612ac44-5ff3-4533-b5a5-e5dbf96f5c83}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared.Tests\Perf.Shared.Tests.projitems*{27b8d7be-8cb7-48bf-97da-0f031103c03d}*SharedItemsImports = 5
WEB\Src\TestFramework\Shared\TestFramework.Shared.projitems*{27b8d7be-8cb7-48bf-97da-0f031103c03d}*SharedItemsImports = 5
LOGGING\src\CommonShared\CommonShared.projitems*{2e283031-425b-421f-9e81-34abfefab618}*SharedItemsImports = 5
LOGGING\test\CommonTestShared\CommonTestShared.projitems*{305f1c02-f984-43e7-a07e-e2514cfe29a0}*SharedItemsImports = 5
@ -201,7 +198,6 @@ Global
WEB\Src\TestFramework\Shared\TestFramework.Shared.projitems*{9718f051-147f-4f5f-9ff3-c926430efcf7}*SharedItemsImports = 13
LOGGING\test\CommonTestShared\CommonTestShared.projitems*{9ad802d5-ca3b-4367-bf52-a892fd7c3a0c}*SharedItemsImports = 5
LOGGING\test\Shared\Adapters.Shared.Tests.projitems*{9ad802d5-ca3b-4367-bf52-a892fd7c3a0c}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared.Tests\Perf.Shared.Tests.projitems*{9b524bd3-682d-4b6f-9251-d4b2911df0fd}*SharedItemsImports = 13
WEB\Src\Common\Common.projitems*{9dc5c5e5-fc37-4e54-81fd-aa42bb934e9b}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Filtering.Shared\Filtering.Shared.projitems*{9dc5c5e5-fc37-4e54-81fd-aa42bb934e9b}*SharedItemsImports = 5
WEB\Src\PerformanceCollector\Perf.Shared.NetFull\Perf.Shared.NetFull.projitems*{9dc5c5e5-fc37-4e54-81fd-aa42bb934e9b}*SharedItemsImports = 5
@ -440,7 +436,6 @@ Global
{76B21FAA-270D-47DE-B14B-BEC87EDC34F1} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{A8BA3BD0-19CE-488D-B2BD-0B9B677F4E03} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{054C25DC-E545-4712-95C4-81F30CF65CE8} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{9B524BD3-682D-4B6F-9251-D4B2911DF0FD} = {3EDBC945-E531-4CEE-A038-A6AE1EF9AA96}
{262792BF-31A8-4FCD-BBC7-341EB29FAE96} = {D2A0AA36-57F7-436C-A7AF-7322927F1734}
{058A0843-A95F-4B0D-91DB-33B9D3FD7324} = {E9AEB857-E8AA-4ED6-A020-DF4D8486CEB0}
{B90EDEA5-3CC8-4282-80A0-7116905E2427} = {D8483C3E-C386-48AD-B935-700A54FDCF31}

Просмотреть файл

@ -39,8 +39,6 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared", "PerformanceC
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Filtering.Shared", "PerformanceCollector\Filtering.Shared\Filtering.Shared.shproj", "{568AEB4F-BA4C-47A5-9FA3-68F06CD11FED}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perf.Shared.Tests", "PerformanceCollector\Perf.Shared.Tests\Perf.Shared.Tests.shproj", "{9B524BD3-682D-4B6F-9251-D4B2911DF0FD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HostingStartup", "HostingStartup\HostingStartup\HostingStartup.csproj", "{80F0481A-66C7-4442-96D3-5FD841132C4B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WindowsServer", "WindowsServer\WindowsServer\WindowsServer.csproj", "{94127FD9-E516-4891-98D4-EF7523117F32}"
@ -105,7 +103,6 @@ Global
TestFramework\Shared\TestFramework.Shared.projitems*{9718f051-147f-4f5f-9ff3-c926430efcf7}*SharedItemsImports = 13
DependencyCollector\Shared.Tests\DependencyCollector.Shared.Tests.projitems*{9853a2a5-fd6c-4743-927e-0bfe807ad21c}*SharedItemsImports = 5
TestFramework\Shared\TestFramework.Shared.projitems*{9853a2a5-fd6c-4743-927e-0bfe807ad21c}*SharedItemsImports = 5
PerformanceCollector\Perf.Shared.Tests\Perf.Shared.Tests.projitems*{9b524bd3-682d-4b6f-9251-d4b2911df0fd}*SharedItemsImports = 13
PerformanceCollector\Perf.Shared\Perf.Shared.projitems*{a78f50d4-f518-4dcb-878b-526fd54cca35}*SharedItemsImports = 13
PerformanceCollector\Perf.Shared.NetStandard20\Perf.Shared.NetStandard20.projitems*{a8ba3bd0-19ce-488d-b2bd-0b9b677f4e03}*SharedItemsImports = 13
DependencyCollector\Shared.Tests\DependencyCollector.Shared.Tests.projitems*{ace58393-3419-4fca-87cc-c33eb756c7e4}*SharedItemsImports = 13
@ -113,7 +110,6 @@ Global
Common\Common.projitems*{ccab7a34-8dc5-4a6f-b637-46ceba93c687}*SharedItemsImports = 13
PerformanceCollector\Perf.Shared.NetStandard\Perf.Shared.NetStandard.projitems*{d13c3ec7-b300-4158-9054-216156b203be}*SharedItemsImports = 13
Common\Common.projitems*{e166d200-0687-4e6d-b836-029ae690aeab}*SharedItemsImports = 5
PerformanceCollector\Perf.Shared.Tests\Perf.Shared.Tests.projitems*{e31b7a59-5e13-48bb-8127-d11d41ef16c5}*SharedItemsImports = 5
TestFramework\Shared\TestFramework.Shared.projitems*{e31b7a59-5e13-48bb-8127-d11d41ef16c5}*SharedItemsImports = 5
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -253,7 +249,6 @@ Global
{C6B569BC-6F19-42C9-A951-DA611BB0F4BE} = {A318CC6C-51C8-4BD6-BC85-2B4F35123BE7}
{A78F50D4-F518-4DCB-878B-526FD54CCA35} = {A318CC6C-51C8-4BD6-BC85-2B4F35123BE7}
{568AEB4F-BA4C-47A5-9FA3-68F06CD11FED} = {A318CC6C-51C8-4BD6-BC85-2B4F35123BE7}
{9B524BD3-682D-4B6F-9251-D4B2911DF0FD} = {A318CC6C-51C8-4BD6-BC85-2B4F35123BE7}
{80F0481A-66C7-4442-96D3-5FD841132C4B} = {701D2D4F-B581-45A2-AF29-4F34EC5F047B}
{94127FD9-E516-4891-98D4-EF7523117F32} = {D87119AF-CD35-46F2-84A6-ED54CC42027E}
{E166D200-0687-4E6D-B836-029AE690AEAB} = {1A75535C-B8E5-4C31-BC6E-50456C8C4052}

Просмотреть файл

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<HasSharedItems>true</HasSharedItems>
<SharedGUID>9b524bd3-682d-4b6f-9251-d4b2911df0fd</SharedGUID>
</PropertyGroup>
<PropertyGroup Label="Configuration">
<Import_RootNamespace>Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.Tests</Import_RootNamespace>
</PropertyGroup>
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)ArrayHelpers.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Filtering\AccumulatedValuesTest.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Filtering\CalculatedMetricTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Filtering\CollectionConfigurationAccumulatorTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Filtering\DocumentStreamTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Filtering\FilterConjunctionGroupTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Filtering\FilterTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Filtering\Mocks\TelemetryMock.cs" />
<Compile Include="$(MSBuildThisFileDirectory)GlobalSuppressions.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\HttpContextHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Helpers\SimpleTelemetryProcessorSpy.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Mocks\PerformanceCollectorMock.cs" />
<Compile Include="$(MSBuildThisFileDirectory)PerformanceCollectorEventSourceTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)PerformanceCollectorWebAppTestBase.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\Mocks\CategorySampleMock.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\Mocks\ClockMock.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\Mocks\QuickPulseCollectionTimeSlotManagerMock.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\Mocks\QuickPulsePerfLibMock.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\Mocks\QuickPulseProcessProviderMock.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\Mocks\QuickPulseServiceClientMock.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\Mocks\QuickPulseTopCpuCollectorMock.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseCollectionStateManagerTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseCollectionTimeSlotManagerTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseDataAccumulatorManagerTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseDataAccumulatorTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseDataSampleTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseEventSourceTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseProcessProviderTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseQuotaTrackerTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseServiceClientTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseTelemetryModuleTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseTelemetryProcessorTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseTestHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)PerformanceCounterUtilityTestsCommon.cs" />
<Compile Include="$(MSBuildThisFileDirectory)PerformanceCollectorModuleTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)WebAppPerformanceCollectorTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)WebAppPerformanceCollector\AzureWebAppTest.cs" />
<Compile Include="$(MSBuildThisFileDirectory)WebAppPerformanceCollector\CacheHelperTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)WebAppPerformanceCollector\CPUPercenageGaugeTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)WebAppPerformanceCollector\NormalizedCPUPercenageGaugeTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)WebAppPerformanceCollector\RateCounterTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)WebAppPerformanceCollector\RatioCounterTests.cs" />
<Compile Include="$(MSBuildThisFileDirectory)WebAppPerformanceCollector\SumUpCountersGaugeTests.cs" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp1.0' OR '$(TargetFramework)' == 'netcoreapp2.0'">
<Compile Include="$(MSBuildThisFileDirectory)QuickPulse\QuickPulseServiceClientHelpersTests.cs" />
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)WebAppPerformanceCollector\SampleFiles\RemoteEnvironmentVariablesAllSampleOne.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="$(MSBuildThisFileDirectory)WebAppPerformanceCollector\SampleFiles\RemoteEnvironmentVariablesAllSampleTwo.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

Просмотреть файл

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>9b524bd3-682d-4b6f-9251-d4b2911df0fd</ProjectGuid>
<MinimumVisualStudioVersion>15.0</MinimumVisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
<PropertyGroup />
<Import Project="Perf.Shared.Tests.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
</Project>

Просмотреть файл

@ -1,140 +0,0 @@
namespace Microsoft.ApplicationInsights.Tests
{
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.Implementation;
using Microsoft.VisualStudio.TestTools.UnitTesting;
/// <summary>
/// PerformanceCollectorModuleTests tests.
/// The goal is to test that the default list contains only those counters which are supported.
/// Adding any unsupported counter by default will add noisy traces to user ikey.
/// </summary>
[TestClass]
public class PerformanceCollectorModuleTests
{
[TestMethod]
public void PerformanceCollectorModuleDefaultContainsExpectedCountersNonWindows()
{
#if NETCOREAPP2_0
PerformanceCounterUtility.isAzureWebApp = null;
var original = PerformanceCounterUtility.IsWindows;
PerformanceCounterUtility.IsWindows = false;
var module = new PerformanceCollectorModule();
try
{
module.Initialize(new TelemetryConfiguration());
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\% Processor Time"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\% Processor Time Normalized"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\Private Bytes"));
Assert.AreEqual(3, module.DefaultCounters.Count);
}
finally
{
PerformanceCounterUtility.IsWindows = original;
module.Dispose();
}
#endif
}
[TestMethod]
public void PerformanceCollectorModuleDefaultContainsExpectedCountersWebApps()
{
PerformanceCounterUtility.isAzureWebApp = null;
Environment.SetEnvironmentVariable("WEBSITE_SITE_NAME", "something");
var module = new PerformanceCollectorModule();
try
{
module.Initialize(new TelemetryConfiguration());
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\% Processor Time"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\% Processor Time Normalized"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\Private Bytes"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Memory\Available Bytes"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\IO Data Bytes/sec"));
#if NET45
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\.NET CLR Exceptions(??APP_CLR_PROC??)\# of Exceps Thrown / sec"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue"));
Assert.AreEqual(9, module.DefaultCounters.Count);
#else
Assert.AreEqual(5, module.DefaultCounters.Count);
#endif
}
finally
{
PerformanceCounterUtility.isAzureWebApp = null;
module.Dispose();
Environment.SetEnvironmentVariable("WEBSITE_SITE_NAME", string.Empty);
Task.Delay(1000).Wait();
}
}
[TestMethod]
public void PerformanceCollectorModuleDefaultContainsExpectedCountersWindows()
{
PerformanceCounterUtility.isAzureWebApp = null;
var module = new PerformanceCollectorModule();
#if NETCOREAPP2_0
var original = PerformanceCounterUtility.IsWindows;
PerformanceCounterUtility.IsWindows = true;
#endif
try
{
module.Initialize(new TelemetryConfiguration());
#if !NETCOREAPP1_0
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\% Processor Time"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\% Processor Time Normalized"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\Private Bytes"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Memory\Available Bytes"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\IO Data Bytes/sec"));
#if NET45
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\.NET CLR Exceptions(??APP_CLR_PROC??)\# of Exceps Thrown / sec"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue"));
#endif
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Processor(_Total)\% Processor Time"));
#if NET45
Assert.AreEqual(10, module.DefaultCounters.Count);
#else
Assert.AreEqual(6, module.DefaultCounters.Count);
#endif
#endif
}
finally
{
module.Dispose();
#if NETCOREAPP2_0
PerformanceCounterUtility.IsWindows = original;
#endif
}
}
private bool ContainsPerfCounter(IList<PerformanceCounterCollectionRequest> counters, string name)
{
foreach (var counter in counters)
{
if (counter.PerformanceCounter.Equals(name))
{
return true;
}
}
return false;
}
}
}

Просмотреть файл

@ -5,7 +5,7 @@
<Import Project="$(PropsRoot)\Test.props" />
<PropertyGroup>
<TargetFrameworks>net45;netcoreapp1.0;netcoreapp2.0</TargetFrameworks>
<TargetFrameworks>net45;netcoreapp1.0;netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
<AssemblyName>Microsoft.AI.PerformanceCollector.Tests</AssemblyName>
<PackageId>Microsoft.AI.DependencyCollector.Tests</PackageId>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
@ -60,7 +60,5 @@
<ItemGroup>
<Folder Include="obj\" />
</ItemGroup>
<Import Project="..\Perf.Shared.Tests\Perf.Shared.Tests.projitems" Label="Shared" />
<Import Project="..\..\TestFramework\Shared\TestFramework.Shared.projitems" Label="Shared" />
</Project>

Просмотреть файл

@ -1,11 +1,11 @@
#if NET45
namespace Microsoft.ApplicationInsights.Tests
namespace Microsoft.ApplicationInsights.Tests
{
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector;
@ -20,6 +20,7 @@ namespace Microsoft.ApplicationInsights.Tests
[TestClass]
public class PerformanceCollectorModulesTests
{
#if NET45
[TestMethod]
[SuppressMessage(category: "Microsoft.Globalization", checkId: "CA1305:SpecifyIFormatProvider", Justification = "Don't care about invariant in unit tests.")]
public void TimerTest()
@ -388,6 +389,128 @@ namespace Microsoft.ApplicationInsights.Tests
return module;
}
#endif
[TestMethod]
public void PerformanceCollectorModuleDefaultContainsExpectedCountersNonWindows()
{
#if NETCOREAPP2_1 || NETCOREAPP3_1
PerformanceCounterUtility.isAzureWebApp = null;
var original = PerformanceCounterUtility.IsWindows;
PerformanceCounterUtility.IsWindows = false;
var module = new PerformanceCollectorModule();
try
{
module.Initialize(new TelemetryConfiguration());
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\% Processor Time"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\% Processor Time Normalized"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\Private Bytes"));
Assert.AreEqual(3, module.DefaultCounters.Count);
}
finally
{
PerformanceCounterUtility.IsWindows = original;
module.Dispose();
}
#endif
}
[TestMethod]
public void PerformanceCollectorModuleDefaultContainsExpectedCountersWebApps()
{
PerformanceCounterUtility.isAzureWebApp = null;
Environment.SetEnvironmentVariable("WEBSITE_SITE_NAME", "something");
var module = new PerformanceCollectorModule();
try
{
module.Initialize(new TelemetryConfiguration());
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\% Processor Time"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\% Processor Time Normalized"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\Private Bytes"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Memory\Available Bytes"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\IO Data Bytes/sec"));
#if NET45
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\.NET CLR Exceptions(??APP_CLR_PROC??)\# of Exceps Thrown / sec"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue"));
Assert.AreEqual(9, module.DefaultCounters.Count);
#else
Assert.AreEqual(5, module.DefaultCounters.Count);
#endif
}
finally
{
PerformanceCounterUtility.isAzureWebApp = null;
module.Dispose();
Environment.SetEnvironmentVariable("WEBSITE_SITE_NAME", string.Empty);
Task.Delay(1000).Wait();
}
}
[TestMethod]
public void PerformanceCollectorModuleDefaultContainsExpectedCountersWindows()
{
PerformanceCounterUtility.isAzureWebApp = null;
var module = new PerformanceCollectorModule();
#if NETCOREAPP2_1 || NETCOREAPP3_1
var original = PerformanceCounterUtility.IsWindows;
PerformanceCounterUtility.IsWindows = true;
#endif
try
{
module.Initialize(new TelemetryConfiguration());
#if !NETCOREAPP1_0
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\% Processor Time"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\% Processor Time Normalized"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\Private Bytes"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Memory\Available Bytes"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Process(??APP_WIN32_PROC??)\IO Data Bytes/sec"));
#if NET45
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\.NET CLR Exceptions(??APP_CLR_PROC??)\# of Exceps Thrown / sec"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time"));
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue"));
#endif
Assert.IsTrue(ContainsPerfCounter(module.DefaultCounters, @"\Processor(_Total)\% Processor Time"));
#if NET45
Assert.AreEqual(10, module.DefaultCounters.Count);
#else
Assert.AreEqual(6, module.DefaultCounters.Count);
#endif
#endif
}
finally
{
module.Dispose();
#if NETCOREAPP2_1 || NETCOREAPP3_1
PerformanceCounterUtility.IsWindows = original;
#endif
}
}
private bool ContainsPerfCounter(IList<PerformanceCounterCollectionRequest> counters, string name)
{
foreach (var counter in counters)
{
if (counter.PerformanceCounter.Equals(name))
{
return true;
}
}
return false;
}
}
}

Просмотреть файл

@ -1,4 +1,4 @@
#if NETCOREAPP2_0
#if NETCOREAPP2_1 || NETCOREAPP3_1
namespace Microsoft.ApplicationInsights.Tests
{
using System;

Просмотреть файл

@ -1,4 +1,4 @@
#if NETCOREAPP2_0
#if NETCOREAPP2_1 || NETCOREAPP3_1
namespace Microsoft.ApplicationInsights.Tests
{
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.Implementation;

Просмотреть файл

@ -53,7 +53,7 @@
[TestMethod]
public void GetCollectorReturnsXPlatformCollectorForWebAppForLinux()
{
#if NETCOREAPP2_0
#if NETCOREAPP2_1 || NETCOREAPP3_1
var original = PerformanceCounterUtility.IsWindows;
try
{
@ -75,7 +75,7 @@
[TestMethod]
public void GetCollectorReturnsXPlatformCollectorForNonWindows()
{
#if NETCOREAPP2_0
#if NETCOREAPP2_1 || NETCOREAPP3_1
var original = PerformanceCounterUtility.IsWindows;
try
{

Просмотреть файл

@ -1,4 +1,5 @@
namespace Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.Tests.QuickPulse
#if NETCOREAPP
namespace Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.Tests.QuickPulse
{
using System.Net.Http.Headers;
using Microsoft.ApplicationInsights.Common.Internal;
@ -80,3 +81,4 @@
}
}
}
#endif

Просмотреть файл

@ -23,7 +23,7 @@
{
#pragma warning disable 0162
// TODO: Stabilize sleep-based tests
#if NETCORE
#if NETCOREAPP
private const bool Ignored = true;
#else
private const bool Ignored = false;