Hello GitHub

This commit is contained in:
Howard Wolosky
2019-01-28 16:24:37 -08:00
parent 456fe5e355
commit c13b8a099e
822 changed files with 276650 additions and 75 deletions

View File

@@ -0,0 +1,145 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.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>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProjectGuid>{0224A709-0C48-4C4F-BA17-843A49842C15}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Calculator.UITests</RootNamespace>
<AssemblyName>Calculator.UITests</AssemblyName>
<TargetFrameworkIdentifier>.NETPortable</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v5.0</TargetFrameworkVersion>
<NuGetTargetMoniker>.NETCore,Version=v5.0</NuGetTargetMoniker>
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.17763.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.17134.0</TargetPlatformMinVersion>
<FileAlignment>512</FileAlignment>
<CopyNuGetImplementations>true</CopyNuGetImplementations>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\x86</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\x86</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\x64</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\x64</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|ARM' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\arm</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>ARM</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|ARM' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\arm</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>ARM</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|ARM64' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\ARM64\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>ARM64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|ARM64' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\ARM64\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>ARM64</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Compile Include="Initialization.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Tests\AppLifecycleTests.cs" />
<Compile Include="Tests\CalculatorTests.cs" />
<Compile Include="Tests\LaunchTests.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Config\AppLifecycle.Profile.wprp">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Config\AppLifecycle.Regions.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>AppLifecycle.Regions.xml</LastGenOutput>
<SubType>Designer</SubType>
</Content>
<Content Include="Config\AppLifecycle.Regions.xml">
<DependentUpon>AppLifecycle.Regions.tt</DependentUpon>
<AutoGen>True</AutoGen>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<DesignTime>True</DesignTime>
</Content>
<None Include="project.json" />
<None Include="testmd.definition" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Calculator.UIAutomationLibrary\Calculator.UIAutomationLibrary.csproj">
<Project>{a43517b5-8be3-4312-913f-004978c34444}</Project>
<Name>Calculator.UIAutomationLibrary</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="Config\AppLifecycle.Iterations.xml">
<SubType>Designer</SubType>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '15.0' ">
<VisualStudioVersion>15.0</VisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
<!-- 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>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0"?>
<!--
This file defines a table of preformance configuration for use with
TAEF Table Based Data-driven Testing.
This table specifies we will run the test three times (each iteration has a
unique name to identify the scenario) with different parameters each time.
We use the same region file for WinPerf but we specify different WPR profiles
to capture ETW events from different providers, focusing on responsiveness for
launch runs and on memory for one diagnostic memory run.
The warm run is the one we are primarily interested in for startup performance.
-->
<Data>
<Table Id="PerformanceConfigurations">
<Row Name="Cold"
WinPerf.FriendlyAutomationName="AppLifecycle_Responsiveness_Cold"
WinPerf.Iterations="1"
WinPerf.WPRProfile="Config\AppLifecycle.Profile.wprp"
WinPerf.WPRProfileId="AppLifecycle.Responsiveness.Diagnostic.Verbose.File"
WinPerf.Regions="Config\AppLifecycle.Regions.xml">
</Row>
<Row Name="Warm"
WinPerf.FriendlyAutomationName="AppLifecycle_Responsiveness_Warm"
WinPerf.Iterations="10"
WinPerf.WPRProfile="Config\AppLifecycle.Profile.wprp"
WinPerf.WPRProfileId="AppLifecycle.Responsiveness.Diagnostic.Verbose.Memory"
WinPerf.Regions="Config\AppLifecycle.Regions.xml">
</Row>
<Row Name="Memory"
WinPerf.FriendlyAutomationName="AppLifecycle_Memory"
WinPerf.Iterations="1"
WinPerf.WPRProfile="Config\AppLifecycle.Profile.wprp"
WinPerf.WPRProfileId="AppLifecycle.Memory.Diagnostic.Verbose.File"
WinPerf.Regions="Config\AppLifecycle.Regions.xml">
</Row>
</Table>
</Data>

View File

@@ -0,0 +1,526 @@
<!--
This WPRP (WPR profile) contains the App Life Cycle settings for Mobile and Client Performance Gates (MPG and CPG).
Since the appcycle automations are currently still separate, any changes here should be made in two places to keep these wprp's in sync.
CPG: base\PerfTest\MemRe\AppLifecycle\Common\AppLifeCycle.wprp
MPG: wm\src\tools\Product\DH\Test\PerfWorkloads\AppLifeCycle\AppLifeCycle.wprp
Prefixes in the WPRP:
SC_ - System Collector controlling kernel event tracing
EC_ - Event Collector controlling user mode event tracing
SP_ - System Provider
EP_ - Event Provider
There are two separate traces - Responsiveness and Memory.
Within that, we have Light tracing which is for official gating metrics/traces, and we have Verbose tracing, which is for Diagnostic metrics\traces.
-->
<WindowsPerformanceRecorder Version="1.0" Comments="Test" Company="Microsoft Corporation" Copyright="Microsoft Corporation">
<Profiles>
<!-- BufferSizes are in KB in WPRP -->
<!-- System Collectors -->
<SystemCollector Id="SC_Responsiveness.LowCost.Light" Name="NT Kernel Resposiveness Logger LowCost Light">
<BufferSize Value="1024" />
<Buffers Value="3" PercentageOfTotalMemory="true" MaximumBufferSpace="30" />
</SystemCollector>
<SystemCollector Id="SC_Responsiveness.LowCost" Name="NT Kernel Resposiveness Logger LowCost">
<BufferSize Value="1024" />
<Buffers Value="35" />
</SystemCollector>
<SystemCollector Id="SC_Responsiveness.HighCost.Verbose" Name="NT Kernel Resposiveness Logger HighCost Verbose">
<BufferSize Value="1024" />
<Buffers Value="7" PercentageOfTotalMemory="true" MaximumBufferSpace="140" />
</SystemCollector>
<SystemCollector Id="SC_Memory.LowCost.Light" Name="NT Kernel Memory Logger LowCost Light">
<BufferSize Value="1024" />
<Buffers Value="35" />
</SystemCollector>
<SystemCollector Id="SC_Memory.HighCost.Verbose" Name="NT Kernel Memory Logger LowCost Light">
<BufferSize Value="1024" />
<Buffers Value="75" />
</SystemCollector>
<!-- Event Collectors -->
<EventCollector Id="EC_Responsiveness.LowCost.Light" Name="User Session Logger LowCost Light">
<BufferSize Value="1024" />
<Buffers Value="2" PercentageOfTotalMemory="true" MaximumBufferSpace="20"/>
</EventCollector>
<EventCollector Id="EC_Responsiveness.LowCost.Light.UTC" Name="User Session Logger LowCost Light UTC">
<BufferSize Value="1024"/>
<Buffers Value="5"/>
</EventCollector>
<EventCollector Id="EC_Responsiveness.LowCost" Name="User Session Logger LowCost">
<BufferSize Value="1024" />
<Buffers Value="15" />
</EventCollector>
<EventCollector Id="EC_Responsiveness.HighCost.Verbose" Name="User Session Logger Higcost Verbose">
<BufferSize Value="1024" />
<Buffers Value="3" PercentageOfTotalMemory="true" MaximumBufferSpace="60" />
</EventCollector>
<EventCollector Id="EC_Memory.LowCost.Light" Name="User Session Logger LowCost Light">
<BufferSize Value="1024" />
<Buffers Value="30" />
</EventCollector>
<!-- System Providers for collecting kernel events. -->
<SystemProvider Id="SP_Responsiveness.Light">
<Keywords Operation="Add">
<Keyword Value="CompactCSwitch"/>
<Keyword Value="CSwitch"/>
<Keyword Value="DiskIO"/>
<Keyword Value="ProcessThread"/>
<Keyword Value="Loader"/>
</Keywords>
</SystemProvider>
<SystemProvider Id="SP_Responsiveness" Base="SP_Responsiveness.Light">
<Keywords Operation="Add">
<Keyword Value="HardFaults"/>
<Keyword Value="MemoryInfo"/>
<Keyword Value="ReadyThread"/>
<Keyword Value="SampledProfile"/>
<Keyword Value="Session"/>
<Keyword Value="VAMap"/>
<Keyword Value="DPC"/>
<Keyword Value="Power"/>
</Keywords>
<Stacks Operation="Add">
<Stack Value="CSwitch"/>
<Stack Value="ReadyThread"/>
<Stack Value="SampledProfile"/>
</Stacks>
</SystemProvider>
<SystemProvider Id="SP_Memory.Light" Base="SP_Responsiveness.Light" >
<Keywords Operation="Add">
<Keyword Value="Memory"/>
<Keyword Value="MemoryInfo"/>
<Keyword Value="HardFaults"/>
<Keyword Value="ReferenceSet"/>
<Keyword Value="VirtualAllocation"/>
</Keywords>
</SystemProvider>
<SystemProvider Id="SP_Memory" Base="SP_Responsiveness" >
<Keywords Operation="Add">
<Keyword Value="FootPrint"/>
<Keyword Value="Memory"/>
<Keyword Value="MemoryInfoWS"/>
<Keyword Value="ReferenceSet"/>
<Keyword Value="VirtualAllocation"/>
</Keywords>
<Stacks Operation="Add">
<Stack Value="HeapCreate" />
<Stack Value="ImageLoad" />
<Stack Value="PageAccess" />
<Stack Value="PageAccessEx" />
<Stack Value="PagefileMappedSectionCreate" />
<Stack Value="PagefileMappedSectionDelete" />
<Stack Value="PageRangeAccess" />
<Stack Value="PageRangeRelease" />
<Stack Value="PageRelease" />
<Stack Value="PageRemovedfromWorkingSet" />
<Stack Value="VirtualAllocation" />
<Stack Value="VirtualFree" />
</Stacks>
</SystemProvider>
<!-- Start - AppLaunch.wprp -->
<EventProvider Id="EP_UTC" Name="UTC" NonPagedMemory="true" Level="4" />
<EventProvider Id="EP_Microsoft-WindowsPhone-AppPlatProvider" Name="3C42000F-CC27-48C3-A005-48F6E38B131F" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_XNA" Name="CD698436-A3E3-4607-BB60-0BAC4D765B59" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_TaskHost" Name="5CBDF2A5-7290-4ACC-B8A7-9BA285BEBC39" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-WindowsPhone-Silverlight" Name="AA087E0E-0B35-4e28-8F3A-440C3F51EEF1" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Device-Health-Etw" Name="F7A8FD9F-8FFD-482f-86C0-4C19240F334C" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-WindowsMobile-Compositor" Name="85FFFBA1-CF12-402c-B9B3-29A3217BB007" Level="5">
<Keywords>
<Keyword Value="0xfffffff" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-WindowsMobile-Splash" Name="872c8950-0def-4d5b-83f6-57dd027f88ce" Level="4">
<Keywords>
<Keyword Value="0xfffffff" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-WindowsMobile-UIXMobile" Name="0C0FFEE0-F4B1-4F4D-B591-FB3175B13413">
<Keywords>
<Keyword Value="0xE" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-WindowsMobile-StartMenu" Name="BECF83FD-D220-4b19-B7C1-C9127307F6B1" Level="5">
<Keywords>
<Keyword Value="0xfffffff" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Kernel-EventTracing" Name="b675ec37-bdb6-4648-bc92-f3fdc74d3ca2" Level="5">
<Keywords>
<Keyword Value="0x50" />
</Keywords>
<CaptureStateOnSave>
<Keyword Value="0x50" />
</CaptureStateOnSave>
</EventProvider>
<EventProvider Id="EP_Microsoft-WindowsPhone-MobileUI" Name="F243DC34-205E-4d34-94CA-36E8C0859787" Level="5">
<Keywords>
<Keyword Value="0xfffffff" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Kernel-Process" Name="2839ff94-8f12-4e1b-82e3-af7af77a450f" NonPagedMemory="true" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-TestExecution" Name="Microsoft-Windows-TestExecution" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft.Windows.WinPerf" Name="BE6F04EA-3488-4543-8082-24843EAEC303" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Shell-Launcher" Name="*Microsoft-Windows-Shell-Launcher" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Immersive-Shell" Name="315A8872-923E-4EA2-9889-33CD4754BF64" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-XAML-Light" Name="531A35AB-63CE-4BCF-AA98-F88C7A89E455" Level="4" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-XAML-Verbose" Name="531A35AB-63CE-4BCF-AA98-F88C7A89E455" Level="5" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-ProcessLifetimeManager" Name="*Microsoft.Windows.ProcessLifetimeManager" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Desktop-ApplicationFrame" Name="678e492b-5de1-50c5-7219-ae4aa7d6a141" Level="5" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Microsoft-Phone-AppLifecycle" Name="f623a8ef-84da-4640-8917-fd5b0f847f28" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-WindowsPhone-CoreUIComponents" Name="a0b7550f-4e9a-4f03-ad41-b8042d06a2f7" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-AppModel-Exec" Name="EB65A492-86C0-406A-BACE-9912D595BD69" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft.Windows.ActivationManager" Name="cf7f94b3-08dc-5257-422f-497d7dc86ab3">
<Keywords>
<Keyword Value="0x0" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-WindowsMobile-ExecManLogPublisher" Name="82c8ad90-5f3c-11be-bd9a-85bb5f50dfa4" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Shell-CortanaSearch" Name="E34441D9-5BCF-4958-B787-3BF824F362D7" >
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Dwm-Core" Name="9e9bba3c-2e38-40cb-99f4-9e8281425164" Level="4" >
<Keywords>
<Keyword Value="0x2000C"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-ImageLoad" Name="2cb15d1d-5fc1-11d2-abe1-00a0c911f518" >
<Keywords>
<Keyword Value="0x10"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-AppLifeCycle-UI" Name="ee97cdc4-b095-5c70-6e37-a541eb74c2b5" Level="5">
<Keywords>
<Keyword Value="0x400000000000"/>
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-AppLifeCycle" Name="ef00584a-2655-462c-bc24-e7de630e7fbf">
<Keywords>
<Keyword Value="0x0000000000000"/>
</Keywords>
<CaptureStateOnSave>
<Keyword Value="0x0000000000000"/>
</CaptureStateOnSave>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Kernel-Power" Name="331C3B3A-2005-44C2-AC5E-77220C37D6B4" NonPagedMemory="true" EventKey="true">
<Keywords>
<Keyword Value="0xA4"/>
</Keywords>
<CaptureStateOnSave Timeout="0">
<Keyword Value="0xA4"/>
</CaptureStateOnSave>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Kernel-Processor-Power" Name="0f67e49f-fe51-4e9f-b490-6f2948cc6027" NonPagedMemory="true" EventKey="true" Level="4">
<Keywords>
<Keyword Value="0xC2"/>
</Keywords>
<CaptureStateOnSave Timeout="0">
<Keyword Value="0xC2"/>
</CaptureStateOnSave>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Kernel-Pep" Name="5412704E-B2E1-4624-8FFD-55777B8F7373" NonPagedMemory="true" EventKey="true">
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
<CaptureStateOnSave Timeout="0">
<Keyword Value="0x0"/>
</CaptureStateOnSave>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Kernel-Acpi" Name="C514638F-7723-485B-BCFC-96565D735D4A" Level="5" NonPagedMemory="true" EventKey="true">
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
<CaptureStateOnSave>
<Keyword Value="0x0"/>
</CaptureStateOnSave>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-UserModePowerService" Name="CE8DEE0B-D539-4000-B0F8-77BED049C590" NonPagedMemory="true" EventKey="true">
<Keywords>
<Keyword Value="0x0"/>
</Keywords>
<CaptureStateOnSave Timeout="0">
<Keyword Value="0x0"/>
</CaptureStateOnSave>
</EventProvider>
<EventProvider Id="EP_Microsoft.ClipC" Level="0" Name="ed0c10a5-5396-4a96-9ee3-6f4aa0d1120d" NonPagedMemory="true" EventKey="true">
<Keywords>
<Keyword Value="0x200000000000" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft.ClipSp" Level="0" Name="b4b126de-32fe-4591-9ac5-b0778d79a0e7" NonPagedMemory="true" EventKey="true">
<Keywords>
<Keyword Value="0x200000000000" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft.ClipSvc" Level="0" Name="b94d76c5-9d56-454a-8d1b-6ca30898160e" NonPagedMemory="true" EventKey="true">
<Keywords>
<Keyword Value="0x200000000000" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft.Windows.LicenseManager.Telemetry" Level="0" Name="af9f58ec-0c04-4be9-9eb5-55ff6dbe72d7" NonPagedMemory="true" EventKey="true">
<Keywords>
<Keyword Value="0x200000000000" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Win32k" Level="0" Name="8c416c79-d49b-4f01-a467-e56d3aa8234c" NonPagedMemory="true" EventKey="true">
<Keywords>
<Keyword Value="0x26A000" />
</Keywords>
</EventProvider>
<EventProvider Id="EP_Microsoft-Windows-Kernel-Prefetch" Level="0" Name="Microsoft-Windows-Kernel-Prefetch" NonPagedMemory="true" EventKey="true">
<Keywords>
<Keyword Value="0x0" />
</Keywords>
</EventProvider>
<!-- End - AppLaunch.wprp -->
<Profile Id="AppLifecycle.Responsiveness.Light.File" LoggingMode="File" Name="AppLifecycle.Responsiveness" DetailLevel="Light" Description="App lifecycle responsiveness light to file">
<Collectors>
<SystemCollectorId Value="SC_Responsiveness.LowCost.Light">
<SystemProviderId Value="SP_Responsiveness.Light" />
</SystemCollectorId>
<EventCollectorId Value="EC_Responsiveness.LowCost.Light">
<EventProviders>
<EventProviderId Value="EP_Microsoft-Windows-TestExecution" />
<EventProviderId Value="EP_Microsoft.Windows.WinPerf" />
<EventProviderId Value="EP_Microsoft-Windows-Immersive-Shell"/>
<EventProviderId Value="EP_Microsoft-Windows-AppLifeCycle" />
<EventProviderId Value="EP_Microsoft-Windows-Shell-Launcher" />
<EventProviderId Value="EP_Microsoft-Windows-XAML-Light" />
<EventProviderId Value="EP_Microsoft-Windows-AppLifeCycle-UI" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-Process" />
<EventProviderId Value="EP_Microsoft-Windows-Shell-CortanaSearch"/>
<EventProviderId Value="EP_Microsoft-Windows-AppModel-Exec"/>
<EventProviderId Value="EP_Microsoft.Windows.ActivationManager" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-EventTracing" />
<EventProviderId Value="EP_Microsoft-Windows-Desktop-ApplicationFrame" />
<EventProviderId Value="EP_XNA" />
<EventProviderId Value="EP_TaskHost" />
<EventProviderId Value="EP_Device-Health-Etw" />
<EventProviderId Value="EP_Microsoft-Microsoft-Phone-AppLifecycle"/>
<EventProviderId Value="EP_Microsoft-WindowsPhone-CoreUIComponents"/>
<EventProviderId Value="EP_Microsoft-WindowsPhone-AppPlatProvider" />
<EventProviderId Value="EP_Microsoft-WindowsPhone-Silverlight" />
<EventProviderId Value="EP_Microsoft-WindowsMobile-Splash" />
</EventProviders>
</EventCollectorId>
<EventCollectorId Value="EC_Responsiveness.LowCost.Light.UTC">
<EventProviders>
<EventProviderId Value="EP_UTC"/>
</EventProviders>
</EventCollectorId>
</Collectors>
</Profile>
<Profile Id="AppLifecycle.Responsiveness.Diagnostic.Verbose.File" Base="AppLifecycle.Responsiveness.Light.File" LoggingMode="File" Name="AppLifecycle.Responsiveness.Diagnostic" DetailLevel="Verbose" Description="App lifecycle responsiveness verbose to file">
<Collectors Operation="Add">
<SystemCollectorId Value="SC_Responsiveness.LowCost">
<SystemProviderId Value="SP_Responsiveness" />
</SystemCollectorId>
<EventCollectorId Value="EC_Responsiveness.LowCost">
<EventProviders>
<EventProviderId Value="EP_Microsoft-Windows-XAML-Verbose" />
<EventProviderId Value="EP_Microsoft-WindowsMobile-ExecManLogPublisher"/>
<EventProviderId Value="EP_Microsoft-WindowsMobile-Compositor" />
<EventProviderId Value="EP_Microsoft-WindowsMobile-UIXMobile" />
<EventProviderId Value="EP_Microsoft-WindowsMobile-StartMenu" />
<EventProviderId Value="EP_Microsoft-WindowsPhone-MobileUI" />
</EventProviders>
</EventCollectorId>
</Collectors>
</Profile>
<Profile Id="AppLifecycle.Responsiveness.Diagnostic.Verbose.Memory" Base="AppLifecycle.Responsiveness.Light.File" LoggingMode="Memory" Name="AppLifecycle.Responsiveness.Diagnostic" DetailLevel="Verbose" Description="App life cycle responsiveness verbose to memory">
<Collectors>
<SystemCollectorId Value="SC_Responsiveness.HighCost.Verbose">
<SystemProviderId Value="SP_Responsiveness"/>
</SystemCollectorId>
<EventCollectorId Value="EC_Responsiveness.HighCost.Verbose">
<EventProviders>
<EventProviderId Value="EP_Microsoft-Windows-ProcessLifetimeManager" />
<EventProviderId Value="EP_Microsoft-Windows-Shell-CortanaSearch"/>
<EventProviderId Value="EP_Microsoft-WindowsMobile-ExecManLogPublisher"/>
<EventProviderId Value="EP_Microsoft-WindowsMobile-Compositor" />
<EventProviderId Value="EP_Microsoft-WindowsMobile-UIXMobile" />
<EventProviderId Value="EP_Microsoft-WindowsMobile-StartMenu" />
<EventProviderId Value="EP_Microsoft-WindowsPhone-MobileUI" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-Power" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-Processor-Power" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-Pep" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-Acpi" />
<EventProviderId Value="EP_Microsoft-Windows-UserModePowerService" />
<EventProviderId Value="EP_Microsoft-Windows-Dwm-Core" />
<EventProviderId Value="EP_Microsoft-Windows-ImageLoad" />
<EventProviderId Value="EP_Microsoft.ClipC" />
<EventProviderId Value="EP_Microsoft.ClipSp" />
<EventProviderId Value="EP_Microsoft.ClipSvc" />
<EventProviderId Value="EP_Microsoft.Windows.LicenseManager.Telemetry" />
<EventProviderId Value="EP_Microsoft-Windows-Win32k" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-Prefetch" />
</EventProviders>
</EventCollectorId>
</Collectors>
</Profile>
<Profile Id="AppLifecycle.Memory.Light.File" LoggingMode="File" Name="AppLifecycle.Memory" DetailLevel="Light" Description="App lifecycle memory light to file">
<Collectors>
<SystemCollectorId Value="SC_Memory.LowCost.Light">
<SystemProviderId Value="SP_Memory.Light" />
</SystemCollectorId>
<EventCollectorId Value="EC_Memory.LowCost.Light">
<EventProviders>
<EventProviderId Value="EP_Microsoft-Windows-TestExecution" />
<EventProviderId Value="EP_Microsoft.Windows.WinPerf" />
<EventProviderId Value="EP_Microsoft-Windows-Immersive-Shell"/>
<EventProviderId Value="EP_Microsoft-Windows-AppModel-Exec"/>
<EventProviderId Value="EP_Microsoft.Windows.ActivationManager" />
<EventProviderId Value="EP_Microsoft-Windows-AppLifeCycle" />
<EventProviderId Value="EP_Microsoft-Windows-AppLifeCycle-UI" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-EventTracing" />
<EventProviderId Value="EP_Microsoft-Windows-Desktop-ApplicationFrame" />
<EventProviderId Value="EP_XNA" />
<EventProviderId Value="EP_TaskHost" />
<EventProviderId Value="EP_Device-Health-Etw" />
<EventProviderId Value="EP_Microsoft-WindowsMobile-ExecManLogPublisher"/>
<EventProviderId Value="EP_Microsoft-Microsoft-Phone-AppLifecycle"/>
<EventProviderId Value="EP_Microsoft-WindowsPhone-CoreUIComponents"/>
<EventProviderId Value="EP_Microsoft-WindowsPhone-AppPlatProvider" />
<EventProviderId Value="EP_Microsoft-WindowsPhone-Silverlight" />
<EventProviderId Value="EP_Microsoft-Windows-XAML-Light" />
<EventProviderId Value="EP_Microsoft-WindowsMobile-Splash" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-Prefetch" />
</EventProviders>
</EventCollectorId>
<EventCollectorId Value="EC_Responsiveness.LowCost.Light.UTC">
<EventProviders>
<EventProviderId Value="EP_UTC"/>
</EventProviders>
</EventCollectorId>
</Collectors>
</Profile>
<Profile Id="AppLifecycle.Memory.Diagnostic.Verbose.File" Base="AppLifecycle.Memory.Light.File" LoggingMode="File" Name="AppLifecycle.Memory.Diagnostic" DetailLevel="Verbose" Description="App lifecycle memory verbose to file">
<Collectors Operation="Add">
<SystemCollectorId Value="SC_Memory.HighCost.Verbose">
<SystemProviderId Value="SP_Memory" />
</SystemCollectorId>
<EventCollectorId Value="EC_Memory.LowCost.Light">
<EventProviders>
<EventProviderId Value="EP_Microsoft-Windows-Shell-Launcher" />
<EventProviderId Value="EP_Microsoft-Windows-XAML-Verbose" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-Power" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-Processor-Power" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-Pep" />
<EventProviderId Value="EP_Microsoft-Windows-Dwm-Core" />
<EventProviderId Value="EP_Microsoft-Windows-ImageLoad" />
<EventProviderId Value="EP_Microsoft-Windows-Kernel-Process" />
<EventProviderId Value="EP_Microsoft-Windows-Shell-CortanaSearch"/>
<EventProviderId Value="EP_Microsoft-WindowsMobile-Compositor" />
<EventProviderId Value="EP_Microsoft-WindowsMobile-UIXMobile" />
<EventProviderId Value="EP_Microsoft-WindowsMobile-StartMenu" />
<EventProviderId Value="EP_Microsoft-WindowsPhone-MobileUI" />
<EventProviderId Value="EP_Microsoft-Windows-ProcessLifetimeManager" />
</EventProviders>
</EventCollectorId>
</Collectors>
</Profile>
</Profiles>
<TraceMergeProperties>
<TraceMergeProperty Id="TraceMerge_Default" Name="TraceMerge_Default" Base="">
<DeletePreMergedTraceFiles Value="true"/>
<CustomEvents>
<CustomEvent Value="ImageId"/>
<CustomEvent Value="BuildInfo"/>
<CustomEvent Value="VolumeMapping"/>
<CustomEvent Value="EventMetadata"/>
<CustomEvent Value="PerfTrackMetadata"/>
<CustomEvent Value="WinSAT"/>
<CustomEvent Value="NetworkInterface"/>
</CustomEvents>
</TraceMergeProperty>
</TraceMergeProperties>
</WindowsPerformanceRecorder>

View File

@@ -0,0 +1,364 @@
<# // Copyright (c) Microsoft Corporation. All rights reserved. #>
<#@ template language="C#" hostspecific="True" #>
<#@ output extension=".xml" #>
<# // Set options specific to your app here
var options = new {
RegionPrefix = "Calculator",
ImageFileName = "Calculator.exe",
PackageFamilyName = "Microsoft.WindowsCalculator",
FirstView = "ms-resource:///Files/Views/MainPage.xbf"
};
#>
<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<!--
Based on:
\base\PerfTest\MemRe\AppLifecycle\Common\Regions\Regions_Calculator.xml Regions_Calculator.xml
This is a regions of interest file that can be used by WPA to get a quick overview of the time
spent on a set of operations called "regions".
A region is defined as the combination of a Start and a Stop event.
This file contains regions that are of interest for the startup of a UWP app.
The first region "<#= options.RegionPrefix #>_AppLifecycle" is defined by the Start and Stop event of the test.
Subsequent regions are defined as children of this region to make sure we are only tracking
events that occurred during the test.
The events that are defined as Start and Stop events must come from an event provider that is enabled for the
trace that is being analyzed. For WinPerf, that means that the WPR Profile must have these providers enabled.
-->
<?Copyright (c) Microsoft Corporation. All rights reserved.?>
<InstrumentationManifest>
<Instrumentation>
<Regions>
<RegionRoot Guid="{7e8672b5-efe5-4862-90f3-944f136d6c75}"
Name="<#= options.RegionPrefix #>_AppLifeCycle Region Root"
FriendlyName="Root">
<Region Guid="{cf6c4996-1dc8-4fc5-b275-7a7051376f77}"
Name="<#= options.RegionPrefix #>_AppLifeCycle"
FriendlyName="Application Life Cycle Test">
<Start>
<!-- Microsoft-Windows-TestExecution\RunTest_TestRunScope\win:Start -->
<Event Provider="{70d27130-f2f3-4365-b790-d31223254ef4}" Name="RunTest_TestRunScope" Opcode="1"/>
<!-- Match the name of the test we are running. -->
<PayloadIdentifier FieldName="Name" FieldValue="Calculator.PerfTests.AppLifecycleTests.*" FieldValueRelationship="RegEx"/>
</Start>
<Stop>
<!-- Microsoft-Windows-TestExecution\RunTest_TestRunScope\win:Stop -->
<Event Provider="{70d27130-f2f3-4365-b790-d31223254ef4}" Name="RunTest_TestRunScope" Opcode="2"/>
<!-- Match the name of the test we are running. -->
<PayloadIdentifier FieldName="Name" FieldValue="Calculator.PerfTests.AppLifecycleTests.*" FieldValueRelationship="RegEx"/>
</Stop>
<Naming>
<PayloadBased NameField="Name"/>
</Naming>
<Region Guid="{b18b32ec-6796-43e1-802f-aec9aea5eb28}"
Name="<#= options.RegionPrefix #>_Launch_ProcessStart"
FriendlyName="Process Started">
<Start>
<!-- Use AAMShim_ActivationStart instead of AppLaunch_UserClick as we don't lanch from Start -->
<Event Provider="{cf7f94b3-08dc-5257-422f-497d7dc86ab3}" Name="AAMShim_ActivationStart" />
<PayloadIdentifier FieldName="AppId" FieldValue="<#= options.PackageFamilyName #>.*" FieldValueRelationship="RegEx" />
</Start>
<Stop>
<Event Provider="{2839ff94-8f12-4e1b-82e3-af7af77a450f}" Name="ProcessStarted" Version="0" />
<PayloadIdentifier FieldName="ImageFileName" FieldValue=".*<#= options.ImageFileName #>" FieldValueRelationship="RegEx" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{b1e4255d-131c-4ea8-899d-30b7345bf7d3}"
Name="<#= options.RegionPrefix #>_Launch_UIThreadStart"
FriendlyName="UI Thread Started">
<Start>
<!-- Use AAMShim_ActivationStart instead of AppLaunch_UserClick as we don't lanch from Start -->
<Event Provider="{cf7f94b3-08dc-5257-422f-497d7dc86ab3}" Name="AAMShim_ActivationStart" />
<PayloadIdentifier FieldName="AppId" FieldValue="<#= options.PackageFamilyName #>.*" FieldValueRelationship="RegEx" />
</Start>
<Stop>
<!-- Ideally use actual thread start event, for now it's just close, using InitializeCore -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="31" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{38084b96-d955-4603-a2c7-2720195ce160}"
Name="<#= options.RegionPrefix #>_Launch_InitializeCore"
FriendlyName="Create XAML Core">
<Start>
<!-- Initialize Core Start -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="31" Version="0" />
</Start>
<Stop>
<!-- Initialize Core Stop -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="32" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{cc909ec4-17c0-4cd9-9a83-293e06e0dc72}"
Name="<#= options.RegionPrefix #>_Launch_CreateDevice"
FriendlyName="Create Graphics Device">
<Start>
<!-- Create Device Start -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="76" Version="0" />
</Start>
<Stop>
<!-- Create Device Stop -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="77" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{0ed49a01-2604-499e-8003-0878b3b3c61e}"
Name="<#= options.RegionPrefix #>_Launch_CreateResourceManager"
FriendlyName="Create Resource Manager">
<Start>
<!-- Create Resource Manager Start -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="463" Version="0" />
</Start>
<Stop>
<!-- Create Resource Manager Stop -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="464" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{365920df-10e7-4b6e-8dcb-e769844ac11f}"
Name="<#= options.RegionPrefix #>_Launch_CreateWindow"
FriendlyName="Create Window">
<Start>
<!-- Create Window Start -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="29" Version="0" />
</Start>
<Stop>
<!-- Create Window Stop -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="30" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{09995446-0266-4a34-aa39-d99467dfe85d}"
Name="<#= options.RegionPrefix #>_Launch_InitializeTheme"
FriendlyName="Initialize Theme Resources">
<Start>
<!-- Theme Changed Start -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="457" Version="0" />
</Start>
<Stop>
<!-- Theme Changed Stop -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="458" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{a2fdff0b-75c8-440d-bb55-b87a3c60d55f}"
Name="<#= options.RegionPrefix #>_Launch_NavToFirstFrame"
FriendlyName="XAML Navigate To First Frame Drawn">
<Start>
<!-- Parse XAML -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="1" Version="0" />
<PayloadIdentifier FieldName="URI" FieldValue="<#= options.FirstView #>" />
</Start>
<Stop>
<!-- Frame Drawn -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="65" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
<Match>
<Event PID="true"/>
</Match>
</Region>
<Region Guid="{ffc47f79-2d90-470a-bfde-0d075972f23b}"
Name="<#= options.RegionPrefix #>_ApplicationActivate"
FriendlyName="Application Activate">
<Start>
<Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="5901" Version="1" />
</Start>
<Stop>
<Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="5902" Version="1" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{b0c74cf1-16fc-4a33-ba7e-2169727a08d7}"
Name="<#= options.RegionPrefix #>_Launch_SplashScreen"
FriendlyName="Splash Screen Dismissed">
<Start>
<!-- Use AAMShim_ActivationStart instead of AppLaunch_UserClick as we don't lanch from Start -->
<Event Provider="{cf7f94b3-08dc-5257-422f-497d7dc86ab3}" Name="AAMShim_ActivationStart" />
<PayloadIdentifier FieldName="AppId" FieldValue="<#= options.PackageFamilyName #>.*" FieldValueRelationship="RegEx" />
</Start>
<Stop>
<!-- NavigationServerTask_SplashScreenDismissed -->
<Event Provider="{a0b7550f-4e9a-4f03-ad41-b8042d06a2f7}" Id="1572" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{a1648637-d5ec-46d2-9655-a26d00a35764}"
Name="<#= options.RegionPrefix #>_Launch_UIResponsive"
FriendlyName="UI Responsive">
<Start>
<!-- Use AAMShim_ActivationStart instead of AppLaunch_UserClick as we don't lanch from Start -->
<Event Provider="{cf7f94b3-08dc-5257-422f-497d7dc86ab3}" Name="AAMShim_ActivationStart" />
<PayloadIdentifier FieldName="AppId" FieldValue="<#= options.PackageFamilyName #>.*" FieldValueRelationship="RegEx" />
</Start>
<Stop>
<Event Provider="{EF00584A-2655-462C-BC24-E7DE630E7FBF}" Name="ModernAppLaunch_UIResponsive" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{74d63c4e-7dd7-4ff6-9ee8-adb462c1c101}"
Name="<#= options.RegionPrefix #>_Launch_VisibleComplete"
FriendlyName="Visible Complete">
<Start>
<!-- Use AAMShim_ActivationStart instead of AppLaunch_UserClick as we don't lanch from Start -->
<Event Provider="{cf7f94b3-08dc-5257-422f-497d7dc86ab3}" Name="AAMShim_ActivationStart" />
<PayloadIdentifier FieldName="AppId" FieldValue="<#= options.PackageFamilyName #>.*" FieldValueRelationship="RegEx" />
</Start>
<Stop>
<Event Provider="{EF00584A-2655-462C-BC24-E7DE630E7FBF}" Name="ModernAppLaunch_VisibleComplete" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{ec31fb10-992b-438b-8c9e-42454f4b2e5a}"
Name="<#= options.RegionPrefix #>_Suspend"
FriendlyName="Suspended">
<Start>
<!-- Microsoft-Windows-Immersive-Shell\PerfTrack_PLM_SuspendApplication\win:Start -->
<Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="2450" Version="1" />
<PayloadIdentifier FieldName="PsmKey" FieldValueRelationship="RegEx" FieldValue="<#= options.PackageFamilyName #>.*" />
</Start>
<Stop>
<!-- Microsoft-Windows-Immersive-Shell\PerfTrack_PLM_SuspendApplication\win:Stop -->
<Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="2451" Version="1" />
<PayloadIdentifier FieldName="AppUserModelId" FieldValue="<#= options.PackageFamilyName #>.*" FieldValueRelationship="RegEx" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{83735b08-b17e-48cf-82f1-02cb08e45597}"
Name="<#= options.RegionPrefix #>_Resume"
FriendlyName="Resumed">
<Start>
<!-- Microsoft-Windows-Immersive-Shell\PerfTrack_PLM_ResumeApplication_EndToEnd\win:Start -->
<Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="11118" Version="0" />
<PayloadIdentifier FieldName="PsmKey" FieldValueRelationship="RegEx" FieldValue="<#= options.PackageFamilyName #>.*" />
</Start>
<Stop>
<!-- Microsoft-Windows-Immersive-Shell\PerfTrack_PLM_ResumeApplication_EndToEnd\win:Stop -->
<Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="11119" Version="0" />
<PayloadIdentifier FieldName="AppUserModelId" FieldValue="<#= options.PackageFamilyName #>.*" FieldValueRelationship="RegEx" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName><#= options.ImageFileName #></WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
</Region>
</RegionRoot>
</Regions>
</Instrumentation>
</InstrumentationManifest>

View File

@@ -0,0 +1,353 @@
<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<!--
Based on:
\base\PerfTest\MemRe\AppLifecycle\Common\Regions\Regions_Calculator.xml Regions_Calculator.xml
This is a regions of interest file that can be used by WPA to get a quick overview of the time
spent on a set of operations called "regions".
A region is defined as the combination of a Start and a Stop event.
This file contains regions that are of interest for the startup of a UWP app.
The first region "Calculator_AppLifecycle" is defined by the Start and Stop event of the test.
Subsequent regions are defined as children of this region to make sure we are only tracking
events that occurred during the test.
The events that are defined as Start and Stop events must come from an event provider that is enabled for the
trace that is being analyzed. For WinPerf, that means that the WPR Profile must have these providers enabled.
-->
<?Copyright (c) Microsoft Corporation. All rights reserved.?>
<InstrumentationManifest>
<Instrumentation>
<Regions>
<RegionRoot Guid="{7e8672b5-efe5-4862-90f3-944f136d6c75}"
Name="Calculator_AppLifeCycle Region Root"
FriendlyName="Root">
<Region Guid="{cf6c4996-1dc8-4fc5-b275-7a7051376f77}"
Name="Calculator_AppLifeCycle"
FriendlyName="Application Life Cycle Test">
<Start>
<!-- Microsoft-Windows-TestExecution\TE_TestRun\win:Start -->
<Event Provider="{065903c1-4883-4fb8-b163-d02bd5efc74c}" Id="7" Version="0" />
<!-- Match the name of the test we are running. -->
<PayloadIdentifier FieldName="Name" FieldValue="Calculator.PerfTests.AppLifecycleTests.*" FieldValueRelationship="RegEx"/>
</Start>
<Stop>
<!-- Microsoft-Windows-TestExecution\TE_TestRun\win:Stop -->
<Event Provider="{065903c1-4883-4fb8-b163-d02bd5efc74c}" Id="8" Version="0" />
<!-- Match the name of the test we are running. -->
<PayloadIdentifier FieldName="Name" FieldValue="Calculator.PerfTests.AppLifecycleTests.*" FieldValueRelationship="RegEx"/>
</Stop>
<Naming>
<PayloadBased NameField="Name"/>
</Naming>
<Region Guid="{b18b32ec-6796-43e1-802f-aec9aea5eb28}"
Name="Calculator_Launch_ProcessStart"
FriendlyName="Process Started">
<Start>
<!-- Use AAMShim_ActivationStart instead of AppLaunch_UserClick as we don't lanch from Start -->
<Event Provider="{cf7f94b3-08dc-5257-422f-497d7dc86ab3}" Name="AAMShim_ActivationStart" />
<PayloadIdentifier FieldName="AppId" FieldValue="Microsoft.WindowsCalculator.*" FieldValueRelationship="RegEx" />
</Start>
<Stop>
<Event Provider="{2839ff94-8f12-4e1b-82e3-af7af77a450f}" Name="ProcessStarted" Version="0" />
<PayloadIdentifier FieldName="ImageFileName" FieldValue=".*Calculator.exe" FieldValueRelationship="RegEx" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{b1e4255d-131c-4ea8-899d-30b7345bf7d3}"
Name="Calculator_Launch_UIThreadStart"
FriendlyName="UI Thread Started">
<Start>
<!-- Use AAMShim_ActivationStart instead of AppLaunch_UserClick as we don't lanch from Start -->
<Event Provider="{cf7f94b3-08dc-5257-422f-497d7dc86ab3}" Name="AAMShim_ActivationStart" />
<PayloadIdentifier FieldName="AppId" FieldValue="Microsoft.WindowsCalculator.*" FieldValueRelationship="RegEx" />
</Start>
<Stop>
<!-- Ideally use actual thread start event, for now it's just close, using InitializeCore -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="31" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{38084b96-d955-4603-a2c7-2720195ce160}"
Name="Calculator_Launch_InitializeCore"
FriendlyName="Create XAML Core">
<Start>
<!-- Initialize Core Start -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="31" Version="0" />
</Start>
<Stop>
<!-- Initialize Core Stop -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="32" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{cc909ec4-17c0-4cd9-9a83-293e06e0dc72}"
Name="Calculator_Launch_CreateDevice"
FriendlyName="Create Graphics Device">
<Start>
<!-- Create Device Start -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="76" Version="0" />
</Start>
<Stop>
<!-- Create Device Stop -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="77" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{0ed49a01-2604-499e-8003-0878b3b3c61e}"
Name="Calculator_Launch_CreateResourceManager"
FriendlyName="Create Resource Manager">
<Start>
<!-- Create Resource Manager Start -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="463" Version="0" />
</Start>
<Stop>
<!-- Create Resource Manager Stop -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="464" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{365920df-10e7-4b6e-8dcb-e769844ac11f}"
Name="Calculator_Launch_CreateWindow"
FriendlyName="Create Window">
<Start>
<!-- Create Window Start -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="29" Version="0" />
</Start>
<Stop>
<!-- Create Window Stop -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="30" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{09995446-0266-4a34-aa39-d99467dfe85d}"
Name="Calculator_Launch_InitializeTheme"
FriendlyName="Initialize Theme Resources">
<Start>
<!-- Theme Changed Start -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="457" Version="0" />
</Start>
<Stop>
<!-- Theme Changed Stop -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="458" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{a2fdff0b-75c8-440d-bb55-b87a3c60d55f}"
Name="Calculator_Launch_NavToFirstFrame"
FriendlyName="XAML Navigate To First Frame Drawn">
<Start>
<!-- Parse XAML -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="1" Version="0" />
<PayloadIdentifier FieldName="URI" FieldValue="ms-resource:///Files/Views/MainPage.xbf" />
</Start>
<Stop>
<!-- Frame Drawn -->
<Event Provider="{531A35AB-63CE-4BCF-AA98-F88C7A89E455}" Id="65" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
<Match>
<Event PID="true"/>
</Match>
</Region>
<Region Guid="{ffc47f79-2d90-470a-bfde-0d075972f23b}"
Name="Calculator_ApplicationActivate"
FriendlyName="Application Activate">
<Start>
<Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="5901" Version="1" />
</Start>
<Stop>
<Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="5902" Version="1" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{b0c74cf1-16fc-4a33-ba7e-2169727a08d7}"
Name="Calculator_Launch_SplashScreen"
FriendlyName="Splash Screen Dismissed">
<Start>
<!-- Use AAMShim_ActivationStart instead of AppLaunch_UserClick as we don't lanch from Start -->
<Event Provider="{cf7f94b3-08dc-5257-422f-497d7dc86ab3}" Name="AAMShim_ActivationStart" />
<PayloadIdentifier FieldName="AppId" FieldValue="Microsoft.WindowsCalculator.*" FieldValueRelationship="RegEx" />
</Start>
<Stop>
<!-- NavigationServerTask_SplashScreenDismissed -->
<Event Provider="{a0b7550f-4e9a-4f03-ad41-b8042d06a2f7}" Id="1572" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{a1648637-d5ec-46d2-9655-a26d00a35764}"
Name="Calculator_Launch_UIResponsive"
FriendlyName="UI Responsive">
<Start>
<!-- Use AAMShim_ActivationStart instead of AppLaunch_UserClick as we don't lanch from Start -->
<Event Provider="{cf7f94b3-08dc-5257-422f-497d7dc86ab3}" Name="AAMShim_ActivationStart" />
<PayloadIdentifier FieldName="AppId" FieldValue="Microsoft.WindowsCalculator.*" FieldValueRelationship="RegEx" />
</Start>
<Stop>
<Event Provider="{EF00584A-2655-462C-BC24-E7DE630E7FBF}" Name="ModernAppLaunch_UIResponsive" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{74d63c4e-7dd7-4ff6-9ee8-adb462c1c101}"
Name="Calculator_Launch_VisibleComplete"
FriendlyName="Visible Complete">
<Start>
<!-- Use AAMShim_ActivationStart instead of AppLaunch_UserClick as we don't lanch from Start -->
<Event Provider="{cf7f94b3-08dc-5257-422f-497d7dc86ab3}" Name="AAMShim_ActivationStart" />
<PayloadIdentifier FieldName="AppId" FieldValue="Microsoft.WindowsCalculator.*" FieldValueRelationship="RegEx" />
</Start>
<Stop>
<Event Provider="{EF00584A-2655-462C-BC24-E7DE630E7FBF}" Name="ModernAppLaunch_VisibleComplete" Version="0" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{ec31fb10-992b-438b-8c9e-42454f4b2e5a}"
Name="Calculator_Suspend"
FriendlyName="Suspended">
<Start>
<!-- Microsoft-Windows-Immersive-Shell\PerfTrack_PLM_SuspendApplication\win:Start -->
<Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="2450" Version="1" />
<PayloadIdentifier FieldName="PsmKey" FieldValueRelationship="RegEx" FieldValue="Microsoft.WindowsCalculator.*" />
</Start>
<Stop>
<!-- Microsoft-Windows-Immersive-Shell\PerfTrack_PLM_SuspendApplication\win:Stop -->
<Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="2451" Version="1" />
<PayloadIdentifier FieldName="AppUserModelId" FieldValue="Microsoft.WindowsCalculator.*" FieldValueRelationship="RegEx" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
<Region Guid="{83735b08-b17e-48cf-82f1-02cb08e45597}"
Name="Calculator_Resume"
FriendlyName="Resumed">
<Start>
<!-- Microsoft-Windows-Immersive-Shell\PerfTrack_PLM_ResumeApplication_EndToEnd\win:Start -->
<Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="11118" Version="0" />
<PayloadIdentifier FieldName="PsmKey" FieldValueRelationship="RegEx" FieldValue="Microsoft.WindowsCalculator.*" />
</Start>
<Stop>
<!-- Microsoft-Windows-Immersive-Shell\PerfTrack_PLM_ResumeApplication_EndToEnd\win:Stop -->
<Event Provider="{315a8872-923e-4ea2-9889-33cd4754bf64}" Id="11119" Version="0" />
<PayloadIdentifier FieldName="AppUserModelId" FieldValue="Microsoft.WindowsCalculator.*" FieldValueRelationship="RegEx" />
</Stop>
<Naming>
<PrependParentName />
</Naming>
<Metadata>
<WinperfWPAPreset.1>CPU</WinperfWPAPreset.1>
<WinperfWPAPreset.1.ProcessName>Calculator.exe</WinperfWPAPreset.1.ProcessName>
<WinperfWPAPreset.2>Commit</WinperfWPAPreset.2>
<WinperfWPAPreset.2.ProcessName>Calculator.exe</WinperfWPAPreset.2.ProcessName>
</Metadata>
</Region>
</Region>
</RegionRoot>
</Regions>
</Instrumentation>
</InstrumentationManifest>

View File

@@ -0,0 +1,54 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System;
using System.IO;
using System.Runtime.InteropServices;
using Calculator.UIAutomationLibrary;
using Microsoft.OneCoreUap.Test.AppModel;
using WEX.TestExecution;
using WEX.TestExecution.Markup;
namespace Calculator.UITests
{
[TestClass]
public class Initialization
{
[DllImport("AppModel.TestHelper.dll")]
private static extern Int32 WinRTHelper_Register();
[AssemblyInitialize]
[TestProperty("CoreClrProfile", "TestNetv2.0")]
[TestProperty("RunFixtureAs:Assembly", "System")]
public static void AssemblySetup(TestContext context)
{
Verify.AreEqual(0, WinRTHelper_Register());
TestHelper.Initialize();
// Install and Start the Etw.Service service to enable the use of EtwWaiter.
EtwHelper.InstallAndStartETWService();
bool installApp = false;
if (context.Properties.Contains("InstallApp") && (bool.TryParse(context.Properties["InstallApp"].ToString(), out installApp)) && installApp)
{
string certToDeploy = Path.Combine(TAEFHelper.GetTestDeploymentDirectory(), Constants.CertificateFileName);
InstallHelper.InstallCertFile(certToDeploy);
string vcLibsToDeploy = Path.Combine(TAEFHelper.GetTestDeploymentDirectory(), Constants.VCLibsPackageFileName);
string winUIToDeploy = Path.Combine(TAEFHelper.GetTestDeploymentDirectory(), Constants.WinUIPackageFileName);
string appxToDeploy = Path.Combine(TAEFHelper.GetTestDeploymentDirectory(), Constants.PackageFileName);
Impersonater.RunAs(Impersonater.RunAsUser.RestrictedUser, () => InstallHelper.InstallPackage(appxToDeploy, vcLibsToDeploy, winUIToDeploy));
}
}
[AssemblyCleanup]
[TestProperty("RunFixtureAs:Assembly", "System")]
public static void AssemblyCleanup()
{
// Stop and remove the Etw.Service service.
EtwHelper.StopAndRemoveETWService();
TestHelper.Uninitialize();
}
}
}

View File

@@ -0,0 +1,21 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("UIAutomationTests")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCulture("")]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("f5e8f9b8-f7f1-4300-a5cb-35bfab83f51e")]
// The following was autogenerated by UpdateVersion.ps1
[assembly: AssemblyProduct(@"10.16.1128.1252")]

View File

@@ -0,0 +1,51 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System;
using System.Linq;
using Etw.Managed;
using Microsoft.Windows.Apps.Performance;
using WEX.Logging.Interop;
using WEX.TestExecution;
using WEX.TestExecution.Markup;
using Calculator.UIAutomationLibrary;
namespace Calculator.PerfTests
{
[TestClass]
public class AppLifecycleTests
{
[TestInitialize]
[TestProperty("RunAs", "ElevatedUserOrSystem")]
public void MethodSetup()
{
Utilities.KillExistingCalculatorProcesses();
}
[TestCleanup]
[TestProperty("RunAs", "ElevatedUserOrSystem")]
public void MethodCleanup()
{
Utilities.KillExistingCalculatorProcesses();
}
/// <summary>
/// This method executes the AppLifecycle performance test.
/// The test launches the application, suspend and resumes it and then terminates the app.
///
/// A TAEF data source is used to specify the Windows Performance Recorder profile and
/// regions of interest file to use and defines threee different configurations to execute this test with.
/// Cold: The initial run to get dlls loaded into memory and to execute any first-run app logic.
/// Warm: The run that will produce consistent results and that would be used for measures.
/// Memory: A run that is focused on collecting more info on allocations.
/// </summary>
[TestMethod]
[TestProperty("RunAs", "User")]
[TestProperty("Category", "Performance")]
[TestProperty(WinperfConstants.DataSource, PerfConstants.AppLifecycleInterationsSource)]
public void AppLifecycleTest()
{
AppLifecycle.Run(Constants.PackageAppUserModelId);
}
}
}

View File

@@ -0,0 +1,49 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using Calculator.UIAutomationLibrary;
using Calculator.UIAutomationLibrary.Tests;
using WEX.TestExecution.Markup;
namespace Calculator.UITests
{
[TestClass]
public class CalculatorTests
{
[TestInitialize]
[TestProperty("RunAs", "ElevatedUserOrSystem")]
public void MethodSetup()
{
Utilities.KillExistingCalculatorProcesses();
}
[TestCleanup]
[TestProperty("RunAs", "ElevatedUserOrSystem")]
public void MethodCleanup()
{
Utilities.KillExistingCalculatorProcesses();
}
[TestMethod]
[TestProperty("RunAs", "User")]
public void OnePlusTwoTest()
{
var calculatorLfm = CalculatorAppLauncher.Launch();
calculatorLfm.CalculateOnePlusTwo();
calculatorLfm.Close();
}
[TestMethod]
[TestProperty("RunAs", "User")]
public void Sqrt4Minus2Test()
{
var calculatorLfm = CalculatorAppLauncher.Launch();
calculatorLfm.CalculateSqrt4Minus2();
calculatorLfm.Close();
}
}
}

View File

@@ -0,0 +1,43 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using MS.Internal.Mita.Foundation;
using MS.Internal.Mita.Foundation.Controls;
using MS.Internal.Mita.Foundation.Waiters;
using System;
using WEX.TestExecution;
using WEX.TestExecution.Markup;
using System.Runtime.InteropServices;
using Microsoft.OneCoreUap.Test.AppModel;
using System.IO;
using Calculator.UITests;
using Calculator.UIAutomationLibrary;
namespace Calculator.UITests
{
[TestClass]
public class LaunchTests
{
[TestInitialize]
[TestProperty("RunAs", "ElevatedUserOrSystem")]
public void MethodSetup()
{
Utilities.KillExistingCalculatorProcesses();
}
[TestCleanup]
[TestProperty("RunAs", "ElevatedUserOrSystem")]
public void MethodCleanup()
{
Utilities.KillExistingCalculatorProcesses();
}
[TestMethod]
[TestProperty("RunAs", "User")]
public void NormalLaunchTest()
{
var calculatorLfm = CalculatorAppLauncher.Launch();
calculatorLfm.Close();
}
}
}

View File

@@ -0,0 +1,19 @@
{
"dependencies": {
"AppModel.TestHelper": "2018.3.22",
"EtwProcessor.Managed": "10.34.181220007",
"Microsoft.TestInfrastructure.UniversalTest": "1.0.20181107.1",
"Microsoft.Windows.Apps.Performance": "1.0.7",
"MITALite": "1.0.180128001",
"Taef.Managed": "10.34.181220007",
"Test.Net.Redist": "2.0.1"
},
"frameworks": {
"netcore50": {}
},
"runtimes": {
"win10-arm": {},
"win10-x64": {},
"win10-x86": {}
}
}

View File

@@ -0,0 +1,73 @@
{
"$schema": "http://universaltest/schema/testmddefinition-4.json",
"Package": {
"ComponentName": "Calculator",
"SubComponentName": "UITests"
},
"SupportedArchitectures": [ "All" ],
"Execution": {
"Type": "TAEF",
"Parameter": "/ScreenCaptureOnError /TestMode:EnsureLoggedOnUser",
"ExecutionTimeoutInMinutes": "30"
},
"Dependencies": {
"Files": [
{
"SourcePath": "$(OUT_DIR)Calculator.UIAutomationLibrary.dll",
"DestinationFolderPath": "$$(TEST_DEPLOY_BIN)"
},
{
"SourcePath": "$(OUT_DIR)Microsoft.Windows.Apps.Performance.dll",
"DestinationFolderPath": "$$(TEST_DEPLOY_BIN)"
},
{
"SourcePath": "$(OUT_DIR)Config\\AppLifecycle.Profile.wprp",
"DestinationFolderPath": "$$(TEST_DEPLOY_BIN)\\Config\\"
},
{
"SourcePath": "$(OUT_DIR)Config\\AppLifecycle.Regions.xml",
"DestinationFolderPath": "$$(TEST_DEPLOY_BIN)\\Config\\"
},
{
"SourcePath": "$(OUT_DIR)Config\\AppLifecycle.Iterations.xml",
"DestinationFolderPath": "$$(TEST_DEPLOY_BIN)\\Config\\"
}
],
"Packages": [
"Microsoft-Windows-Test-Taef",
"Microsoft-Windows-Test-EtwProcessor",
"Microsoft-Test-Taef-EnsureLoggedOnUserTestMode",
"Microsoft-Test-Taef-EtwLoggerTestMode",
"Microsoft-Windows-Test-MitaLite",
"Microsoft-Windows-Test-TestNetV2.0",
"Microsoft-OneCoreUap-Test-AppModel-AreaLibrary"
]
},
"Logs": [],
"Plugins": [],
"Profiles": [
{
"Name": "All",
"Execution": {
"AdditionalParameter": "/TestMode:EtwLogger /p:InstallApp=true /select:not(@Category='Performance')"
},
"Dependencies": {
"AdditionalPackages": [
"Microsoft-Calculator-App"
]
}
},
{
"Name": "Performance",
"Execution": {
"AdditionalParameter": "/TestMode:WinPerf /WinPerf:Upload=Full /winperf:WinPerfSource=\"Utility Apps Performance Tests\" /winperf:VersionProcess=Calculator.exe /winperf:VersionImage=Calculator.exe /p:InstallApp=true /select:@Category='Performance'"
},
"Dependencies": {
"AdditionalPackages": [
"Microsoft-Windows-Performance-Winperf-Winperf",
"Microsoft-Calculator-App"
]
}
}
]
}