From 4d77e0e2fb53e240a5c208522082bf0907c5c475 Mon Sep 17 00:00:00 2001 From: Augustin Popa Date: Fri, 4 Aug 2017 11:27:59 -0700 Subject: [PATCH 01/96] Updated language in the README Converted the README to describe this particular fork of the project. --- README.md | 46 +++++++++++++++++----------------------------- 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 8eeea343a..991818247 100644 --- a/README.md +++ b/README.md @@ -4,16 +4,15 @@ [![NuGet downloads](https://img.shields.io/nuget/dt/GoogleTestAdapter.svg?colorB=0c7dbe&label=nuget)](https://www.nuget.org/packages/GoogleTestAdapter) -### Google Test Adapter +### Test Adapter for Google Test -Google Test Adapter (GTA) is a Visual Studio extension providing test discovery and execution of C++ tests written with the [Google Test](https://github.com/google/googletest) framework. - -**Update:** We proudly announce the [collaboration with Microsoft](https://blogs.msdn.microsoft.com/vcblog/2017/05/10/unit-testing-and-the-future-announcing-the-test-adapter-for-google-test/) with the aim of further improving the Google Test experience in Visual Studio! More details of our collaboration can be found at our [wiki pages](https://github.com/csoltenborn/GoogleTestAdapter/wiki) (soon). +The Test Adapter for Google Test is a Visual Studio extension providing test discovery and execution of C++ tests written with the [Google Test](https://github.com/google/googletest) framework. This is a fork of the ![original project](https://github.com/csoltenborn/GoogleTestAdapter) by Christian Soltenborn and Jonas Gefele ![Screenshot of Test Explorer](https://raw.githubusercontent.com/csoltenborn/GoogleTestAdapter/master/GoogleTestAdapter/VsPackage/Resources/Screenshot.png "Screenshot of Test Explorer") #### Features +* Project and item templates for setting up unit tests based on the Google Test framework; the project template provides automatic acquisition and setup of the Google Test framework, making it easy to get started with writing unit tests * Sequential and [parallel](#parallelization) test execution * [Traits](http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/09/how-to-manage-unit-tests-in-visual-studio-2012-update-1-part-1-using-traits-in-the-unit-test-explorer.aspx) support by means of [custom C++ macros](#trait_macros) and/or [trait assignment by regexes](#trait_regexes) * Support for [value-parameterized](https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md#value-parameterized-tests), [typed](https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md#typed-tests), and [type-parameterized](https://github.com/google/googletest/blob/master/googletest/docs/AdvancedGuide.md#type-parameterized-tests) tests @@ -32,7 +31,7 @@ Google Test Adapter (GTA) is a Visual Studio extension providing test discovery #### History -* See [releases](https://github.com/csoltenborn/GoogleTestAdapter/releases) +* See [releases](https://github.com/Microsoft/TestAdapterForGoogleTest/blob/dev15/GoogleTestAdapter/Packaging.TAfGT/ReleaseNotes.txt) ### Usage @@ -43,19 +42,18 @@ Google Test Adapter (GTA) is a Visual Studio extension providing test discovery [![Download from NuGet](https://img.shields.io/nuget/vpre/GoogleTestAdapter.svg?colorB=0c7dbe&label=nuget)](https://www.nuget.org/packages/GoogleTestAdapter) [![Download at GitHub](https://img.shields.io/github/release/csoltenborn/GoogleTestAdapter/all.svg?colorB=0c7dbe&label=github)](https://github.com/csoltenborn/GoogleTestAdapter/releases) -Google Test Adapter can be installed in three ways: +The Test Adapter for Google Test can be installed in several ways: * Install through the Visual Studio Marketplace at *Tools/Extensions and Updates* - search for *Google Test Adapter*. -* Download and launch the VSIX installer from either the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=ChristianSoltenborn.GoogleTestAdapter) or [GitHub](https://github.com/csoltenborn/GoogleTestAdapter/releases/download/v0.10.1/GoogleTestAdapter-0.10.1.vsix) -* Add a NuGet dependency to the [Google test adapter nuget package](https://www.nuget.org/packages/GoogleTestAdapter/) to your Google Test projects. Note, however, that Visual Studio integration is limited this way: VS can discover and run tests, but no debugging, options or toolbar will be available; configuration is only possible through solution config files (see below). +* Download and launch the VSIX installer from either the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=VisualCPPTeam.TestAdapterforGoogleTest) or [GitHub](https://github.com/Microsoft/TestAdapterForGoogleTest/releases) After restarting VS, your tests will be displayed in the Test Explorer at build completion time. If no or not all tests show up, have a look at the [trouble shooting section](#trouble_shooting). #### Configuration -GTA provides different ways of configuration: -* The *Google Test Adapter* section of Visual Studio's *Tools/Options* (not available if installed via NuGet). These options are referred to as *global options* in the following. -* The GTA toolbar (not available if installed via NuGet). The most important runtime options (i.e., *Parallel test execution*, *Break on failure*, *Catch exceptions*, and *Print test output*) can also be set via a toolbar; this is equivalent to setting the according options via *Tools/Options/Google Test Adapter*. +There are several different ways to configure the adapter: +* The *Test Adapter for Google Test* section of Visual Studio's *Tools/Options*. These options are referred to as *global options* in the following. +* The toolbar. The most important runtime options (i.e., *Parallel test execution*, *Break on failure*, *Catch exceptions*, and *Print test output*) can also be set via a toolbar; this is equivalent to setting the according options via *Tools/Options/Test Adapter for Google Test*. * Solution settings files (not available if run via [VsTest.Console.exe](https://msdn.microsoft.com/en-us/library/jj155800.aspx)). They are provided by means of an XML configuration file; this allows sharing of settings via source control. The configuration file must be placed in the same folder as the solution's `.sln` file, and must have the same name as that file, but with extension `.gta.runsettings`. E.g., if the solution file's name is `Foo.sln`, the settings file must be named `Foo.gta.runsettings`. * Visual Studio user settings files. VS allows for the selection of [test settings](https://msdn.microsoft.com/en-us/library/jj635153.aspx) files via the *Test/Test Settings* menu, and to pass such settings files to `VsTest.Console.exe` via the `/Settings` parameter. @@ -72,7 +70,7 @@ Overall, given a test executable `mytests.exe`, the following settings apply to 4. Solution settings of a solution settings file. 5. Global settings. -Note that due to the overriding hierarchy described above, you probably want to provide only a subset of the nodes in your configuration files. For instance, providing the node `true` in a shared solution settings file will make sure that all sharing developers will run GTA with debug output, no matter what the developer's individual settings at *Tools/Options/Google Test Adapter* are (and unless the developer has selected a test settings file via VS, which would override the solution setting). +Note that due to the overriding hierarchy described above, you probably want to provide only a subset of the nodes in your configuration files. For instance, providing the node `true` in a shared solution settings file will make sure that all sharing developers will run GTA with debug output, no matter what the developer's individual settings at *Tools/Options/Test Adapter for Google Test* are (and unless the developer has selected a test settings file via VS, which would override the solution setting). For reference, see a settings file [AllTestSettings.gta.runsettings](https://raw.githubusercontent.com/csoltenborn/GoogleTestAdapter/master/GoogleTestAdapter/Resources/AllTestSettings.gta.runsettings) containing all available settings, a more realistic solution settings file [SampleTests.gta.runsettings](https://raw.githubusercontent.com/csoltenborn/GoogleTestAdapter/master/SampleTests/SampleTests.gta.runsettings) as delivered with the SampleTests solution, and a user settings file [NonDeterministic.runsettings](https://raw.githubusercontent.com/csoltenborn/GoogleTestAdapter/master/SampleTests/NonDeterministic.runsettings) as used by GTA's end-to-end tests. @@ -129,18 +127,18 @@ If you need to perform some setup or teardown tasks in addition to the setup/tea ### External resources -* [Basic tutorial](https://usingcpp.wordpress.com/2016/07/23/google-test-and-visual-studio/) for using Google Test with GTA in Visual Studio +* [Basic tutorial](https://usingcpp.wordpress.com/2016/07/23/google-test-and-visual-studio/) for using Google Test with the Google Test Adapter in Visual Studio -### Trouble shooting +### Troubleshooting ##### None or not all of my tests show up * Switch on *Debug mode* at *Tools/Options/Google Test Adapter/General*, which will show on the test console whether your test executables are found by GTA. If they are not, you have two options: - * Configure a *Test discovery regex* at the same place. In case of GTA installation via NuGet, do not forget to add the regex to the solution config file (which might be a good idea anyways). + * Configure a *Test discovery regex* at the same place. * If your test executable is `..\FooTests.exe`, make sure that a file `..\FooTests.exe.is_google_test` exists. * Your test executable can not run with command line option `--gtest_list_tests`, e.g. because it crashes. Make sure that your tests can be listed via command line; if they do not, debug your test executable, e.g. by making the according test project the startup project of your solution, and placing a breakpoint at the main method of your test executable. * If your project configuration contains references to DLLs which do not end up in the build directory (e.g. through *Project/Properties/Linker/Input/Additional Dependencies*), these DLLs will not be found when running your tests. Use option *PATH extension* to add the directories containing these DLLs to the test executables' PATH variable. -* If your project happens to be a makefile project, there's a pitfall which will prevent GTA from discovering your tests: It appears that when importing a makefile project into VS, the *Output* setting of the project is populated from the makefile's content. However, if the makefile is edited later on such that the location of the generated test executable changes, VS does not find the test executable any more. One symptom of this is that your project can not be launched any more with `F5`. Make sure that the *Output* setting of the project is consistent with its makefile to avoid this problem. +* If your project happens to be a makefile project, there's a pitfall which will prevent the adapter from discovering your tests: It appears that when importing a makefile project into VS, the *Output* setting of the project is populated from the makefile's content. However, if the makefile is edited later on such that the location of the generated test executable changes, VS does not find the test executable any more. One symptom of this is that your project can not be launched any more with `F5`. Make sure that the *Output* setting of the project is consistent with its makefile to avoid this problem. ##### No source locations and traits are found for my tests * The test adapter is not able to find the pdb of your test executable, e.g. because it has been deleted or moved (and indicates that with a warning in the test output window). Rebuilding your solution should regenerate the pdb at an appropriate location. @@ -149,7 +147,7 @@ If you need to perform some setup or teardown tasks in addition to the setup/tea * VS 2017: `Generate debug information optimized for sharing and publishing (/DEBUG:FULL)` * Option *Parse symbol information* is set to `false`, making GTA not parse that information out of the pdb file intentionally. The actual set of options used is potentially composed from VS options, a solution settings file, and a user settings file; the resulting set of options will be logged to the test output window if the *Print debug info* option is set to `true`. -##### The Google Test Adapter extension is disabled when I start Visual Studio +##### The extension is disabled when I start Visual Studio * Your MEF cache might have been corrupted. Please refer to [this issue](https://github.com/csoltenborn/GoogleTestAdapter/issues/98) for help. @@ -162,20 +160,10 @@ Please refer to our [wiki](https://github.com/csoltenborn/GoogleTestAdapter/wiki #### People -Google Test Adapter is written and maintained by [Christian Soltenborn](https://github.com/csoltenborn) (main author) and [Jonas Gefele](https://github.com/jgefele) (regular contributor). +The original Google Test Adapter is written and maintained by [Christian Soltenborn](https://github.com/csoltenborn) (main author) and [Jonas Gefele](https://github.com/jgefele) (regular contributor). The first version of GTA was a slightly enhanced C# port of the F# [Google Test Runner](https://github.com/markusl/GoogleTestRunner), written by [Markus Lindqvist](https://github.com/markusl). We have also learned a lot from the JavaScript test runner [Chutzpah](https://github.com/mmanela/chutzpah), written by [Matthew Manela](https://github.com/mmanela). GTA has benefited from all kinds of contributions, be it feature requests, bug reports, code snippets, testing of new features and bugfixes, or even pull requests. Most (hopefully all) contributors are mentioned in the according [release notes](https://github.com/csoltenborn/GoogleTestAdapter/releases). - -#### Tools -* [ReSharper](https://www.jetbrains.com/resharper/) - awesome VS extension for .NET development, including refactoring, static analysis etc. - * thanks to [JetBrains](https://www.jetbrains.com/) for providing free licenses for our developers! - * note that JetBrains' [Resharper C++](https://www.jetbrains.com/resharper-cpp/) can also run tests written using Google Test -* [AppVeyor](http://www.appveyor.com/) - awesome .NET CI build services - * thanks for providing free services and great support for open source projects! -* [Codecov](https://codecov.io/) - code coverage visualization facilities - * thanks for providing free services for open source projects! -* [CommonMark.NET](https://github.com/Knagis/CommonMark.NET) - open source Markdown to HTML converter -* [OpenCover](https://github.com/OpenCover/opencover) - open source .NET code coverage +This particular fork of the project is maintained by the Visual C++ team at Microsoft. From 4baf798129da15dfdf5eed2d2ed0d9c64cd8cba3 Mon Sep 17 00:00:00 2001 From: Lukasz Mendakiewicz Date: Wed, 9 Aug 2017 14:35:36 -0700 Subject: [PATCH 02/96] Quote path in CreateProcess --- GoogleTestAdapter/Core/Helpers/ProcessExecutor.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/GoogleTestAdapter/Core/Helpers/ProcessExecutor.cs b/GoogleTestAdapter/Core/Helpers/ProcessExecutor.cs index ebdb6baff..953f58ff4 100644 --- a/GoogleTestAdapter/Core/Helpers/ProcessExecutor.cs +++ b/GoogleTestAdapter/Core/Helpers/ProcessExecutor.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; @@ -171,13 +173,12 @@ private static PROCESS_INFORMATION CreateProcess(string command, string paramete } }; - string commandLine = command; + string commandLine = $"\"{command}\""; if (!string.IsNullOrEmpty(parameters)) commandLine += $" {parameters}"; if (string.IsNullOrEmpty(workingDir)) workingDir = null; - PROCESS_INFORMATION processInfo; // ReSharper disable ArgumentsStyleNamedExpression // ReSharper disable ArgumentsStyleLiteral From 0237d0c6ddc3456bba2ac24d63265c675c540875 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Tue, 15 Aug 2017 14:55:11 -0700 Subject: [PATCH 03/96] add a message popup when project creation fails due to sdk not found (#22) * add a message popup when project creation fails due to sdk not found * use sdk version as string when sdk is pre-win10 --- .../NewProjectWizard/WizardImplementation.cs | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs index 98b023f2b..fb1d7d386 100644 --- a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs +++ b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs @@ -152,21 +152,32 @@ public void RunStarted(object automationObject, if (latestSdk == null) { + MessageBox.Show(Resources.WinSDKNotFound); throw new WizardCancelledException(Resources.WinSDKNotFound); } - List allPlatformsForLatestSdk = ToolLocationHelper.GetPlatformsForSDK("Windows", latestSdk.TargetPlatformVersion) - .Select(moniker => TryParsePlatformVersion(moniker)) - .Where(name => name != null) - .OrderByDescending(p => p.Version).ToList(); - Platform latestPlatform = allPlatformsForLatestSdk.FirstOrDefault(); + string versionString; - if (latestPlatform == null) + if (latestSdk.TargetPlatformVersion.Revision >= 10) { - throw new WizardCancelledException(Resources.WinSDKNotFound); - } + List allPlatformsForLatestSdk = ToolLocationHelper.GetPlatformsForSDK("Windows", latestSdk.TargetPlatformVersion) + .Select(moniker => TryParsePlatformVersion(moniker)) + .Where(name => name != null) + .OrderByDescending(p => p.Version).ToList(); + Platform latestPlatform = allPlatformsForLatestSdk.FirstOrDefault(); + + if (latestPlatform == null) + { + MessageBox.Show(Resources.WinSDKNotFound); + throw new WizardCancelledException(Resources.WinSDKNotFound); + } - string versionString = latestPlatform.Version.ToString(); + versionString = latestPlatform.Version.ToString(); + } + else + { + versionString = latestSdk.TargetPlatformVersion.ToString(); + } replacementsDictionary[TargetPlatformVersion] = versionString; } From f4d42c59035fe7bbf8f9e82effbd1660662d18a5 Mon Sep 17 00:00:00 2001 From: rashidsarwar Date: Wed, 23 Aug 2017 22:21:16 -0700 Subject: [PATCH 04/96] Make the adapter localizable (#23) * addressing feedback * Assorted fit-and-finish * Undo unfinished work for BatchFile resource * Fix some resources comments * Remove unused resources * Additional fixes --- .../Common.Dynamic.GTA/Strings.cs | 2 +- .../Common.Dynamic.TAfGT.csproj | 12 + .../Resources.Designer.cs | 99 +++ .../Common.Dynamic.TAfGT/Resources.resx | 133 +++ .../Common.Dynamic.TAfGT/Strings.cs | 8 +- .../Core.Tests/GoogleTestDiscovererTests.cs | 6 +- GoogleTestAdapter/Core/Core.csproj | 10 + .../Core/GoogleTestDiscoverer.cs | 28 +- GoogleTestAdapter/Core/GoogleTestExecutor.cs | 10 +- .../Core/Helpers/ProcessLauncher.cs | 11 +- .../Core/Helpers/RegexTraitParser.cs | 4 +- .../Core/Helpers/TestProcessLauncher.cs | 10 +- GoogleTestAdapter/Core/Helpers/Utils.cs | 4 +- GoogleTestAdapter/Core/Resources.Designer.cs | 792 ++++++++++++++++++ GoogleTestAdapter/Core/Resources.resx | 434 ++++++++++ .../Core/Runners/CommandLineGenerator.cs | 7 +- .../Core/Runners/ParallelTestRunner.cs | 15 +- .../Core/Runners/PreparingTestRunner.cs | 41 +- .../Core/Runners/SequentialTestRunner.cs | 31 +- .../Core/Runners/TestResultCollector.cs | 13 +- .../Core/Scheduling/SchedulingAnalyzer.cs | 22 +- .../Core/Scheduling/TestDurationSerializer.cs | 4 +- .../Core/Settings/SettingsWrapper.cs | 16 +- .../Core/TestCases/MethodSignatureCreator.cs | 6 +- .../Core/TestCases/NewTestCaseResolver.cs | 8 +- .../Core/TestCases/TestCaseFactory.cs | 23 +- .../Core/TestCases/TestCaseResolver.cs | 6 +- .../StandardOutputTestResultParser.cs | 8 +- ...StreamingStandardOutputTestResultParser.cs | 6 +- .../Core/TestResults/XmlTestResultParser.cs | 14 +- .../DiaResolver.Tests/DiaResolverTests.cs | 6 +- GoogleTestAdapter/DiaResolver/DiaFactory.cs | 2 +- GoogleTestAdapter/DiaResolver/DiaResolver.cs | 18 +- .../DiaResolver/DiaResolver.csproj | 12 + GoogleTestAdapter/DiaResolver/PeParser.cs | 6 +- .../DiaResolver/Resources.Designer.cs | 144 ++++ GoogleTestAdapter/DiaResolver/Resources.resx | 152 ++++ .../TestAdapter.Tests/TestDiscovererTests.cs | 8 +- .../TestExecutorTestsBase.cs | 29 +- .../TestAdapter/CommonFunctions.cs | 21 +- .../TestAdapter/DataConversionExtensions.cs | 6 +- .../Framework/MessageBasedDebuggerAttacher.cs | 10 +- .../Framework/VsTestFrameworkLogger.cs | 10 +- .../TestAdapter/Framework/VsVersion.cs | 10 +- .../TestAdapter/Helpers/TestCaseFilter.cs | 16 +- .../TestAdapter/Resources.Designer.cs | 351 ++++++++ GoogleTestAdapter/TestAdapter/Resources.resx | 241 ++++++ .../Settings/RunSettingsContainer.cs | 4 +- .../TestAdapter/TestAdapter.csproj | 10 + .../TestAdapter/TestDiscoverer.cs | 14 +- GoogleTestAdapter/TestAdapter/TestExecutor.cs | 20 +- 51 files changed, 2649 insertions(+), 224 deletions(-) create mode 100644 GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs create mode 100644 GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx create mode 100644 GoogleTestAdapter/Core/Resources.Designer.cs create mode 100644 GoogleTestAdapter/Core/Resources.resx create mode 100644 GoogleTestAdapter/DiaResolver/Resources.Designer.cs create mode 100644 GoogleTestAdapter/DiaResolver/Resources.resx create mode 100644 GoogleTestAdapter/TestAdapter/Resources.Designer.cs create mode 100644 GoogleTestAdapter/TestAdapter/Resources.resx diff --git a/GoogleTestAdapter/Common.Dynamic.GTA/Strings.cs b/GoogleTestAdapter/Common.Dynamic.GTA/Strings.cs index 596147fd5..811c23b9f 100644 --- a/GoogleTestAdapter/Common.Dynamic.GTA/Strings.cs +++ b/GoogleTestAdapter/Common.Dynamic.GTA/Strings.cs @@ -6,7 +6,7 @@ namespace GoogleTestAdapter.Common public class Strings : IStrings { public string ExtensionName => "Google Test Adapter"; - public string TroubleShootingLink => "Check out Google Test Adapter's trouble shooting section at https://github.com/csoltenborn/GoogleTestAdapter#trouble_shooting"; + public string TroubleShootingLink => "{0}Check out Google Test Adapter's trouble shooting section at https://github.com/csoltenborn/GoogleTestAdapter#trouble_shooting"; public string TestDiscoveryStarting => "Google Test Adapter: Test discovery starting..."; public string TestExecutionStarting => "Google Test Adapter: Test execution starting..."; } diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj b/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj index f203e790d..06d569892 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj @@ -50,6 +50,11 @@ + + True + True + Resources.resx + @@ -61,6 +66,13 @@ Common + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs new file mode 100644 index 000000000..1e990c292 --- /dev/null +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs @@ -0,0 +1,99 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GoogleTestAdapter.Common { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GoogleTestAdapter.Common.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Test Adapter for Google Test. + /// + internal static string ExtensionName { + get { + return ResourceManager.GetString("ExtensionName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test Adapter for Google Test: Test discovery starting.... + /// + internal static string TestDiscoveryStarting { + get { + return ResourceManager.GetString("TestDiscoveryStarting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test Adapter for Google Test: Test execution starting.... + /// + internal static string TestExecutionStarting { + get { + return ResourceManager.GetString("TestExecutionStarting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Check out Test Adapter for Google Test's trouble shooting section at https://go.microsoft.com/fwlink/?linkid=848168. + /// + internal static string TroubleShootingLink { + get { + return ResourceManager.GetString("TroubleShootingLink", resourceCulture); + } + } + } +} diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx new file mode 100644 index 000000000..28ecd4c11 --- /dev/null +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Test Adapter for Google Test + + + Test Adapter for Google Test: Test discovery starting... + + + Test Adapter for Google Test: Test execution starting... + + + {0}Check out Test Adapter for Google Test's trouble shooting section at https://go.microsoft.com/fwlink/?linkid=848168 + {0} is empty or a name of a thread followed by space (e.g. "[T0] ") + + \ No newline at end of file diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Strings.cs b/GoogleTestAdapter/Common.Dynamic.TAfGT/Strings.cs index 339711d38..6908f7ea9 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Strings.cs +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Strings.cs @@ -5,9 +5,9 @@ namespace GoogleTestAdapter.Common { public class Strings : IStrings { - public string ExtensionName => "Test Adapter for Google Test"; - public string TroubleShootingLink => "Check out Test Adapter for Google Test's trouble shooting section at https://go.microsoft.com/fwlink/?linkid=848168"; - public string TestDiscoveryStarting => "Test Adapter for Google Test: Test discovery starting..."; - public string TestExecutionStarting => "Test Adapter for Google Test: Test execution starting..."; + public string ExtensionName => Resources.ExtensionName; + public string TroubleShootingLink => Resources.TroubleShootingLink; + public string TestDiscoveryStarting => Resources.TestDiscoveryStarting; + public string TestExecutionStarting => Resources.TestExecutionStarting; } } diff --git a/GoogleTestAdapter/Core.Tests/GoogleTestDiscovererTests.cs b/GoogleTestAdapter/Core.Tests/GoogleTestDiscovererTests.cs index c5911754f..f14924f9c 100644 --- a/GoogleTestAdapter/Core.Tests/GoogleTestDiscovererTests.cs +++ b/GoogleTestAdapter/Core.Tests/GoogleTestDiscovererTests.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; @@ -163,7 +165,7 @@ public void GetTestsFromExecutable_WithoutPathExtension_ProducesWarning() IList testCases = discoverer.GetTestsFromExecutable(targetExe); testCases.Count.Should().Be(0); - MockLogger.Verify(l => l.LogError(It.Is(s => s.StartsWith("Could not list test cases of executable")))); + MockLogger.Verify(l => l.LogError(It.Is(s => s.StartsWith("Could not list test cases for executable")))); } finally { diff --git a/GoogleTestAdapter/Core/Core.csproj b/GoogleTestAdapter/Core/Core.csproj index 9669590d8..784f6c73a 100644 --- a/GoogleTestAdapter/Core/Core.csproj +++ b/GoogleTestAdapter/Core/Core.csproj @@ -67,6 +67,11 @@ + + True + True + Resources.resx + @@ -108,6 +113,11 @@ Designer GtaTestDurations.xsd + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + diff --git a/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs b/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs index 589800837..c6559e381 100644 --- a/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs +++ b/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 7/2017. +// This file has been modified by Microsoft on 8/2017. using GoogleTestAdapter.Common; using GoogleTestAdapter.DiaResolver; @@ -70,12 +70,12 @@ private static void DiscoverTests(string executable, ITestFrameworkReporter repo Action reportTestCases = tc => { reporter.ReportTestsFound(tc.Yield()); - logger.DebugInfo("Added testcase " + tc.DisplayName); + logger.DebugInfo(String.Format(Resources.AddedTestCase, tc.DisplayName)); nrOfTestCases++; }; var factory = new TestCaseFactory(executable, logger, settings, diaResolverFactory); factory.CreateTestCases(reportTestCases); - logger.LogInfo("Found " + nrOfTestCases + " tests in executable " + executable); + logger.LogInfo(String.Format(Resources.NumberOfTestsMessage, nrOfTestCases, executable)); }, logger); } @@ -86,9 +86,9 @@ public IList GetTestsFromExecutable(string executable) foreach (TestCase testCase in testCases) { - _logger.DebugInfo("Added testcase " + testCase.DisplayName); + _logger.DebugInfo(String.Format(Resources.AddedTestCase, testCase.DisplayName)); } - _logger.LogInfo("Found " + testCases.Count + " tests in executable " + executable); + _logger.LogInfo(String.Format(Resources.NumberOfTestsMessage, testCases.Count, executable)); return testCases; } @@ -98,27 +98,25 @@ public bool IsGoogleTestExecutable(string executable, string customRegex = "") string googleTestIndicatorFile = $"{executable}{GoogleTestIndicator}"; if (File.Exists(googleTestIndicatorFile)) { - _logger.DebugInfo($"Google Test indicator file found for executable {executable}"); + _logger.DebugInfo(String.Format(Resources.FileFound, executable)); return true; } - _logger.DebugInfo($"No Google Test indicator file found for executable {executable}"); + _logger.DebugInfo(String.Format(Resources.FileNotFound, executable)); bool matches; - string regexSource, regex; + string regex; if (string.IsNullOrWhiteSpace(customRegex)) { - regexSource = "default"; regex = SettingsWrapper.TestFinderRegex; matches = CompiledTestFinderRegex.IsMatch(executable); + _logger.DebugInfo(String.Format(matches ? Resources.MatchesDefault : Resources.DoesntMatchDefault, executable, regex)); } else { - regexSource = "custom"; regex = customRegex; matches = SafeMatches(executable, customRegex); + _logger.DebugInfo(String.Format(matches ? Resources.MatchesCustom : Resources.DoesntMatchCustom, executable, regex)); } - _logger.DebugInfo( - $"'{executable}' {(matches ? "matches" : "does not match")} {regexSource} regex '{regex}'"); return matches; } @@ -146,11 +144,11 @@ private bool SafeMatches(string executable, string regex) } catch (ArgumentException e) { - _logger.LogError($"Regex '{regex}' can not be parsed: {e.Message}"); + _logger.LogError(String.Format(Resources.RegexParseError, regex, e.Message)); } catch (RegexMatchTimeoutException e) { - _logger.LogError($"Regex '{regex}' timed out: {e.Message}"); + _logger.LogError(String.Format(Resources.RegexTimedOut, regex, e.Message)); } return matches; } @@ -160,7 +158,7 @@ private static bool VerifyExecutableTrust(string executable, ILogger logger) var zone = Zone.CreateFromUrl(executable); if (zone.SecurityZone != System.Security.SecurityZone.MyComputer) { - logger.LogError("Executable " + executable + " came from another computer and was blocked to help protect this computer."); + logger.LogError(String.Format(Resources.ExecutableError, executable)); return false; } return true; diff --git a/GoogleTestAdapter/Core/GoogleTestExecutor.cs b/GoogleTestAdapter/Core/GoogleTestExecutor.cs index 54146b140..2480f7b73 100644 --- a/GoogleTestAdapter/Core/GoogleTestExecutor.cs +++ b/GoogleTestAdapter/Core/GoogleTestExecutor.cs @@ -1,4 +1,7 @@ -using System.Linq; +// This file has been modified by Microsoft on 8/2017. + +using System; +using System.Linq; using System.Collections.Generic; using GoogleTestAdapter.Common; using GoogleTestAdapter.Model; @@ -31,7 +34,7 @@ public GoogleTestExecutor(ILogger logger, SettingsWrapper settings) public void RunTests(IEnumerable testCasesToRun, ITestFrameworkReporter reporter, IDebuggedProcessLauncher launcher, bool isBeingDebugged, string solutionDirectory, IProcessExecutor executor) { TestCase[] testCasesToRunAsArray = testCasesToRun as TestCase[] ?? testCasesToRun.ToArray(); - _logger.LogInfo("Running " + testCasesToRunAsArray.Length + " tests..."); + _logger.LogInfo(String.Format(Resources.NumberOfTestsRunningMessage, testCasesToRunAsArray.Length)); lock (this) { @@ -68,8 +71,7 @@ private void ComputeTestRunner(ITestFrameworkReporter reporter, bool isBeingDebu _runner = new PreparingTestRunner(solutionDirectory, reporter, _logger, _settings, _schedulingAnalyzer); if (_settings.ParallelTestExecution && isBeingDebugged) { - _logger.DebugInfo( - "Parallel execution is selected in options, but tests are executed sequentially because debugger is attached."); + _logger.DebugInfo(Resources.ParallelExecution); } } } diff --git a/GoogleTestAdapter/Core/Helpers/ProcessLauncher.cs b/GoogleTestAdapter/Core/Helpers/ProcessLauncher.cs index ea0f21eef..2f231f411 100644 --- a/GoogleTestAdapter/Core/Helpers/ProcessLauncher.cs +++ b/GoogleTestAdapter/Core/Helpers/ProcessLauncher.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections.Generic; using System.Diagnostics; using System.Text; @@ -70,13 +72,12 @@ private int LaunchProcess(string workingDirectory, string command, string param, var waiter = new ProcessWaiter(process); if (printTestOutput) { - _logger.LogInfo( - ">>>>>>>>>>>>>>> Output of command '" + command + " " + param + "'"); + _logger.LogInfo(String.Format(Resources.OutputOfCommandMessage, "", command, param)); } ReadTheStream(process, output, printTestOutput, throwIfError); if (printTestOutput) { - _logger.LogInfo("<<<<<<<<<<<<<<< End of Output"); + _logger.LogInfo(String.Format(Resources.EndOfOutputMessage, "")); } return waiter.WaitForExit(); } @@ -100,7 +101,7 @@ private void ReadTheStream(Process process, List streamContent, bool pri } if (throwIfError && process.ExitCode != 0) { - throw new Exception("Process exited with return code " + process.ExitCode); + throw new Exception(String.Format(Resources.ProcessExitCode, process.ExitCode)); } } diff --git a/GoogleTestAdapter/Core/Helpers/RegexTraitParser.cs b/GoogleTestAdapter/Core/Helpers/RegexTraitParser.cs index 155cca335..fcd7045b9 100644 --- a/GoogleTestAdapter/Core/Helpers/RegexTraitParser.cs +++ b/GoogleTestAdapter/Core/Helpers/RegexTraitParser.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 8/2017. using GoogleTestAdapter.Common; using GoogleTestAdapter.Settings; @@ -31,7 +31,7 @@ public List ParseTraitsRegexesString(string option, bool ignoreE } catch (Exception e) { - string message = "Could not parse pair '" + pair + "', exception message: " + e.Message; + string message = String.Format(Resources.ParsePair, pair, e.Message); if (ignoreErrors) _logger?.LogError(message); else diff --git a/GoogleTestAdapter/Core/Helpers/TestProcessLauncher.cs b/GoogleTestAdapter/Core/Helpers/TestProcessLauncher.cs index 3d3825312..5869ea951 100644 --- a/GoogleTestAdapter/Core/Helpers/TestProcessLauncher.cs +++ b/GoogleTestAdapter/Core/Helpers/TestProcessLauncher.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections.Generic; using System.Diagnostics; using GoogleTestAdapter.Common; @@ -61,11 +63,11 @@ public static void KillProcess(int processId, ILogger logger) try { process.Kill(); - logger.DebugInfo($"Killed process {process} with startTime={startTime.ToShortTimeString()}"); + logger.DebugInfo(String.Format(Resources.TerminatedProcess, process, startTime.ToShortTimeString())); } catch (Exception e) { - logger.DebugWarning($"Could not kill process {process} with startTime={startTime.ToShortTimeString()}: {e.Message}"); + logger.DebugWarning(String.Format(Resources.CouldNotTerminate, process, startTime.ToShortTimeString(), e.Message)); } } catch (Exception) @@ -78,7 +80,7 @@ public static void KillProcess(int processId, ILogger logger) private int LaunchProcessWithDebuggerAttached(string workingDirectory, string command, string param, bool printTestOutput, IDebuggedProcessLauncher handle) { - _logger.LogInfo("Attaching debugger to " + command); + _logger.LogInfo(String.Format(Resources.AttachDebuggerMessage, command)); if (printTestOutput) { _logger.DebugInfo( diff --git a/GoogleTestAdapter/Core/Helpers/Utils.cs b/GoogleTestAdapter/Core/Helpers/Utils.cs index a23f45da5..8158d2d93 100644 --- a/GoogleTestAdapter/Core/Helpers/Utils.cs +++ b/GoogleTestAdapter/Core/Helpers/Utils.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 8/2017. using System; using System.Globalization; @@ -73,7 +73,7 @@ public static void ValidateRegex(string pattern) } catch (ArgumentException e) { - throw new Exception($"Invalid regular expression \"{pattern}\", exception message: {e.Message}"); + throw new Exception(String.Format(Resources.InvalidRegularExpression, pattern, e.Message)); } } diff --git a/GoogleTestAdapter/Core/Resources.Designer.cs b/GoogleTestAdapter/Core/Resources.Designer.cs new file mode 100644 index 000000000..eb49339e7 --- /dev/null +++ b/GoogleTestAdapter/Core/Resources.Designer.cs @@ -0,0 +1,792 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GoogleTestAdapter { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GoogleTestAdapter.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Number of actual test case durations: {0}. + /// + internal static string ActualTestCase { + get { + return ResourceManager.GetString("ActualTestCase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Added test case '{0}'. + /// + internal static string AddedTestCase { + get { + return ResourceManager.GetString("AddedTestCase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Test case already in analyzer: {1}. + /// + internal static string AlreadyInAnalyzer { + get { + return ResourceManager.GetString("AlreadyInAnalyzer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Attaching debugger to {0}. + /// + internal static string AttachDebuggerMessage { + get { + return ResourceManager.GetString("AttachDebuggerMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Average difference between expected and actual duration: {0} ms. + /// + internal static string AvgDifference { + get { + return ResourceManager.GetString("AvgDifference", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}{1}: Did not find file: {2}. + /// + internal static string BatchFileMissing { + get { + return ResourceManager.GetString("BatchFileMissing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}{1}: Exited with code {2}, executed command: '{3}'. + /// + internal static string BatchReturnedExitCode { + get { + return ResourceManager.GetString("BatchReturnedExitCode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Collected {1} test result(s) from result XML file {2}. + /// + internal static string CollectedResults { + get { + return ResourceManager.GetString("CollectedResults", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Collected {1} test results from console output. + /// + internal static string CollectedResultsFromConsole { + get { + return ResourceManager.GetString("CollectedResultsFromConsole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Command executed: '{0} {1}', working directory: '{2}'. + /// + internal static string CommandExecuted { + get { + return ResourceManager.GetString("CommandExecuted", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Exceeded maximum allowed command line length ({0}) after including {1} tests (next string length is {2}). + /// + internal static string CommandLineGeneratorError { + get { + return ResourceManager.GetString("CommandLineGeneratorError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not list test cases for executable '{0}': process execution failed with exit code {1}. + /// + internal static string CouldNotListTestCases { + get { + return ResourceManager.GetString("CouldNotListTestCases", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not terminate process {0} started at {1}: {2}. + /// + internal static string CouldNotTerminate { + get { + return ResourceManager.GetString("CouldNotTerminate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to reason is probably a crash of test {0}. + /// + internal static string CrashTest { + get { + return ResourceManager.GetString("CrashTest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Created {1} test results for tests which were neither found in result XML file nor in console output. + /// + internal static string CreatedTestResults { + get { + return ResourceManager.GetString("CreatedTestResults", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Could not delete test directory '{1}': {2}. + /// + internal static string DeleteTestDir { + get { + return ResourceManager.GetString("DeleteTestDir", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} does not match custom regex {1}. + /// + internal static string DoesntMatchCustom { + get { + return ResourceManager.GetString("DoesntMatchCustom", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} does not match default regex {1}. + /// + internal static string DoesntMatchDefault { + get { + return ResourceManager.GetString("DoesntMatchDefault", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}<<<<<<<<<<<<<<< End of Output. + /// + internal static string EndOfOutputMessage { + get { + return ResourceManager.GetString("EndOfOutputMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Exception while running tests: {1}. + /// + internal static string ExceptionMessage { + get { + return ResourceManager.GetString("ExceptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Exception while resolving test locations and traits in {0}\n{1}. + /// + internal static string ExceptionResolving { + get { + return ResourceManager.GetString("ExceptionResolving", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Executable {0} came from another computer and was blocked to help protect this computer.. + /// + internal static string ExecutableError { + get { + return ResourceManager.GetString("ExecutableError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}In particular: launch command prompt, change into directory '{1}', and execute the following command to make sure your tests can be run in general.{2}{3} {4}. + /// + internal static string ExecuteSteps { + get { + return ResourceManager.GetString("ExecuteSteps", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Execution has been cancelled: {1}. + /// + internal static string ExecutionCancelled { + get { + return ResourceManager.GetString("ExecutionCancelled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Execution is already running with settings for executable {0}, cannot switch to settings for {1}. + /// + internal static string ExecutionString { + get { + return ResourceManager.GetString("ExecutionString", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Execution took {1}. + /// + internal static string ExecutionTime { + get { + return ResourceManager.GetString("ExecutionTime", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} expected durations have been found in actual durations. + /// + internal static string ExpectedDurations { + get { + return ResourceManager.GetString("ExpectedDurations", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Number of expected test case durations: {0}. + /// + internal static string ExpectedTestCase { + get { + return ResourceManager.GetString("ExpectedTestCase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Google Test indicator file found for executable {0}. + /// + internal static string FileFound { + get { + return ResourceManager.GetString("FileFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No Google Test indicator file found for executable {0}. + /// + internal static string FileNotFound { + get { + return ResourceManager.GetString("FileNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Found {0} test method symbols and {1} trait symbols in binary {2}. + /// + internal static string FoundTestMethod { + get { + return ResourceManager.GetString("FoundTestMethod", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid file {0}. {1}. + /// + internal static string InvalidFile { + get { + return ResourceManager.GetString("InvalidFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid regular expression "{0}", exception message: {1}. + /// + internal static string InvalidRegularExpression { + get { + return ResourceManager.GetString("InvalidRegularExpression", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not find source location for test {0}. + /// + internal static string LocationNotFoundError { + get { + return ResourceManager.GetString("LocationNotFoundError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} matches custom regex {1}. + /// + internal static string MatchesCustom { + get { + return ResourceManager.GetString("MatchesCustom", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} matches default regex {1}. + /// + internal static string MatchesDefault { + get { + return ResourceManager.GetString("MatchesDefault", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} must never be < 0. + /// + internal static string NeverBeZero { + get { + return ResourceManager.GetString("NeverBeZero", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No known test case for test result of line '{0}' - are you repeating a test run, but tests have changed in the meantime?. + /// + internal static string NoKnownTestCaseMessage { + get { + return ResourceManager.GetString("NoKnownTestCaseMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Command produced no output. + /// + internal static string NoOutput { + get { + return ResourceManager.GetString("NoOutput", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No settings configured for test executable '{0}'; running with solution settings: {1}. + /// + internal static string NoSettingConfigured { + get { + return ResourceManager.GetString("NoSettingConfigured", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note that no test output will be shown on the test console when executing tests concurrently!. + /// + internal static string NoTestOutputShown { + get { + return ResourceManager.GetString("NoTestOutputShown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Nothing to report.. + /// + internal static string NothingToReport { + get { + return ResourceManager.GetString("NothingToReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Found {0} tests in executable {1}. + /// + internal static string NumberOfTestsMessage { + get { + return ResourceManager.GetString("NumberOfTestsMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Running {0} tests.... + /// + internal static string NumberOfTestsRunningMessage { + get { + return ResourceManager.GetString("NumberOfTestsRunningMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Output file does not exist, did your tests crash?. + /// + internal static string OutputFileMissing { + get { + return ResourceManager.GetString("OutputFileMissing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Output of command:. + /// + internal static string OutputOfCommand { + get { + return ResourceManager.GetString("OutputOfCommand", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}>>>>>>>>>>>>>>> Output of command '{1} {2}'. + /// + internal static string OutputOfCommandMessage { + get { + return ResourceManager.GetString("OutputOfCommandMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parallel execution is selected in options, but tests are executed sequentially because debugger is attached.. + /// + internal static string ParallelExecution { + get { + return ResourceManager.GetString("ParallelExecution", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not parse duration in line '{0}'. + /// + internal static string ParseDurationMessage { + get { + return ResourceManager.GetString("ParseDurationMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not parse pair '{0}', exception message: {1}. + /// + internal static string ParsePair { + get { + return ResourceManager.GetString("ParsePair", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Process has exited with code {0}. + /// + internal static string ProcessExitCode { + get { + return ResourceManager.GetString("ProcessExitCode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not read test durations: {0}. + /// + internal static string ReadTestDurationError { + get { + return ResourceManager.GetString("ReadTestDurationError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Regex '{0}' cannot be parsed: {1}. + /// + internal static string RegexParseError { + get { + return ResourceManager.GetString("RegexParseError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Regex '{0}' timed out: {1}. + /// + internal static string RegexTimedOut { + get { + return ResourceManager.GetString("RegexTimedOut", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Reported {1} test results to Visual Studio during test execution, executable: '{2}'. + /// + internal static string ReportedResultsToVS { + get { + return ResourceManager.GetString("ReportedResultsToVS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Reported {1} test results to Visual Studio, executable: '{2}', duration: {3}. + /// + internal static string ReportedTestResults { + get { + return ResourceManager.GetString("ReportedTestResults", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Restoring solution settings: {0}. + /// + internal static string RestoringSolutionSettings { + get { + return ResourceManager.GetString("RestoringSolutionSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test {0}: Expected {1} ms, actual {2} ms. + /// + internal static string Results { + get { + return ResourceManager.GetString("Results", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}{1}: Exception caught, message: '{2}', executed command: '{3}'. + /// + internal static string RunBatchException { + get { + return ResourceManager.GetString("RunBatchException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Failed to run test executable '{1}': {2}. + /// + internal static string RunExecutableError { + get { + return ResourceManager.GetString("RunExecutableError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to >>> Scheduling statistics <<<. + /// + internal static string SchedulingStats { + get { + return ResourceManager.GetString("SchedulingStats", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings for test executable '{0}': {1}. + /// + internal static string SettingsMessage { + get { + return ResourceManager.GetString("SettingsMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to SettingsWrapper is already running with settings for an executable on thread '{0}', cannot also be used by thread '{1}'. + /// + internal static string SettingsWrapperString { + get { + return ResourceManager.GetString("SettingsWrapperString", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Stack trace:{1}{2}. + /// + internal static string StackTrace { + get { + return ResourceManager.GetString("StackTrace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Standard deviation: {0} ms. + /// + internal static string StandardDeviation { + get { + return ResourceManager.GetString("StandardDeviation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}{1}: Successfully ran '{2}'. + /// + internal static string SuccessfullyRun { + get { + return ResourceManager.GetString("SuccessfullyRun", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Terminated process {0} started at {1}. + /// + internal static string TerminatedProcess { + get { + return ResourceManager.GetString("TerminatedProcess", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test case already in analyzer: {0}. + /// + internal static string TestCaseInAnalyzer { + get { + return ResourceManager.GetString("TestCaseInAnalyzer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}{1} test cases seem to not have been run - are you repeating a test run, but tests have changed in the meantime? Test cases:{2}{3}. + /// + internal static string TestCaseNotRun { + get { + return ResourceManager.GetString("TestCaseNotRun", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test whether the following commands can be executed sucessfully on the command line (make sure all required binaries are on the PATH):{0}{1}. + /// + internal static string TestCommandCanBeRun { + get { + return ResourceManager.GetString("TestCommandCanBeRun", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test discovery was cancelled after {0} s for executable {1}. + /// + internal static string TestDiscoveryCancelled { + get { + return ResourceManager.GetString("TestDiscoveryCancelled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test result file {0} could not be parsed (completely) - your test executable has probably crashed. Exception message: {1}. + /// + internal static string TestResultParse { + get { + return ResourceManager.GetString("TestResultParse", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test setup batch file. + /// + internal static string TestSetupBatchFile { + get { + return ResourceManager.GetString("TestSetupBatchFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test teardown batch file. + /// + internal static string TestTeardownBatchFile { + get { + return ResourceManager.GetString("TestTeardownBatchFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Executing tests on {0} threads. + /// + internal static string ThreadExecutionMessage { + get { + return ResourceManager.GetString("ThreadExecutionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unknown literal: {0}. + /// + internal static string UnknownLiteral { + get { + return ResourceManager.GetString("UnknownLiteral", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unknown test case status: {0}. + /// + internal static string UnknownTestCase { + get { + return ResourceManager.GetString("UnknownTestCase", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Using splitter based on test durations. + /// + internal static string UsingSplitterOnDuration { + get { + return ResourceManager.GetString("UsingSplitterOnDuration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Using splitter based on number of tests. + /// + internal static string UsingSplitterOnNumber { + get { + return ResourceManager.GetString("UsingSplitterOnNumber", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} worst differences:. + /// + internal static string WorstDifferences { + get { + return ResourceManager.GetString("WorstDifferences", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to XmlNode could not be parsed: '{0}'. Exception message: {1}. + /// + internal static string XmlNodeParse { + get { + return ResourceManager.GetString("XmlNodeParse", resourceCulture); + } + } + } +} diff --git a/GoogleTestAdapter/Core/Resources.resx b/GoogleTestAdapter/Core/Resources.resx new file mode 100644 index 000000000..dbccca410 --- /dev/null +++ b/GoogleTestAdapter/Core/Resources.resx @@ -0,0 +1,434 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Number of actual test case durations: {0} + {0} represents a number (e.g. 5) + + + Added test case '{0}' + {0} represents an unlocalized test name (e.g. "TestSuite1.Test2") + + + {0}Test case already in analyzer: {1} + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents an unlocalized test name (e.g. "TestSuite1.Test2") + + + Attaching debugger to {0} + {0} represents an unlocalized command to which debugger attaches (e.g. cmd.exe) + + + Average difference between expected and actual duration: {0} ms + {0} represents a number (e.g. 5) + + + {0}{1}: Did not find file: {2} + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} is TestSetupBatchFile or TestTeardownBatchFile string, {2} represents unlocalized file path (e.g c:\test\foo.bat) + + + {0}{1}: Exited with code {2}, executed command: '{3}' + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} is TestSetupBatchFile or TestTeardownBatchFile string, {2} represents a number (e.g. 5), {3} represents unlocalized file path (e.g c:\test\foo.bat) + + + {0}Collected {1} test result(s) from result XML file {2} + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents a number (e.g. 5), {2} represents unlocalized file path (e.g c:\test\results.xml) + + + {0}Collected {1} test results from console output + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents a number (e.g. 5) + + + Command executed: '{0} {1}', working directory: '{2}' + {0} represents an unlocalized name of executable (e.g. cmd.exe) file, {1} represents unlocalized options to test (e.g. "gtest_list_tests"), {2} represents unlocalized directory path (e.g c:\test\dir) + + + Exceeded maximum allowed command line length ({0}) after including {1} tests (next string length is {2}) + {0} represents a number (e.g. 5), {1} represents a number (e.g. 5), {2} represents a number (e.g. 5) + + + Could not list test cases for executable '{0}': process execution failed with exit code {1} + {0} represents an unlocalized name of executable (e.g. cmd.exe) file, {1} is a number + + + Could not terminate process {0} started at {1}: {2} + {0} represents an unlocalized process name (e.g notepad.exe), {1} represents unlocalized string for time (e.g. "3/1/2008 7:00:00 AM"), {2} represents localized exception message (e.g. "Cannot load file") + + + reason is probably a crash of test {0} + {0} represents an unlocalized name of test (e.g. foo) + + + {0}Created {1} test results for tests which were neither found in result XML file nor in console output + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents a number (e.g. 5) + + + {0}Could not delete test directory '{1}': {2} + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents unlocalized directory path (e.g c:\test\dir), {2} represents localized exception message (e.g. "Cannot load file") + + + {0} does not match custom regex {1} + {0} represents an unlocalized name of executable (e.g. cmd.exe) file, {1} represents unlocalized string for regular expression (e.g ".*a.exe") + + + {0} does not match default regex {1} + {0} represents an unlocalized name of executable (e.g. cmd.exe) file, {1} represents unlocalized string for regular expression (e.g ".*a.exe") + + + {0}<<<<<<<<<<<<<<< End of Output + {0} is empty or a name of a thread followed by space (e.g. "[T0] ") + + + {0}Exception while running tests: {1} + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents localized exception message (e.g. "Cannot load file") + + + Exception while resolving test locations and traits in {0}\n{1} + {0} represents an unlocalized binary name (e.g notepad.exe), {1} represents localized exception message (e.g. "Cannot load file") + + + Executable {0} came from another computer and was blocked to help protect this computer. + {0} represents an unlocalized name of executable (e.g. cmd.exe) file + + + {0}In particular: launch command prompt, change into directory '{1}', and execute the following command to make sure your tests can be run in general.{2}{3} {4} + This sentence is continuation of TroubleShootingLink string from Common.Dynamic.TAfGT resources file. {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents unlocalized directory path (e.g c:\test\dir), {2} represents an unlocalized new line string (e.g "\n"), {3} is a name of an executable (e.g. foo.exe), {4} are parameters passed to the executable (e.g. /bar) + + + {0}Execution has been cancelled: {1} + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents localized exception message (e.g. "Cannot load file") + + + Execution is already running with settings for executable {0}, cannot switch to settings for {1} + {0} represents an unlocalized name of executable (e.g. cmd.exe) file, {1} represents an unlocalized name of executable (e.g. cmd.exe) file + + + {0}Execution took {1} + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents unlocalized string for time it took (e.g. "0:00:02.0504161") + + + {0} expected durations have been found in actual durations + {0} represents a number (e.g. 5) + + + Number of expected test case durations: {0} + {0} represents a number (e.g. 5) + + + Google Test indicator file found for executable {0} + {0} represents an unlocalized name of executable (e.g. cmd.exe) file + + + No Google Test indicator file found for executable {0} + {0} represents an unlocalized name of executable (e.g. cmd.exe) file + + + Found {0} test method symbols and {1} trait symbols in binary {2} + {0} represents a number (e.g. 5), {1} represents a number (e.g. 5), {2} represents an unlocalized binary name (e.g notepad.exe) + + + Invalid file {0}. {1} + {0} represents an unlocalized file name (e.g. c:\foo.exe.gta.testdurations), {1} represents localized exception message (e.g. "Cannot load file") + + + Invalid regular expression "{0}", exception message: {1} + {0} represents an unlocalized regex (e.g. "abc*d+e*"), {1} represents localized exception message (e.g. "Cannot load file") + + + Could not find source location for test {0} + {0} represents an unlocalized test name (e.g. "TestSuite1.Test2") + + + {0} matches custom regex {1} + {0} represents an unlocalized name of executable (e.g. cmd.exe) file, {1} represents unlocalized string for regular expression (e.g ".*a.exe") + + + {0} matches default regex {1} + {0} represents an unlocalized name of executable (e.g. cmd.exe) file, {1} represents unlocalized string for regular expression (e.g ".*a.exe") + + + {0} must never be < 0 + {0} represents an unlocalized string for name of variable (e.g. _nrOfRunningExecutions) + + + No known test case for test result of line '{0}' - are you repeating a test run, but tests have changed in the meantime? + {0} represents an unlocalized string for line in test + + + Command produced no output + + + No settings configured for test executable '{0}'; running with solution settings: {1} + {0} represents an unlocalized name of executable (e.g. cmd.exe) file, {1} represents a comma-separated list of setting properties + + + Note that no test output will be shown on the test console when executing tests concurrently! + + + Nothing to report. + + + Found {0} tests in executable {1} + {0} represents a number (e.g. 5), {1} represents an unlocalized binary name (e.g notepad.exe) + + + Running {0} tests... + {0} represents a number (e.g. 5) + + + Output file does not exist, did your tests crash? + + + Output of command: + Followed by standard output from the command ran + + + {0}>>>>>>>>>>>>>>> Output of command '{1} {2}' + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents unlocalized command (e.g. cmd.exe), {2} represents unlocalized paramaters to executable (e.g. "/C exit 2") + + + Parallel execution is selected in options, but tests are executed sequentially because debugger is attached. + + + Could not parse duration in line '{0}' + {0} represents the line text + + + Could not parse pair '{0}', exception message: {1} + {0} is regex pair, {1} represents localized exception message (e.g. "Cannot load file") + + + Process has exited with code {0} + {0} represents a number (e.g. 5) + + + Could not read test durations: {0} + {0} represents localized exception message (e.g. "Cannot load file") + + + Regex '{0}' cannot be parsed: {1} + {0} represents unlocalized regex pattern used (e.g. ab*d+), {1} represents localized exception message (e.g. "Cannot load file") + + + Regex '{0}' timed out: {1} + {0} represents unlocalized regex pattern used (e.g. ab*d+), {1} represents localized exception message (e.g. "Cannot load file") + + + {0}Reported {1} test results to Visual Studio during test execution, executable: '{2}' + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents a number (e.g. 5), {2} represents an unlocalized name of executable (e.g. cmd.exe) file + + + {0}Reported {1} test results to Visual Studio, executable: '{2}', duration: {3} + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents a number (e.g. 5), {2} represents an unlocalized name of executable (e.g. cmd.exe) file, {3} means stopwatch time + + + Restoring solution settings: {0} + {0} represents a comma-separated list of setting properties + + + Test {0}: Expected {1} ms, actual {2} ms + {0} represents an unlocalized name of a test (e.g. foo), {1} represents a number (e.g. 5), {2} represents a number (e.g. 5) + + + {0}{1}: Exception caught, message: '{2}', executed command: '{3}' + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} is TestSetupBatchFile or TestTeardownBatchFile string, {2} represents localized exception message (e.g. "Cannot load file"), {3} represents unlocalized file path (e.g c:\test\foo.bat) + + + {0}Failed to run test executable '{1}': {2} + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents an unlocalized name of executable (e.g. cmd.exe) file, {2} represents localized exception message (e.g. "Cannot load file") + + + >>> Scheduling statistics <<< + + + Settings for test executable '{0}': {1} + {0} represents an unlocalized name of executable (e.g. cmd.exe) file, {1} represents an unlocalized settings string + + + SettingsWrapper is already running with settings for an executable on thread '{0}', cannot also be used by thread '{1}' + {0} is a name of a thread (e.g. "T0"), {1} is a name of a thread (e.g. "T0") + + + {0}Stack trace:{1}{2} + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} means new line string, {2} represents unlocalized exception stack trace + + + Standard deviation: {0} ms + {0} represents the standardDeviation for statistics to debug output + + + {0}{1}: Successfully ran '{2}' + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} is TestSetupBatchFile or TestTeardownBatchFile string, {2} represents unlocalized file path (e.g c:\test\foo.bat) + + + Terminated process {0} started at {1} + {0} represents an unlocalized process name (e.g notepad.exe), {1} represents unlocalized string for time (e.g. "3/1/2008 7:00:00 AM") + + + Test case already in analyzer: {0} + {0} represents an unlocalized string for test name (e.g. "TestSuite1.Test2") + + + {0}{1} test cases seem to not have been run - are you repeating a test run, but tests have changed in the meantime? Test cases:{2}{3} + {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents a number (e.g. 5), {2} represents an unlocalized new line string (e.g "\n"), {3} is a new-line separated list of unlocalized test case names + + + Test whether the following commands can be executed sucessfully on the command line (make sure all required binaries are on the PATH):{0}{1} + {0} represents an unlocalized new line string (e.g "\n"), {1} is a new-line separated sequence of commands + + + Test discovery was cancelled after {0} s for executable {1} + {0} represents a number (e.g. 5), {1} represents an unlocalized name of executable (e.g. cmd.exe) file + + + Test result file {0} could not be parsed (completely) - your test executable has probably crashed. Exception message: {1} + {0} represents unlocalized file path (e.g c:\test\results.xml), {1} represents localized exception message (e.g. "Cannot load file") + + + Test setup batch file + + + Test teardown batch file + + + Executing tests on {0} threads + {0} represents a number (e.g. 5) + + + Unknown literal: {0} + {0} is a name of enum literal + + + Unknown test case status: {0} + {0} represents an unlocalized status of test (e.g. "run" or "notrun") + + + Using splitter based on test durations + + + Using splitter based on number of tests + + + {0} worst differences: + {0} represents a number (e.g. 5) + + + XmlNode could not be parsed: '{0}'. Exception message: {1} + {0} represents an unlocalized name of an XML node, {1} represents localized exception message (e.g. "Cannot load file") + + \ No newline at end of file diff --git a/GoogleTestAdapter/Core/Runners/CommandLineGenerator.cs b/GoogleTestAdapter/Core/Runners/CommandLineGenerator.cs index 4623a4562..f999094e7 100644 --- a/GoogleTestAdapter/Core/Runners/CommandLineGenerator.cs +++ b/GoogleTestAdapter/Core/Runners/CommandLineGenerator.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections.Generic; using System.Linq; using GoogleTestAdapter.Helpers; @@ -117,8 +119,7 @@ private string JoinTestsUpToMaxLength(List testCases, int maxLength, o string nextTest = testCases[0].FullyQualifiedName; if (nextTest.Length > maxLength) { - throw new Exception("CommandLineGenerator: I can not deal with this case :-( - maxLength=" + maxLength + - ", includedTestCases.Count=" + includedTestCases.Count + ", nextTest.Length=" + nextTest.Length); + throw new Exception(String.Format(Resources.CommandLineGeneratorError, maxLength, includedTestCases.Count, nextTest.Length)); } while (result.Length + nextTest.Length <= maxLength && testCases.Count > 0) diff --git a/GoogleTestAdapter/Core/Runners/ParallelTestRunner.cs b/GoogleTestAdapter/Core/Runners/ParallelTestRunner.cs index 75a2164aa..74e934153 100644 --- a/GoogleTestAdapter/Core/Runners/ParallelTestRunner.cs +++ b/GoogleTestAdapter/Core/Runners/ParallelTestRunner.cs @@ -1,5 +1,6 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 8/2017. +using System; using System.Collections.Generic; using System.Linq; using System.Threading; @@ -70,8 +71,8 @@ private void RunTests(IEnumerable testCasesToRun, string baseDir, List ITestsSplitter splitter = GetTestsSplitter(testCasesToRunAsArray); List> splittedTestCasesToRun = splitter.SplitTestcases(); - _logger.LogInfo("Executing tests on " + splittedTestCasesToRun.Count + " threads"); - _logger.DebugInfo("Note that no test output will be shown on the test console when executing tests concurrently!"); + _logger.LogInfo(string.Format(Resources.ThreadExecutionMessage, splittedTestCasesToRun.Count)); + _logger.DebugInfo(Resources.NoTestOutputShown); int threadId = 0; foreach (List testcases in splittedTestCasesToRun) @@ -97,24 +98,24 @@ private ITestsSplitter GetTestsSplitter(TestCase[] testCasesToRun) foreach (KeyValuePair duration in durations) { if (!_schedulingAnalyzer.AddExpectedDuration(duration.Key, duration.Value)) - _logger.DebugWarning("TestCase already in analyzer: " + duration.Key.FullyQualifiedName); + _logger.DebugWarning(String.Format(Resources.TestCaseInAnalyzer, duration.Key.FullyQualifiedName)); } } catch (InvalidTestDurationsException e) { - _logger.LogWarning($"Could not read test durations: {e.Message}"); + _logger.LogWarning(string.Format(Resources.ReadTestDurationError, e.Message)); } ITestsSplitter splitter; if (durations == null || durations.Count < testCasesToRun.Length) { splitter = new NumberBasedTestsSplitter(testCasesToRun, _settings); - _logger.DebugInfo("Using splitter based on number of tests"); + _logger.DebugInfo(Resources.UsingSplitterOnNumber); } else { splitter = new DurationBasedTestsSplitter(durations, _settings); - _logger.DebugInfo("Using splitter based on test durations"); + _logger.DebugInfo(Resources.UsingSplitterOnDuration); } return splitter; diff --git a/GoogleTestAdapter/Core/Runners/PreparingTestRunner.cs b/GoogleTestAdapter/Core/Runners/PreparingTestRunner.cs index cfe469099..10025237f 100644 --- a/GoogleTestAdapter/Core/Runners/PreparingTestRunner.cs +++ b/GoogleTestAdapter/Core/Runners/PreparingTestRunner.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.IO; using System.Collections.Generic; using System.Diagnostics; @@ -13,8 +15,11 @@ namespace GoogleTestAdapter.Runners { public class PreparingTestRunner : ITestRunner { - public const string TestSetup = "Test setup"; - public const string TestTeardown = "Test teardown"; + private enum BatchType + { + TestSetup, + TestTeardown + } private readonly ILogger _logger; private readonly SettingsWrapper _settings; @@ -57,27 +62,26 @@ public void RunTests(IEnumerable testCasesToRun, string baseDir, string batch = _settings.GetBatchForTestSetup(_solutionDirectory, testDirectory, _threadId); batch = batch == "" ? "" : _solutionDirectory + batch; - SafeRunBatch(TestSetup, _solutionDirectory, batch, isBeingDebugged); + SafeRunBatch(BatchType.TestSetup, _solutionDirectory, batch, isBeingDebugged); _innerTestRunner.RunTests(testCasesToRun, baseDir, workingDir, userParameters, isBeingDebugged, debuggedLauncher, executor); batch = _settings.GetBatchForTestTeardown(_solutionDirectory, testDirectory, _threadId); batch = batch == "" ? "" : _solutionDirectory + batch; - SafeRunBatch(TestTeardown, _solutionDirectory, batch, isBeingDebugged); + SafeRunBatch(BatchType.TestTeardown, _solutionDirectory, batch, isBeingDebugged); stopwatch.Stop(); - _logger.DebugInfo($"{_threadName}Execution took {stopwatch.Elapsed}"); + _logger.DebugInfo(String.Format(Resources.ExecutionTime, _threadName, stopwatch.Elapsed)); string errorMessage; if (!Utils.DeleteDirectory(testDirectory, out errorMessage)) { - _logger.DebugWarning( - $"{_threadName}Could not delete test directory '" + testDirectory + "': " + errorMessage); + _logger.DebugWarning(String.Format(Resources.DeleteTestDir, _threadName, testDirectory, errorMessage)); } } catch (Exception e) { - _logger.LogError($"{_threadName}Exception while running tests: " + e); + _logger.LogError(String.Format(Resources.ExceptionMessage, _threadName, e)); } } @@ -87,15 +91,17 @@ public void Cancel() } - private void SafeRunBatch(string batchType, string workingDirectory, string batch, bool isBeingDebugged) + private void SafeRunBatch(BatchType batchType, string workingDirectory, string batch, bool isBeingDebugged) { + string batchTypeString = (batchType == BatchType.TestSetup) ? Resources.TestSetupBatchFile : Resources.TestTeardownBatchFile; + if (string.IsNullOrEmpty(batch)) { return; } if (!File.Exists(batch)) { - _logger.LogError($"{_threadName}Did not find " + batchType.ToLower() + " batch file: " + batch); + _logger.LogError(String.Format(Resources.BatchFileMissing, _threadName, batchTypeString, batch)); return; } @@ -105,13 +111,14 @@ private void SafeRunBatch(string batchType, string workingDirectory, string batc } catch (Exception e) { - _logger.LogError( - $"{_threadName}{batchType} batch caused exception, msg: \'{e.Message}\', executed command: \'{batch}\'"); + _logger.LogError(String.Format(Resources.RunBatchException, _threadName, batchTypeString, e.Message, batch)); } } - private void RunBatch(string batchType, string workingDirectory, string batch, bool isBeingDebugged) + private void RunBatch(BatchType batchType, string workingDirectory, string batch, bool isBeingDebugged) { + string batchTypeString = (batchType == BatchType.TestSetup) ? Resources.TestSetupBatchFile : Resources.TestTeardownBatchFile; + int batchExitCode; if (_settings.UseNewTestExecutionFramework) { @@ -126,13 +133,11 @@ private void RunBatch(string batchType, string workingDirectory, string batch, b if (batchExitCode == 0) { - _logger.DebugInfo( - $"{_threadName}Successfully ran {batchType} batch \'{batch}\'"); + _logger.DebugInfo(String.Format(Resources.SuccessfullyRun, _threadName, batchTypeString, batch)); } else { - _logger.LogWarning( - $"{_threadName}{batchType} batch returned exit code {batchExitCode}, executed command: \'{batch}\'"); + _logger.LogWarning(String.Format(Resources.BatchReturnedExitCode, _threadName, batchTypeString, batchExitCode, batch)); } } diff --git a/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs b/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs index f6d78563e..2ae691019 100644 --- a/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs +++ b/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 8/2017. using System; using System.Collections.Generic; @@ -104,11 +104,11 @@ private void RunTestsFromExecutable(string executable, string workingDir, _frameworkReporter.ReportTestResults(results); stopwatch.Stop(); if (results.Length > 0) - _logger.DebugInfo($"{_threadName}Reported {results.Length} test results to VS, executable: '{executable}', duration: {stopwatch.Elapsed}"); + _logger.DebugInfo(String.Format(Resources.ReportedTestResults, _threadName, results.Length, executable, stopwatch.Elapsed)); } catch (TestRunCanceledException e) { - _logger.DebugInfo($"{_threadName}Execution has been canceled: {e.InnerException?.Message ?? e.Message}"); + _logger.DebugInfo(String.Format(Resources.ExecutionCancelled, _threadName, e.InnerException?.Message ?? e.Message)); Cancel(); } @@ -116,7 +116,7 @@ private void RunTestsFromExecutable(string executable, string workingDir, foreach (TestResult result in results) { if (!_schedulingAnalyzer.AddActualDuration(result.TestCase, (int)result.Duration.TotalMilliseconds)) - _logger.DebugWarning("TestCase already in analyzer: " + result.TestCase.FullyQualifiedName); + _logger.DebugWarning(String.Format(Resources.TestCaseInAnalyzer, result.TestCase.FullyQualifiedName)); } } } @@ -137,12 +137,10 @@ private IEnumerable RunTests(string executable, string workingDir, b public static void LogExecutionError(ILogger logger, string executable, string workingDir, string arguments, Exception exception, string threadName = "") { - logger.LogError($"{threadName}Failed to run test executable '{executable}': {exception.Message}"); - logger.DebugError($@"{threadName}Stacktrace:{Environment.NewLine}{exception.StackTrace}"); - logger.LogError( - $"{threadName}{Strings.Instance.TroubleShootingLink}"); - logger.LogError( - $"{threadName}In particular: launch command prompt, change into directory '{workingDir}', and execute the following command to make sure your tests can be run in general.{Environment.NewLine}{executable} {arguments}"); + logger.LogError(String.Format(Resources.RunExecutableError, threadName, executable, exception.Message)); + logger.DebugError(String.Format(Resources.StackTrace, threadName, Environment.NewLine, exception.StackTrace)); + logger.LogError(String.Format(Strings.Instance.TroubleShootingLink, threadName)); + logger.LogError(String.Format(Resources.ExecuteSteps, threadName, workingDir, Environment.NewLine, executable, arguments)); } private IEnumerable TryRunTests(string executable, string workingDir, bool isBeingDebugged, @@ -181,8 +179,7 @@ private List RunTestExecutableWithNewFramework(string executable, string !_settings.ParallelTestExecution; if (printTestOutput) - _logger.LogInfo( - $"{_threadName}>>>>>>>>>>>>>>> Output of command '" + executable + " " + arguments.CommandLine + "'"); + _logger.LogInfo(String.Format(Resources.OutputOfCommandMessage, _threadName, executable, arguments.CommandLine)); Action reportOutputAction = line => { @@ -196,7 +193,7 @@ private List RunTestExecutableWithNewFramework(string executable, string } catch (TestRunCanceledException e) { - _logger.DebugInfo($"{_threadName}Execution has been canceled: {e.InnerException?.Message ?? e.Message}"); + _logger.DebugInfo(String.Format(Resources.ExecutionCancelled, _threadName, e.InnerException?.Message ?? e.Message)); Cancel(); } }; @@ -207,16 +204,16 @@ private List RunTestExecutableWithNewFramework(string executable, string streamingParser.Flush(); if (printTestOutput) - _logger.LogInfo($"{_threadName}<<<<<<<<<<<<<<< End of Output"); + _logger.LogInfo(String.Format(Resources.EndOfOutputMessage, _threadName)); var consoleOutput = new List(); new TestDurationSerializer().UpdateTestDurations(streamingParser.TestResults); - _logger.DebugInfo( - $"{_threadName}Reported {streamingParser.TestResults.Count} test results to VS during test execution, executable: '{executable}'"); + _logger.DebugInfo(String.Format(Resources.ReportedResultsToVS, _threadName, streamingParser.TestResults.Count, executable)); + foreach (TestResult result in streamingParser.TestResults) { if (!_schedulingAnalyzer.AddActualDuration(result.TestCase, (int) result.Duration.TotalMilliseconds)) - _logger.LogWarning($"{_threadName}TestCase already in analyzer: {result.TestCase.FullyQualifiedName}"); + _logger.LogWarning(String.Format(Resources.AlreadyInAnalyzer, _threadName, result.TestCase.FullyQualifiedName)); } return consoleOutput; } diff --git a/GoogleTestAdapter/Core/Runners/TestResultCollector.cs b/GoogleTestAdapter/Core/Runners/TestResultCollector.cs index 3ac00fff5..cdf7929f7 100644 --- a/GoogleTestAdapter/Core/Runners/TestResultCollector.cs +++ b/GoogleTestAdapter/Core/Runners/TestResultCollector.cs @@ -1,3 +1,5 @@ +// This file has been modified by Microsoft on 8/2017. + using System; using System.Collections.Generic; using System.Linq; @@ -61,7 +63,7 @@ private void CollectResultsFromXmlFile(TestCase[] testCasesRun, string resultXml } if (nrOfCollectedTestResults > 0) _logger.DebugInfo( - $"{_threadName}Collected {nrOfCollectedTestResults} test results from result XML file {resultXmlFile}"); + String.Format(Resources.CollectedResults, _threadName, nrOfCollectedTestResults, resultXmlFile)); } private void CollectResultsFromConsoleOutput(StandardOutputTestResultParser consoleParser, List testResults) @@ -75,12 +77,12 @@ private void CollectResultsFromConsoleOutput(StandardOutputTestResultParser cons nrOfCollectedTestResults++; } if (nrOfCollectedTestResults > 0) - _logger.DebugInfo($"{_threadName}Collected {nrOfCollectedTestResults} test results from console output"); + _logger.DebugInfo(String.Format(Resources.CollectedResultsFromConsole, _threadName, nrOfCollectedTestResults)); } private void CreateMissingResults(TestCase[] testCases, TestCase crashedTestCase, List testResults) { - var errorMessage = $"reason is probably a crash of test {crashedTestCase.DisplayName}"; + var errorMessage = String.Format(Resources.CrashTest, crashedTestCase.DisplayName); var errorStackTrace = ErrorMessageParser.CreateStackTraceEntry("crash suspect", crashedTestCase.CodeFilePath, crashedTestCase.LineNumber.ToString()); @@ -95,14 +97,13 @@ private void CreateMissingResults(TestCase[] testCases, TestCase crashedTestCase }); } if (testCases.Length > 0) - _logger.DebugInfo($"{_threadName}Created {testCases.Length} test results for tests which were neither found in result XML file nor in console output"); + _logger.DebugInfo(String.Format(Resources.CreatedTestResults, _threadName, testCases.Length)); } private void ReportSuspiciousTestCases(TestCase[] testCases) { string testCasesAsString = string.Join(Environment.NewLine, testCases.Select(tc => tc.DisplayName)); - _logger.DebugWarning( - $"{_threadName}{testCases.Length} test cases seem to not have been run - are you repeating a test run, but tests have changed in the meantime? Test cases:{Environment.NewLine}{testCasesAsString}"); + _logger.DebugWarning(String.Format(Resources.TestCaseNotRun, _threadName, testCases.Length, Environment.NewLine, testCasesAsString)); } } diff --git a/GoogleTestAdapter/Core/Scheduling/SchedulingAnalyzer.cs b/GoogleTestAdapter/Core/Scheduling/SchedulingAnalyzer.cs index 7986ee279..5b709b02b 100644 --- a/GoogleTestAdapter/Core/Scheduling/SchedulingAnalyzer.cs +++ b/GoogleTestAdapter/Core/Scheduling/SchedulingAnalyzer.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Globalization; @@ -39,12 +41,12 @@ public bool AddActualDuration(TestCase testCase, int duration) public void PrintStatisticsToDebugOutput() { - _logger.DebugInfo(">>> Scheduling statistics <<<"); - _logger.DebugInfo($"# of expected test case durations: {ExpectedTestcaseDurations.Count}"); - _logger.DebugInfo($"# of actual test case durations: {ActualTestcaseDurations.Count}"); + _logger.DebugInfo(Resources.SchedulingStats); + _logger.DebugInfo(String.Format(Resources.ExpectedTestCase, ExpectedTestcaseDurations.Count)); + _logger.DebugInfo(String.Format(Resources.ActualTestCase, ActualTestcaseDurations.Count)); if (ExpectedTestcaseDurations.Count == 0 || ActualTestcaseDurations.Count == 0) { - _logger.DebugInfo("Nothing to report."); + _logger.DebugInfo(Resources.NothingToReport); return; } @@ -63,15 +65,15 @@ public void PrintStatisticsToDebugOutput() double sumOfSquaresOfDifferences = differences.Select(d => (d.DifferenceInMs - avgDifference) * (d.DifferenceInMs - avgDifference)).Sum(); double standardDeviation = Math.Sqrt(sumOfSquaresOfDifferences / differences.Count); - _logger.DebugInfo($"{differences.Count} expected durations have been found in actual durations"); - _logger.DebugInfo($"Avg difference between expected and actual duration: {avgDifference.ToString("F1", CultureInfo.InvariantCulture)}ms"); - _logger.DebugInfo($"Standard deviation: {standardDeviation.ToString("F1", CultureInfo.InvariantCulture)}ms"); + _logger.DebugInfo(String.Format(Resources.ExpectedDurations, differences.Count)); + _logger.DebugInfo(String.Format(Resources.AvgDifference, avgDifference.ToString("F1", CultureInfo.InvariantCulture))); + _logger.DebugInfo(String.Format(Resources.StandardDeviation, standardDeviation.ToString("F1", CultureInfo.InvariantCulture))); int nrOfWorstDifferences = Math.Min(10, differences.Count); - _logger.DebugInfo($"{nrOfWorstDifferences} worst differences:"); + _logger.DebugInfo(String.Format(Resources.WorstDifferences, nrOfWorstDifferences)); for (int i = 0; i < nrOfWorstDifferences; i++) { - _logger.DebugInfo($"Test {differences[i].TestCase.FullyQualifiedName}: Expected {ExpectedTestcaseDurations[differences[i].TestCase]}ms, actual {ActualTestcaseDurations[differences[i].TestCase]}ms"); + _logger.DebugInfo(String.Format(Resources.Results, differences[i].TestCase.FullyQualifiedName, ExpectedTestcaseDurations[differences[i].TestCase], ActualTestcaseDurations[differences[i].TestCase])); } } diff --git a/GoogleTestAdapter/Core/Scheduling/TestDurationSerializer.cs b/GoogleTestAdapter/Core/Scheduling/TestDurationSerializer.cs index f565356ec..069b91519 100644 --- a/GoogleTestAdapter/Core/Scheduling/TestDurationSerializer.cs +++ b/GoogleTestAdapter/Core/Scheduling/TestDurationSerializer.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 8/2017. using GoogleTestAdapter.Helpers; using GoogleTestAdapter.Model; @@ -163,7 +163,7 @@ private GtaTestDurations LoadTestDurations(string durationsFile) } catch (InvalidOperationException e) when (e.InnerException is XmlSchemaValidationException) { - throw new InvalidTestDurationsException($"Invalid file {durationsFile}. {e.InnerException.Message}", e.InnerException); + throw new InvalidTestDurationsException(String.Format(Resources.InvalidFile, durationsFile, e.InnerException.Message), e.InnerException); } } } diff --git a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs index 97eb2329e..7156a3dc9 100644 --- a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs +++ b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 7/2017. +// This file has been modified by Microsoft on 8/2017. using System; using System.Collections.Generic; @@ -88,13 +88,13 @@ public void ExecuteWithSettingsForExecutable(string executable, Action action, I _currentSettings = projectSettings; string settingsString = ToString(); _currentSettings = _settingsContainer.SolutionSettings; - logger.DebugInfo($"Settings for test executable '{executable}': {settingsString}"); + logger.DebugInfo(String.Format(Resources.SettingsMessage, executable, settingsString)); _currentSettings = projectSettings; } else { - logger.DebugInfo($"No settings configured for test executable '{executable}'; running with solution settings: {this}"); + logger.DebugInfo(String.Format(Resources.NoSettingConfigured, executable, this)); } } @@ -116,7 +116,7 @@ public void ExecuteWithSettingsForExecutable(string executable, Action action, I if (_currentSettings != _settingsContainer.SolutionSettings) { _currentSettings = _settingsContainer.SolutionSettings; - logger.DebugInfo($"Back to solution settings: {this}"); + logger.DebugInfo(String.Format(Resources.RestoringSolutionSettings, this)); } } } @@ -129,15 +129,13 @@ public virtual void CheckCorrectUsage(string executable) if (_nrOfRunningExecutions == 0) return; if (_nrOfRunningExecutions < 0) - throw new InvalidOperationException($"{nameof(_nrOfRunningExecutions)} must never be < 0"); + throw new InvalidOperationException(String.Format(Resources.NeverBeZero, nameof(_nrOfRunningExecutions))); if (_currentThread != Thread.CurrentThread) - throw new InvalidOperationException( - $"SettingsWrapper is already running with settings for an executable on thread '{_currentThread.Name}', can not also be used by thread {Thread.CurrentThread.Name}"); + throw new InvalidOperationException(String.Format(Resources.SettingsWrapperString, _currentThread.Name, Thread.CurrentThread.Name)); if (executable != _currentExecutable) - throw new InvalidOperationException( - $"Execution is already running with settings for executable {_currentExecutable}, can not switch to settings for {executable}"); + throw new InvalidOperationException(String.Format(Resources.ExecutionString, _currentExecutable, executable)); } public override string ToString() diff --git a/GoogleTestAdapter/Core/TestCases/MethodSignatureCreator.cs b/GoogleTestAdapter/Core/TestCases/MethodSignatureCreator.cs index 6fec42a4c..50aa83a7d 100644 --- a/GoogleTestAdapter/Core/TestCases/MethodSignatureCreator.cs +++ b/GoogleTestAdapter/Core/TestCases/MethodSignatureCreator.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections.Generic; using GoogleTestAdapter.Helpers; @@ -19,7 +21,7 @@ internal IEnumerable GetTestMethodSignatures(TestCaseDescriptor descript case TestCaseDescriptor.TestTypes.Simple: return GetTestMethodSignature(descriptor.Suite, descriptor.Name).Yield(); default: - throw new InvalidOperationException($"Unknown literal {descriptor.TestType}"); + throw new InvalidOperationException(String.Format(Resources.UnknownLiteral, descriptor.TestType)); } } diff --git a/GoogleTestAdapter/Core/TestCases/NewTestCaseResolver.cs b/GoogleTestAdapter/Core/TestCases/NewTestCaseResolver.cs index a128fe4ea..9a937c24a 100644 --- a/GoogleTestAdapter/Core/TestCases/NewTestCaseResolver.cs +++ b/GoogleTestAdapter/Core/TestCases/NewTestCaseResolver.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -73,11 +75,11 @@ private void AddSymbolsFromBinary(string binary) _allTestMethodSymbols.AddRange(diaResolver.GetFunctions("*" + GoogleTestConstants.TestBodySignature)); _allTraitSymbols.AddRange(diaResolver.GetFunctions("*" + TraitAppendix)); - _logger.DebugInfo($"Found {_allTestMethodSymbols.Count} test method symbols and {_allTraitSymbols.Count} trait symbols in binary {binary}"); + _logger.DebugInfo(String.Format(Resources.FoundTestMethod, _allTestMethodSymbols.Count, _allTraitSymbols.Count, binary)); } catch (Exception e) { - _logger.DebugError($"Exception while resolving test locations and traits in {binary}\n{e}"); + _logger.DebugError(String.Format(Resources.ExceptionResolving, binary, e)); } } } diff --git a/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs b/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs index fb15aa08d..ca2fdc79a 100644 --- a/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs +++ b/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 7/2017. +// This file has been modified by Microsoft on 8/2017. using System; using System.Collections.Generic; @@ -149,12 +149,11 @@ private IList NewCreateTestcases(Action reportTestCase, List string dir = Path.GetDirectoryName(_executable); string file = Path.GetFileName(_executable); - string cdToWorkingDir = $@"cd ""{dir}"""; - string listTestsCommand = $"{file} {GoogleTestConstants.ListTestsOption.Trim()}"; - - _logger.LogError($"Test discovery was cancelled after {_settings.TestDiscoveryTimeoutInSeconds}s for executable {_executable}"); - _logger.DebugError($"Test whether the following commands can be executed sucessfully on the command line (make sure all required binaries are on the PATH):{Environment.NewLine}{cdToWorkingDir}{Environment.NewLine}{listTestsCommand}"); + string command = $@"cd ""{dir}""{Environment.NewLine}{file} {GoogleTestConstants.ListTestsOption.Trim()}"; + _logger.LogError(String.Format(Resources.TestDiscoveryCancelled, _settings.TestDiscoveryTimeoutInSeconds, _executable)); + _logger.DebugError(String.Format(Resources.TestCommandCanBeRun, Environment.NewLine, command)); + return new List(); } @@ -183,14 +182,12 @@ private bool CheckProcessExitCode(int processExitCode, ICollection stand { if (processExitCode != 0) { - string messsage = - $"Could not list test cases of executable '{_executable}': executing process failed with return code {processExitCode}"; - messsage += - $"\nCommand executed: '{_executable} {GoogleTestConstants.ListTestsOption.Trim()}', working directory: '{Path.GetDirectoryName(_executable)}'"; + string messsage = String.Format(Resources.CouldNotListTestCases, _executable, processExitCode); + messsage += Environment.NewLine + String.Format(Resources.CommandExecuted, _executable, GoogleTestConstants.ListTestsOption.Trim(), Path.GetDirectoryName(_executable)); if (standardOutput.Count(s => !string.IsNullOrEmpty(s)) > 0) - messsage += $"\nOutput of command:\n{string.Join("\n", standardOutput)}"; + messsage += Environment.NewLine + Resources.OutputOfCommand + Environment.NewLine + string.Join(Environment.NewLine, standardOutput); else - messsage += "\nCommand produced no output"; + messsage += Environment.NewLine + Resources.NoOutput; _logger.LogError(messsage); return false; @@ -244,7 +241,7 @@ private TestCase CreateTestCase(TestCaseDescriptor descriptor, TestCaseLocation return testCase; } - _logger.LogWarning($"Could not find source location for test {descriptor.FullyQualifiedName}"); + _logger.LogWarning(String.Format(Resources.LocationNotFoundError, descriptor.FullyQualifiedName)); return new TestCase( descriptor.FullyQualifiedName, _executable, descriptor.DisplayName, "", 0); } diff --git a/GoogleTestAdapter/Core/TestCases/TestCaseResolver.cs b/GoogleTestAdapter/Core/TestCases/TestCaseResolver.cs index 3c4f8ba14..7de4f0659 100644 --- a/GoogleTestAdapter/Core/TestCases/TestCaseResolver.cs +++ b/GoogleTestAdapter/Core/TestCases/TestCaseResolver.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 7/2017. +// This file has been modified by Microsoft on 8/2017. using System; using System.Collections.Generic; @@ -62,7 +62,7 @@ private Dictionary FindTestCaseLocationsInBinary( { IList allTestMethodSymbols = diaResolver.GetFunctions(symbolFilterString); IList allTraitSymbols = diaResolver.GetFunctions("*" + TraitAppendix); - _logger.DebugInfo($"Found {allTestMethodSymbols.Count} test method symbols and {allTraitSymbols.Count} trait symbols in binary {binary}"); + _logger.DebugInfo(String.Format(Resources.FoundTestMethod, allTestMethodSymbols.Count, allTraitSymbols.Count, binary)); return allTestMethodSymbols .Where(nsfl => testMethodSignatures.Contains(TestCaseFactory.StripTestSymbolNamespace(nsfl.Symbol))) @@ -71,7 +71,7 @@ private Dictionary FindTestCaseLocationsInBinary( } catch (Exception e) { - _logger.DebugError($"Exception while resolving test locations and traits in {binary}\n{e}"); + _logger.DebugError(String.Format(Resources.ExceptionResolving, binary, e)); return new Dictionary(); } } diff --git a/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs b/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs index b6a75cdf7..15c4b79f8 100644 --- a/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs +++ b/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections.Generic; using System.Globalization; using System.Linq; @@ -61,7 +63,7 @@ private TestResult CreateTestResult(int indexOfTestcase) TestCase testCase = FindTestcase(qualifiedTestname); if (testCase == null) { - _logger.DebugWarning($"No known test case for test result of line '{line}' - are you repeating a test run, but tests have changed in the meantime?"); + _logger.DebugWarning(String.Format(Resources.NoKnownTestCaseMessage, line)); return null; } @@ -136,7 +138,7 @@ public static TimeSpan ParseDuration(string line, ILogger logger) } catch (Exception) { - logger.LogWarning("Could not parse duration in line '" + line + "'"); + logger.LogWarning(String.Format(Resources.ParseDurationMessage, line)); } return NormalizeDuration(TimeSpan.FromMilliseconds(durationInMs)); diff --git a/GoogleTestAdapter/Core/TestResults/StreamingStandardOutputTestResultParser.cs b/GoogleTestAdapter/Core/TestResults/StreamingStandardOutputTestResultParser.cs index ac24f08d0..e4bdc5526 100644 --- a/GoogleTestAdapter/Core/TestResults/StreamingStandardOutputTestResultParser.cs +++ b/GoogleTestAdapter/Core/TestResults/StreamingStandardOutputTestResultParser.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; @@ -111,7 +113,7 @@ private TestResult CreateTestResult() TestCase testCase = StandardOutputTestResultParser.FindTestcase(qualifiedTestname, _testCasesRun); if (testCase == null) { - _logger.DebugWarning($"No known test case for test result of line '{line}'' - are you repeating a test run, but tests have changed in the meantime?"); + _logger.DebugWarning(String.Format(Resources.NoKnownTestCaseMessage, line)); return null; } diff --git a/GoogleTestAdapter/Core/TestResults/XmlTestResultParser.cs b/GoogleTestAdapter/Core/TestResults/XmlTestResultParser.cs index 7fc2ddc8b..70744539a 100644 --- a/GoogleTestAdapter/Core/TestResults/XmlTestResultParser.cs +++ b/GoogleTestAdapter/Core/TestResults/XmlTestResultParser.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 8/2017. using System; using System.Collections.Generic; @@ -14,8 +14,6 @@ namespace GoogleTestAdapter.TestResults { public class XmlTestResultParser { - private const string ErrorMsgNoXmlFile = "Output file does not exist, did your tests crash?"; - private static readonly NumberFormatInfo NumberFormatInfo = new CultureInfo("en-US").NumberFormat; @@ -39,7 +37,7 @@ public List GetTestResults() return ParseTestResults(); } - _logger.LogWarning(ErrorMsgNoXmlFile); + _logger.LogWarning(Resources.OutputFileMissing); return new List(); } @@ -72,8 +70,7 @@ private List ParseTestResults() } catch (XmlException e) { - _logger.DebugWarning( - $"Test result file {_xmlResultFile} could not be parsed (completely) - your test executable has probably crashed. Exception message: {e.Message}"); + _logger.DebugWarning(String.Format(Resources.TestResultParse, _xmlResultFile, e.Message)); } return testResults; @@ -87,8 +84,7 @@ private TestResult TryParseTestResult(XmlNode testcaseNode) } catch (Exception e) { - _logger.DebugWarning( - $"XmlNode could not be parsed: \'{GetQualifiedName(testcaseNode)}\'. Exception message: {e.Message}"); + _logger.DebugWarning(String.Format(Resources.XmlNodeParse, GetQualifiedName(testcaseNode), e.Message)); return null; } } @@ -133,7 +129,7 @@ private TestResult ParseTestResult(XmlNode testcaseNode) testResult.Outcome = TestOutcome.Skipped; break; default: - string msg = "Unknown testcase status: " + testCaseStatus; + string msg = String.Format(Resources.UnknownTestCase, testCaseStatus); _logger.LogError(msg); throw new Exception(msg); } diff --git a/GoogleTestAdapter/DiaResolver.Tests/DiaResolverTests.cs b/GoogleTestAdapter/DiaResolver.Tests/DiaResolverTests.cs index 4a9afec2f..bb9fe6ba5 100644 --- a/GoogleTestAdapter/DiaResolver.Tests/DiaResolverTests.cs +++ b/GoogleTestAdapter/DiaResolver.Tests/DiaResolverTests.cs @@ -1,4 +1,6 @@ -using System.Collections.Generic; +// This file has been modified by Microsoft on 8/2017. + +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.IO; using FluentAssertions; @@ -100,7 +102,7 @@ public void GetFunctions_ExeWithoutPdb_AttemptsToFindPdbAreLogged() .Contain(msg => msg.Contains("Couldn't find the .pdb file")); fakeLogger.Infos .Should() - .Contain(msg => msg.Contains("Attempts to find pdb:")); + .Contain(msg => msg.Contains("Attempts to find PDB")); } private void DoResolveTest(string executable, string filter, int expectedLocations, int expectedErrorMessages, bool disposeResolver = true) diff --git a/GoogleTestAdapter/DiaResolver/DiaFactory.cs b/GoogleTestAdapter/DiaResolver/DiaFactory.cs index f9f8460d4..4e8753e8f 100644 --- a/GoogleTestAdapter/DiaResolver/DiaFactory.cs +++ b/GoogleTestAdapter/DiaResolver/DiaFactory.cs @@ -19,7 +19,7 @@ static DiaFactory() string path = Path.Combine(GetAssemblyBaseDir(), Is32Bit() ? "x86" : "x64", DiaDll); var ptrDll = LoadLibrary(path); if (ptrDll == IntPtr.Zero) - throw new Exception($"Cannot load {path}."); + throw new Exception(String.Format(Resources.LoadError, path)); } public static IDiaDataSource CreateInstance() diff --git a/GoogleTestAdapter/DiaResolver/DiaResolver.cs b/GoogleTestAdapter/DiaResolver/DiaResolver.cs index fd2b4dac6..ee958f54d 100644 --- a/GoogleTestAdapter/DiaResolver/DiaResolver.cs +++ b/GoogleTestAdapter/DiaResolver/DiaResolver.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 8/2017. using GoogleTestAdapter.Common; using Microsoft.Dia; @@ -53,17 +53,17 @@ internal DiaResolver(string binary, string pathExtension, ILogger logger) string pdb = FindPdbFile(binary, pathExtension); if (pdb == null) { - _logger.LogWarning($"Couldn't find the .pdb file of file '{binary}'. You will not get any source locations for your tests."); + _logger.LogWarning(String.Format(Resources.PdbFileNotFoundError, binary)); return; } if (!TryCreateDiaInstance()) { - _logger.LogError("Couldn't find the msdia.dll to parse *.pdb files. You will not get any source locations for your tests."); + _logger.LogError(Resources.msdiaError); return; } - _logger.DebugInfo($"Parsing pdb file \"{pdb}\""); + _logger.DebugInfo(String.Format(Resources.ParsingFile, pdb)); _fileStream = File.Open(pdb, FileMode.Open, FileAccess.Read, FileShare.Read); _diaDataSource.loadDataFromIStream(new DiaMemoryStream(_fileStream)); @@ -93,7 +93,7 @@ private string FindPdbFile(string binary, string pathExtension) string pdb = PeParser.ExtractPdbPath(binary, _logger); if (pdb != null && File.Exists(pdb)) return pdb; - attempts.Add("parsing from executable"); + attempts.Add($"\"{binary}\""); pdb = Path.ChangeExtension(binary, ".pdb"); if (File.Exists(pdb)) @@ -120,7 +120,7 @@ private string FindPdbFile(string binary, string pathExtension) } } - _logger.DebugInfo("Attempts to find pdb: " + string.Join("::", attempts)); + _logger.DebugInfo(String.Format(Resources.AttemptsToFind, string.Join("::", attempts))); return null; } @@ -147,7 +147,7 @@ private SourceFileLocation ToSourceFileLocation(NativeSourceFileLocation nativeS IDiaEnumLineNumbers lineNumbers = GetLineNumbers(nativeSymbol.AddressSection, nativeSymbol.AddressOffset, nativeSymbol.Length); if (lineNumbers.count <= 0) { - _logger.LogWarning("Failed to locate line number for " + nativeSymbol); + _logger.LogWarning(String.Format(Resources.LineNumberError, nativeSymbol)); return new SourceFileLocation(_binary, "", 0); } @@ -186,8 +186,8 @@ private IDiaEnumSymbols FindFunctionsByRegex(string pattern) catch (NotImplementedException) { // https://developercommunity.visualstudio.com/content/problem/4631/dia-sdk-still-doesnt-support-debugfastlink.html - _logger.LogWarning("In order to get source locations for your tests, please ensure to generate *full* PDBs for your test executables."); - _logger.LogWarning("Use linker option /DEBUG:FULL (VS2017) or /DEBUG (VS2015 and older) - do not use /DEBUG:FASTLINK!"); + _logger.LogWarning(Resources.GenerateFullPDBMessage); + _logger.LogWarning(Resources.UseLinkerOption); } return result; } diff --git a/GoogleTestAdapter/DiaResolver/DiaResolver.csproj b/GoogleTestAdapter/DiaResolver/DiaResolver.csproj index a623939ae..0d8cc81d5 100644 --- a/GoogleTestAdapter/DiaResolver/DiaResolver.csproj +++ b/GoogleTestAdapter/DiaResolver/DiaResolver.csproj @@ -66,6 +66,11 @@ + + True + True + Resources.resx + @@ -85,6 +90,13 @@ PreserveNewest + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + diff --git a/GoogleTestAdapter/DiaResolver/PeParser.cs b/GoogleTestAdapter/DiaResolver/PeParser.cs index 1a1104417..0b19215d6 100644 --- a/GoogleTestAdapter/DiaResolver/PeParser.cs +++ b/GoogleTestAdapter/DiaResolver/PeParser.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections.Generic; using System.Runtime.InteropServices; using GoogleTestAdapter.Common; @@ -127,7 +129,7 @@ private static void ParsePeFile(string executable, ILogger logger, Action +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GoogleTestAdapter.DiaResolver { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GoogleTestAdapter.DiaResolver.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Attempts to find PDB: {0}. + /// + internal static string AttemptsToFind { + get { + return ResourceManager.GetString("AttemptsToFind", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to In order to get source locations for your tests, please ensure to generate *full* PDBs for your test executables.. + /// + internal static string GenerateFullPDBMessage { + get { + return ResourceManager.GetString("GenerateFullPDBMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Failed to locate line number for {0}. + /// + internal static string LineNumberError { + get { + return ResourceManager.GetString("LineNumberError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot load {0}.. + /// + internal static string LoadError { + get { + return ResourceManager.GetString("LoadError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Couldn't find the msdia.dll to parse *.pdb files. You will not get any source locations for your tests.. + /// + internal static string msdiaError { + get { + return ResourceManager.GetString("msdiaError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parsing PDB file {0}. + /// + internal static string ParsingFile { + get { + return ResourceManager.GetString("ParsingFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Couldn't find the .pdb file of file '{0}'. You will not get any source locations for your tests.. + /// + internal static string PdbFileNotFoundError { + get { + return ResourceManager.GetString("PdbFileNotFoundError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to UnMapAndLoad failed!. + /// + internal static string UnMapLoad { + get { + return ResourceManager.GetString("UnMapLoad", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Use linker option /DEBUG:FULL (Visual Studio 2017) or /DEBUG (Visual Studio 2015 and older) - do not use /DEBUG:FASTLINK!. + /// + internal static string UseLinkerOption { + get { + return ResourceManager.GetString("UseLinkerOption", resourceCulture); + } + } + } +} diff --git a/GoogleTestAdapter/DiaResolver/Resources.resx b/GoogleTestAdapter/DiaResolver/Resources.resx new file mode 100644 index 000000000..4508571f7 --- /dev/null +++ b/GoogleTestAdapter/DiaResolver/Resources.resx @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + In order to get source locations for your tests, please ensure to generate *full* PDBs for your test executables. + + + Failed to locate line number for {0} + {0} represents an unlocalized symbol name (e.g. "foo") + + + Couldn't find the msdia.dll to parse *.pdb files. You will not get any source locations for your tests. + + + Couldn't find the .pdb file of file '{0}'. You will not get any source locations for your tests. + {0} represents unlocalized file path (e.g c:\test\foo.exe) + + + Use linker option /DEBUG:FULL (Visual Studio 2017) or /DEBUG (Visual Studio 2015 and older) - do not use /DEBUG:FASTLINK! + + + UnMapAndLoad failed! + + + Attempts to find PDB: {0} + {0} is a list of locations attempted + + + Parsing PDB file {0} + {0} represents unlocalized file path (e.g c:\test\foo.pdb) + + + Cannot load {0}. + {0} represents unlocalized file path (e.g c:\test\foo.pdb) + + \ No newline at end of file diff --git a/GoogleTestAdapter/TestAdapter.Tests/TestDiscovererTests.cs b/GoogleTestAdapter/TestAdapter.Tests/TestDiscovererTests.cs index 14d4d71e5..a7e240953 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/TestDiscovererTests.cs +++ b/GoogleTestAdapter/TestAdapter.Tests/TestDiscovererTests.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 7/2017. +// This file has been modified by Microsoft on 8/2017. using FluentAssertions; using GoogleTestAdapter.Helpers; @@ -40,7 +40,7 @@ public void DiscoverTests_WithCustomNonMatchingRegex_DoesNotFindTests() public void DiscoverTests_CrashingExecutable_CrashIsLogged() { RunExecutableAndCheckLogging(TestResources.AlwaysCrashingExe, - () => MockLogger.Verify(l => l.LogError(It.Is(s => s.Contains("Could not list test cases of executable"))), + () => MockLogger.Verify(l => l.LogError(It.Is(s => s.Contains("Could not list test cases for executable"))), Times.Once)); } @@ -49,7 +49,7 @@ public void DiscoverTests_CrashingExecutable_CrashIsLogged() public void DiscoverTests_FailingExecutable_ExitCodeIsLogged() { RunExecutableAndCheckLogging(TestResources.AlwaysFailingExe, - () => MockLogger.Verify(l => l.LogError(It.Is(s => s.Contains("executing process failed with return code 4711"))), + () => MockLogger.Verify(l => l.LogError(It.Is(s => s.Contains("process execution failed with exit code 4711"))), Times.Once)); } @@ -85,7 +85,7 @@ public void DiscoverTests_UntrustedExecutable_IsNotRun() File.Copy(TestResources.SemaphoreExe, Temp1Exe); File.Exists(SemPath).Should().BeFalse(); RunExecutableAndCheckLogging(Temp1Exe, - () => MockLogger.Verify(l => l.LogError(It.Is(s => s.Contains("executing process failed with return code 143"))), + () => MockLogger.Verify(l => l.LogError(It.Is(s => s.Contains("process execution failed with exit code 143"))), Times.Once)); File.Exists(SemPath).Should().BeTrue("because exe should have been run"); } diff --git a/GoogleTestAdapter/TestAdapter.Tests/TestExecutorTestsBase.cs b/GoogleTestAdapter/TestAdapter.Tests/TestExecutorTestsBase.cs index ff92c6e84..6b8e9a917 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/TestExecutorTestsBase.cs +++ b/GoogleTestAdapter/TestAdapter.Tests/TestExecutorTestsBase.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Linq; using FluentAssertions; using Microsoft.VisualStudio.TestTools.UnitTesting; @@ -17,8 +19,9 @@ namespace GoogleTestAdapter.TestAdapter { public abstract class TestExecutorTestsBase : TestAdapterTestsBase { + private const string TestSetup = "Test setup"; + private const string TestTeardown = "Test teardown"; private readonly bool _parallelTestExecution; - private readonly int _maxNrOfThreads; @@ -147,10 +150,10 @@ public virtual void RunTests_WithSetupAndTeardownBatchesWhereTeardownFails_LogsW RunAndVerifyTests(TestResources.DllTests_ReleaseX86, 1, 1, 0); MockLogger.Verify(l => l.LogWarning( - It.Is(s => s.Contains(PreparingTestRunner.TestSetup))), + It.Is(s => s.Contains(TestSetup))), Times.Never); MockLogger.Verify(l => l.LogWarning( - It.Is(s => s.Contains(PreparingTestRunner.TestTeardown))), + It.Is(s => s.Contains(TestTeardown))), Times.AtLeastOnce()); } @@ -164,10 +167,10 @@ public virtual void RunTests_WithSetupAndTeardownBatchesWhereSetupFails_LogsWarn RunAndVerifyTests(TestResources.DllTests_ReleaseX86, 1, 1, 0); MockLogger.Verify(l => l.LogWarning( - It.Is(s => s.Contains(PreparingTestRunner.TestSetup))), + It.Is(s => s.Contains(TestSetup))), Times.AtLeastOnce()); MockLogger.Verify(l => l.LogWarning( - It.Is(s => s.Contains(PreparingTestRunner.TestTeardown))), + It.Is(s => s.Contains(TestTeardown))), Times.Never); } @@ -178,22 +181,22 @@ public virtual void RunTests_WithoutBatches_NoLogging() RunAndVerifyTests(TestResources.DllTests_ReleaseX86, 1, 1, 0); MockLogger.Verify(l => l.LogInfo( - It.Is(s => s.Contains(PreparingTestRunner.TestSetup))), + It.Is(s => s.Contains(TestSetup))), Times.Never); MockLogger.Verify(l => l.LogWarning( - It.Is(s => s.Contains(PreparingTestRunner.TestSetup))), + It.Is(s => s.Contains(TestSetup))), Times.Never); MockLogger.Verify(l => l.LogError( - It.Is(s => s.Contains(PreparingTestRunner.TestSetup))), + It.Is(s => s.Contains(TestSetup))), Times.Never); MockLogger.Verify(l => l.LogInfo( - It.Is(s => s.Contains(PreparingTestRunner.TestTeardown))), + It.Is(s => s.Contains(TestTeardown))), Times.Never); MockLogger.Verify(l => l.LogWarning( - It.Is(s => s.Contains(PreparingTestRunner.TestTeardown))), + It.Is(s => s.Contains(TestTeardown))), Times.Never); MockLogger.Verify(l => l.LogError( - It.Is(s => s.Contains(PreparingTestRunner.TestTeardown))), + It.Is(s => s.Contains(TestTeardown))), Times.Never); } @@ -206,7 +209,7 @@ public virtual void RunTests_WithNonexistingSetupBatch_LogsError() RunAndVerifyTests(TestResources.DllTests_ReleaseX86, 1, 1, 0); MockLogger.Verify(l => l.LogError( - It.Is(s => s.Contains(PreparingTestRunner.TestSetup.ToLower()))), + It.Is(s => s.Contains(TestSetup))), Times.AtLeastOnce()); } diff --git a/GoogleTestAdapter/TestAdapter/CommonFunctions.cs b/GoogleTestAdapter/TestAdapter/CommonFunctions.cs index f9fd74be0..85875176e 100644 --- a/GoogleTestAdapter/TestAdapter/CommonFunctions.cs +++ b/GoogleTestAdapter/TestAdapter/CommonFunctions.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections.Generic; using GoogleTestAdapter.Common; using GoogleTestAdapter.Helpers; @@ -10,22 +12,29 @@ namespace GoogleTestAdapter.TestAdapter { + public enum TestPhase + { + TestDiscovery, + TestExecution + } + public static class CommonFunctions { - public static void ReportErrors(ILogger logger, string phase, bool isDebugModeEnabled) + public static void ReportErrors(ILogger logger, TestPhase phase, bool isDebugModeEnabled) { IList errors = logger.GetMessages(Severity.Error, Severity.Warning); if (errors.Count == 0) return; bool hasErrors = logger.GetMessages(Severity.Error).Count > 0; + string phaseString = (phase == TestPhase.TestDiscovery) ? Resources.TestDiscovery : Resources.TestExecution; string hint = isDebugModeEnabled ? "" - : " (enable debug mode for more information)"; + : Resources.EnableDebugMode; string jointErrors = string.Join(Environment.NewLine, errors); - string message = $"{Environment.NewLine}================{Environment.NewLine}" - + $"The following errors and warnings occured during {phase}{hint}:{Environment.NewLine}" + string message = $"{Environment.NewLine}================{Environment.NewLine}" + + String.Format(Resources.ErrorAndWarning, phaseString, hint, Environment.NewLine) + jointErrors; if (hasErrors) @@ -64,7 +73,7 @@ public static void LogVisualStudioVersion(ILogger logger) case VsVersion.VS2012: return; default: - logger.DebugInfo($"Visual Studio Version: {version}"); + logger.DebugInfo(String.Format(Resources.VSVersion, version)); break; } } diff --git a/GoogleTestAdapter/TestAdapter/DataConversionExtensions.cs b/GoogleTestAdapter/TestAdapter/DataConversionExtensions.cs index 661b1f504..cbf7eebe3 100644 --- a/GoogleTestAdapter/TestAdapter/DataConversionExtensions.cs +++ b/GoogleTestAdapter/TestAdapter/DataConversionExtensions.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Linq; using GoogleTestAdapter.Common; using GoogleTestAdapter.Model; @@ -113,7 +115,7 @@ public static Severity GetSeverity(this TestMessageLevel level) case TestMessageLevel.Error: return Severity.Error; default: - throw new InvalidOperationException($"Unknown enum literal: {level}"); + throw new InvalidOperationException(String.Format(Resources.UnknownEnum, level)); } } diff --git a/GoogleTestAdapter/TestAdapter/Framework/MessageBasedDebuggerAttacher.cs b/GoogleTestAdapter/TestAdapter/Framework/MessageBasedDebuggerAttacher.cs index 0ff083c89..7a4248cd4 100644 --- a/GoogleTestAdapter/TestAdapter/Framework/MessageBasedDebuggerAttacher.cs +++ b/GoogleTestAdapter/TestAdapter/Framework/MessageBasedDebuggerAttacher.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 7/2017. +// This file has been modified by Microsoft on 8/2017. using GoogleTestAdapter.Common; using GoogleTestAdapter.Framework; @@ -43,7 +43,7 @@ public bool AttachDebugger(int processId) { client.Service.AttachDebugger(processId); stopWatch.Stop(); - _logger.DebugInfo($"Debugger attached to process {processId}, took {stopWatch.ElapsedMilliseconds} ms"); + _logger.DebugInfo(String.Format(Resources.DebuggerAttachTime, processId, stopWatch.ElapsedMilliseconds)); return true; } } @@ -51,15 +51,15 @@ public bool AttachDebugger(int processId) { var errorMessage = serviceFault.Detail.Message; if (string.IsNullOrWhiteSpace(errorMessage)) - errorMessage = $"Could not attach debugger to process {processId}, no error message available"; + errorMessage = String.Format(Resources.DebuggerAttachMessage, processId); - errorMessage += $"{Environment.NewLine}There might be more information on the problem in Visual Studio's ActivityLog.xml (see e.g. https://blogs.msdn.microsoft.com/visualstudio/2010/02/24/troubleshooting-extensions-with-the-activity-log/)"; + errorMessage += $"{Environment.NewLine}{Resources.MoreInformationMessage}"; _logger.LogError(errorMessage); } catch (Exception e) { - _logger.LogError($"Could not attach debugger to process {processId}:{Environment.NewLine}{e}"); + _logger.LogError(String.Format(Resources.CouldNotAttachMessage, processId, Environment.NewLine, e)); } return false; } diff --git a/GoogleTestAdapter/TestAdapter/Framework/VsTestFrameworkLogger.cs b/GoogleTestAdapter/TestAdapter/Framework/VsTestFrameworkLogger.cs index d6711b5ca..12ba6dfdf 100644 --- a/GoogleTestAdapter/TestAdapter/Framework/VsTestFrameworkLogger.cs +++ b/GoogleTestAdapter/TestAdapter/Framework/VsTestFrameworkLogger.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using GoogleTestAdapter.Common; using GoogleTestAdapter.Helpers; using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging; @@ -27,13 +29,13 @@ public override void Log(Severity severity, string message) LogSafe(TestMessageLevel.Informational, message); break; case Severity.Warning: - LogSafe(TestMessageLevel.Warning, $"Warning: {message}"); + LogSafe(TestMessageLevel.Warning, String.Format(Resources.WarningMessage, message)); break; case Severity.Error: - LogSafe(TestMessageLevel.Error, $"ERROR: {message}"); + LogSafe(TestMessageLevel.Error, String.Format(Resources.ErrorMessage, message)); break; default: - throw new Exception($"Unknown enum literal: {severity}"); + throw new Exception(String.Format(Resources.UnknownLiteral, severity)); } } diff --git a/GoogleTestAdapter/TestAdapter/Framework/VsVersion.cs b/GoogleTestAdapter/TestAdapter/Framework/VsVersion.cs index fb101cafe..2a2b6b7d5 100644 --- a/GoogleTestAdapter/TestAdapter/Framework/VsVersion.cs +++ b/GoogleTestAdapter/TestAdapter/Framework/VsVersion.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.IO; @@ -63,7 +65,7 @@ public static VsVersion GetVisualStudioVersion(ILogger logger) } catch (Exception e) { - logger?.LogError($"Could not find out VisualStudio version: {e.Message}"); + logger?.LogError(String.Format(Resources.VSVersionMessage, e.Message)); _version = VsVersion.Unknown; } return _version.Value; @@ -75,7 +77,7 @@ private static VsVersion GetVsVersionFromProcess() { string pathToBinary = FindVsOrVsTestConsoleExe()?.MainModule.FileName; if (pathToBinary == null) - throw new InvalidOperationException("Could not find process"); + throw new InvalidOperationException(Resources.ProcessNotFound); FileVersionInfo binaryVersionInfo = FileVersionInfo.GetVersionInfo(pathToBinary); @@ -114,7 +116,7 @@ private static VsVersion GetVsVersionFromVersionString(string versionString) return VsVersion.VS2012; if (version.Major < (int) FirstSupportedVersion || version.Major > (int) LastSupportedVersion) - throw new InvalidOperationException($"Unknown VisualStudio version: {versionString}"); + throw new InvalidOperationException(String.Format(Resources.UnknownVisualStudioVersion, versionString)); return (VsVersion) version.Major; } diff --git a/GoogleTestAdapter/TestAdapter/Helpers/TestCaseFilter.cs b/GoogleTestAdapter/TestAdapter/Helpers/TestCaseFilter.cs index 8747f1fa9..0d3378417 100644 --- a/GoogleTestAdapter/TestAdapter/Helpers/TestCaseFilter.cs +++ b/GoogleTestAdapter/TestAdapter/Helpers/TestCaseFilter.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 8/2017. + +using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; @@ -60,7 +62,7 @@ private void InitProperties(ISet traitNames) { if (_testPropertiesMap.Keys.Contains(traitName)) { - _logger.LogWarning($"Trait has same name as base test property and will thus be ignored for test case filtering: {traitName}"); + _logger.LogWarning(String.Format(Resources.TraitIgnoreMessage, traitName)); continue; } @@ -105,15 +107,15 @@ private ITestCaseFilterExpression GetFilterExpression() ITestCaseFilterExpression filterExpression = _runContext.GetTestCaseFilter(_allPropertyNames, PropertyProvider); string message = filterExpression == null - ? "No test case filter provided" - : $"Test case filter: {filterExpression.TestCaseFilterValue}"; + ? Resources.NoTestCaseFilter + : String.Format(Resources.TestCaseFilter, filterExpression.TestCaseFilterValue); _logger.DebugInfo(message); return filterExpression; } catch (TestPlatformFormatException e) { - _logger.LogError($"Test case filter is invalid: {e.Message}"); + _logger.LogError(String.Format(Resources.FilterInvalid, e.Message)); return null; } } @@ -137,8 +139,8 @@ private bool Matches(TestCase testCase, ITestCaseFilterExpression filterExpressi filterExpression.MatchTestCase(testCase, propertyName => PropertyValueProvider(testCase, propertyName)); string message = matches - ? $"{testCase.DisplayName} matches {filterExpression.TestCaseFilterValue}" - : $"{testCase.DisplayName} does not match {filterExpression.TestCaseFilterValue}"; + ? String.Format(Resources.Matches, testCase.DisplayName, filterExpression.TestCaseFilterValue) + : String.Format(Resources.DoesntMatch, testCase.DisplayName, filterExpression.TestCaseFilterValue); _logger.DebugInfo(message); return matches; diff --git a/GoogleTestAdapter/TestAdapter/Resources.Designer.cs b/GoogleTestAdapter/TestAdapter/Resources.Designer.cs new file mode 100644 index 000000000..47df7c58f --- /dev/null +++ b/GoogleTestAdapter/TestAdapter/Resources.Designer.cs @@ -0,0 +1,351 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GoogleTestAdapter.TestAdapter { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GoogleTestAdapter.TestAdapter.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Could not attach debugger to process {0}:{1}{2}. + /// + internal static string CouldNotAttachMessage { + get { + return ResourceManager.GetString("CouldNotAttachMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not attach debugger to process {0}, no error message available. + /// + internal static string DebuggerAttachMessage { + get { + return ResourceManager.GetString("DebuggerAttachMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Debugger attached to process {0}, took {1} ms. + /// + internal static string DebuggerAttachTime { + get { + return ResourceManager.GetString("DebuggerAttachTime", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Debugging is only possible if GoogleTestAdapter has been installed into Visual Studio - NuGet installation does not support this (and other features such as Visual Studio Options, toolbar, and solution settings).. + /// + internal static string DebuggingMessage { + get { + return ResourceManager.GetString("DebuggingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} does not match {1}. + /// + internal static string DoesntMatch { + get { + return ResourceManager.GetString("DoesntMatch", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to (enable debug mode for more information). + /// + internal static string EnableDebugMode { + get { + return ResourceManager.GetString("EnableDebugMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The following errors and warnings have occured during {0} {1}:{2}. + /// + internal static string ErrorAndWarning { + get { + return ResourceManager.GetString("ErrorAndWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ERROR: {0}. + /// + internal static string ErrorMessage { + get { + return ResourceManager.GetString("ErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test case filter is invalid: {0}. + /// + internal static string FilterInvalid { + get { + return ResourceManager.GetString("FilterInvalid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not identify Visual Studio version. {0} requires at least Visual Studio 2012 Update 1.. + /// + internal static string IdentifyVSError { + get { + return ResourceManager.GetString("IdentifyVSError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid {0}. + /// + internal static string Invalid { + get { + return ResourceManager.GetString("Invalid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} matches {1}. + /// + internal static string Matches { + get { + return ResourceManager.GetString("Matches", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There might be more information on the problem in Visual Studio's ActivityLog.xml (see e.g. https://blogs.msdn.microsoft.com/visualstudio/2010/02/24/troubleshooting-extensions-with-the-activity-log/). + /// + internal static string MoreInformationMessage { + get { + return ResourceManager.GetString("MoreInformationMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No test case filter provided. + /// + internal static string NoTestCaseFilter { + get { + return ResourceManager.GetString("NoTestCaseFilter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not find process. + /// + internal static string ProcessNotFound { + get { + return ResourceManager.GetString("ProcessNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Solution settings: {0}. + /// + internal static string Settings { + get { + return ResourceManager.GetString("Settings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test case filter: {0}. + /// + internal static string TestCaseFilter { + get { + return ResourceManager.GetString("TestCaseFilter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to test discovery. + /// + internal static string TestDiscovery { + get { + return ResourceManager.GetString("TestDiscovery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test discovery completed, overall duration: {0}. + /// + internal static string TestDiscoveryCompleted { + get { + return ResourceManager.GetString("TestDiscoveryCompleted", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Exception while discovering tests: {0}. + /// + internal static string TestDiscoveryExceptionError { + get { + return ResourceManager.GetString("TestDiscoveryExceptionError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to test execution. + /// + internal static string TestExecution { + get { + return ResourceManager.GetString("TestExecution", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test execution canceled.. + /// + internal static string TestExecutionCancelled { + get { + return ResourceManager.GetString("TestExecutionCancelled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Google Test execution completed, overall duration: {0}. + /// + internal static string TestExecutionCompleted { + get { + return ResourceManager.GetString("TestExecutionCompleted", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Exception while running tests: {0}. + /// + internal static string TestRunningException { + get { + return ResourceManager.GetString("TestRunningException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Trait has same name as base test property and will thus be ignored for test case filtering: {0}. + /// + internal static string TraitIgnoreMessage { + get { + return ResourceManager.GetString("TraitIgnoreMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unknown enum literal: {0}. + /// + internal static string UnknownEnum { + get { + return ResourceManager.GetString("UnknownEnum", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unknown enum literal: {0}. + /// + internal static string UnknownLiteral { + get { + return ResourceManager.GetString("UnknownLiteral", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unknown Visual Studio version: {0}. + /// + internal static string UnknownVisualStudioVersion { + get { + return ResourceManager.GetString("UnknownVisualStudioVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} requires at least Visual Studio 2012 Update 1 - please update your Visual Studio installation.. + /// + internal static string VS2012Error { + get { + return ResourceManager.GetString("VS2012Error", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Visual Studio version: {0}. + /// + internal static string VSVersion { + get { + return ResourceManager.GetString("VSVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not find out Visual Studio version: {0}. + /// + internal static string VSVersionMessage { + get { + return ResourceManager.GetString("VSVersionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Warning: {0}. + /// + internal static string WarningMessage { + get { + return ResourceManager.GetString("WarningMessage", resourceCulture); + } + } + } +} diff --git a/GoogleTestAdapter/TestAdapter/Resources.resx b/GoogleTestAdapter/TestAdapter/Resources.resx new file mode 100644 index 000000000..fe6cb3ab7 --- /dev/null +++ b/GoogleTestAdapter/TestAdapter/Resources.resx @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Test discovery completed, overall duration: {0} + {0} represents unlocalized duration (e.g. "02:14:18") + + + Exception while discovering tests: {0} + {0} represents localized exception message (e.g. "Cannot load file") + + + Test execution canceled. + + + Google Test execution completed, overall duration: {0} + {0} represents unlocalized duration (e.g. "02:14:18") + + + Exception while running tests: {0} + {0} represents localized exception message (e.g. "Cannot load file") + + + Could not find out Visual Studio version: {0} + {0} represents localized exception message (e.g. "Cannot load file") + + + (enable debug mode for more information) + Optionally used in ErrorAndWarning string + + + The following errors and warnings have occured during {0} {1}:{2} + {0} is TestDiscovery or TestExecution string, {1} is empty or EnableDebugMode string, {2} is line break + + + {0} does not match {1} + {0} represents an unlocalized test name (e.g. "TestSuite1.Test2"), {1} represents an unlocalized test filter value (e.g. "TestCategory=Nightly") + + + {0} matches {1} + {0} represents an unlocalized test name (e.g. "TestSuite1.Test2"), {1} represents an unlocalized test filter value (e.g. "TestCategory=Nightly") + + + No test case filter provided + + + Solution settings: {0} + {0} is unlocalized list of settings + + + Test case filter: {0} + {0} is the user-specified filter + + + Visual Studio version: {0} + {0} represents a number (e.g. "12" or "14") + + + test discovery + + + test execution + + + ERROR: {0} + {0} is the error message + + + Unknown enum literal: {0} + {0} represents a number (e.g. "0" or "1") + + + Warning: {0} + {0} is the warning message + + + Could not identify Visual Studio version. {0} requires at least Visual Studio 2012 Update 1. + {0} is ExtensionName string from Common.Dynamic.TAfGT resources file + + + {0} requires at least Visual Studio 2012 Update 1 - please update your Visual Studio installation. + {0} is ExtensionName string from Common.Dynamic.TAfGT resources file + + + Debugging is only possible if GoogleTestAdapter has been installed into Visual Studio - NuGet installation does not support this (and other features such as Visual Studio Options, toolbar, and solution settings). + + + Test case filter is invalid: {0} + {0} represents localized exception message (e.g. "Cannot load file") + + + Trait has same name as base test property and will thus be ignored for test case filtering: {0} + {0} represents unlocalized name for trait (e.g. "Test") + + + Could not attach debugger to process {0}:{1}{2} + {0} represents a process id (e.g. "10480"), {1} is a line break, {2} is an exception message + + + Could not attach debugger to process {0}, no error message available + {0} represents a process id (e.g. "10480") + + + Debugger attached to process {0}, took {1} ms + {0} represents a process id (e.g. "10480"), {1} represents a number (e.g. "12" or "14") + + + There might be more information on the problem in Visual Studio's ActivityLog.xml (see e.g. https://blogs.msdn.microsoft.com/visualstudio/2010/02/24/troubleshooting-extensions-with-the-activity-log/) + + + Invalid {0} + {0} represents unlocalized settings name (e.g. "GoogleTestAdapterSettings") + + + Could not find process + + + Unknown enum literal: {0} + {0} represents a number (e.g. "0" or "1") + + + Unknown Visual Studio version: {0} + {0} is version number (e.g. "15.0") + + \ No newline at end of file diff --git a/GoogleTestAdapter/TestAdapter/Settings/RunSettingsContainer.cs b/GoogleTestAdapter/TestAdapter/Settings/RunSettingsContainer.cs index 4e76d672f..26075ab06 100644 --- a/GoogleTestAdapter/TestAdapter/Settings/RunSettingsContainer.cs +++ b/GoogleTestAdapter/TestAdapter/Settings/RunSettingsContainer.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 8/2017. using GoogleTestAdapter.Helpers; using GoogleTestAdapter.Settings; @@ -106,7 +106,7 @@ public static RunSettingsContainer LoadFromXml(XPathNavigator rootElement) } catch (InvalidOperationException e) when (e.InnerException is XmlSchemaValidationException) { - throw new InvalidRunSettingsException($"Invalid {GoogleTestConstants.SettingsName}", e.InnerException); + throw new InvalidRunSettingsException(String.Format(Resources.Invalid, GoogleTestConstants.SettingsName), e.InnerException); } catch (Exception e) { diff --git a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj index 090cbcc37..fe7bd3752 100644 --- a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj +++ b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj @@ -195,6 +195,11 @@ + + True + True + Resources.resx + @@ -212,6 +217,11 @@ Designer GoogleTestAdapterSettings.xsd + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + Designer diff --git a/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs b/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs index 1c0745f15..0d1c792b9 100644 --- a/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs +++ b/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 7/2017. +// This file has been modified by Microsoft on 8/2017. using System; using System.Collections.Generic; @@ -47,7 +47,7 @@ public void DiscoverTests(IEnumerable executables, IDiscoveryContext dis CommonFunctions.LogVisualStudioVersion(_logger); _logger.LogInfo(Strings.Instance.TestDiscoveryStarting); - _logger.DebugInfo($"Solution settings: {_settings}"); + _logger.DebugInfo(String.Format(Resources.Settings, _settings)); try { @@ -55,14 +55,14 @@ public void DiscoverTests(IEnumerable executables, IDiscoveryContext dis _discoverer.DiscoverTests(executables, reporter); stopwatch.Stop(); - _logger.LogInfo($"Test discovery completed, overall duration: {stopwatch.Elapsed}"); + _logger.LogInfo(String.Format(Resources.TestDiscoveryCompleted, stopwatch.Elapsed)); } catch (Exception e) { - _logger.LogError($"Exception while discovering tests: {e}"); + _logger.LogError(String.Format(Resources.TestDiscoveryExceptionError, e)); } - CommonFunctions.ReportErrors(_logger, "test discovery", _settings.DebugMode); + CommonFunctions.ReportErrors(_logger, TestPhase.TestDiscovery, _settings.DebugMode); } private bool IsSupportedVisualStudioVersion() @@ -71,10 +71,10 @@ private bool IsSupportedVisualStudioVersion() switch (version) { case VsVersion.Unknown: - _logger.LogWarning($"Could not identify Visual Studio version. {Strings.Instance.ExtensionName} requires at least Visual Studio 2012 Update 1."); + _logger.LogWarning(String.Format(Resources.IdentifyVSError, Strings.Instance.ExtensionName)); return true; case VsVersion.VS2012: - _logger.LogError($"{Strings.Instance.ExtensionName} requires at least Visual Studio 2012 Update 1 - please update your Visual Studio installation."); + _logger.LogError(String.Format(Resources.VS2012Error, Strings.Instance.ExtensionName)); return false; default: return true; diff --git a/GoogleTestAdapter/TestAdapter/TestExecutor.cs b/GoogleTestAdapter/TestAdapter/TestExecutor.cs index 804601d83..fcb60e541 100644 --- a/GoogleTestAdapter/TestAdapter/TestExecutor.cs +++ b/GoogleTestAdapter/TestAdapter/TestExecutor.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 8/2017. using System; using System.Linq; @@ -50,10 +50,10 @@ public void RunTests(IEnumerable executables, IRunContext runContext, IF } catch (Exception e) { - _logger.LogError($"Exception while running tests: {e}"); + _logger.LogError(String.Format(Resources.TestRunningException, e)); } - CommonFunctions.ReportErrors(_logger, "test execution", _settings.DebugMode); + CommonFunctions.ReportErrors(_logger, TestPhase.TestExecution, _settings.DebugMode); } public void RunTests(IEnumerable vsTestCasesToRun, IRunContext runContext, IFrameworkHandle frameworkHandle) @@ -64,10 +64,10 @@ public void RunTests(IEnumerable vsTestCasesToRun, IRunContext runCo } catch (Exception e) { - _logger.LogError("Exception while running tests: " + e); + _logger.LogError(String.Format(Resources.TestRunningException, e)); } - CommonFunctions.ReportErrors(_logger, "test execution", _settings.DebugMode); + CommonFunctions.ReportErrors(_logger, TestPhase.TestExecution, _settings.DebugMode); } public void Cancel() @@ -79,7 +79,7 @@ public void Cancel() _canceled = true; _executor?.Cancel(); - _logger.LogInfo("Test execution canceled."); + _logger.LogInfo(Resources.TestExecutionCancelled); } } @@ -103,7 +103,7 @@ private void TryRunTests(IEnumerable executables, IRunContext runContext DoRunTests(testCasesToRun, runContext, frameworkHandle); stopwatch.Stop(); - _logger.LogInfo($"Google Test execution completed, overall duration: {stopwatch.Elapsed}."); + _logger.LogInfo(String.Format(Resources.TestExecutionCompleted, stopwatch.Elapsed)); } private void TryRunTests(IEnumerable vsTestCasesToRun, IRunContext runContext, IFrameworkHandle frameworkHandle) @@ -122,7 +122,7 @@ private void TryRunTests(IEnumerable vsTestCasesToRun, IRunContext r DoRunTests(testCasesToRun, runContext, frameworkHandle); stopwatch.Stop(); - _logger.LogInfo($"Google Test execution completed, overall duration: {stopwatch.Elapsed}."); + _logger.LogInfo(String.Format(Resources.TestExecutionCompleted, stopwatch.Elapsed)); } private Stopwatch StartStopWatchAndInitEnvironment(IRunContext runContext, IFrameworkHandle frameworkHandle) @@ -134,7 +134,7 @@ private Stopwatch StartStopWatchAndInitEnvironment(IRunContext runContext, IFram CommonFunctions.LogVisualStudioVersion(_logger); _logger.LogInfo(Strings.Instance.TestExecutionStarting); - _logger.DebugInfo($"Solution settings: {_settings}"); + _logger.DebugInfo(String.Format(Resources.Settings, _settings)); return stopwatch; } @@ -149,7 +149,7 @@ private bool AbleToRun(IRunContext runContext) { if (!IsVisualStudioProcessAvailable() && runContext.IsBeingDebugged) { - _logger.LogError("Debugging is only possible if GoogleTestAdapter has been installed into Visual Studio - NuGet installation does not support this (and other features such as Visual Studio Options, toolbar, and solution settings)."); + _logger.LogError(Resources.DebuggingMessage); return false; } From 385c15bbdbf5bd17f1c25d74f2b1c318bc6cd2f8 Mon Sep 17 00:00:00 2001 From: Lukasz Mendakiewicz Date: Wed, 23 Aug 2017 23:02:30 -0700 Subject: [PATCH 05/96] Uniquify GoogleTestExtensionOptionsPage GUID between GTA/TAfGT --- .../VsPackage.GTA/GoogleTestExtensionOptionsPage.cs | 1 + .../VsPackage.Shared/GoogleTestExtensionOptionsPage.cs | 2 -- .../VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs | 1 + .../VsPackage.TAfGT/GoogleTestExtensionOptionsPage.vsct | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs index 49dacaa96..e866667b5 100644 --- a/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs @@ -9,6 +9,7 @@ namespace GoogleTestAdapter.VsPackage { public partial class GoogleTestExtensionOptionsPage { + private const string PackageGuidString = "e7c90fcb-0943-4908-9ae8-3b6a9d22ec9e"; private const string OptionsCategoryName = "Google Test Adapter"; private void DisplayReleaseNotesIfNecessary() diff --git a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs index 2dddff8f0..c08efb52f 100644 --- a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs @@ -30,8 +30,6 @@ namespace GoogleTestAdapter.VsPackage [ProvideMenuResource("Menus.ctmenu", 1)] public sealed partial class GoogleTestExtensionOptionsPage : Package, IGoogleTestExtensionOptionsPage, IDisposable { - private const string PackageGuidString = "e7c90fcb-0943-4908-9ae8-3b6a9d22ec9e"; - private readonly string _debuggingNamedPipeId = Guid.NewGuid().ToString(); private IGlobalRunSettingsInternal _globalRunSettings; diff --git a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs index a81ade04f..b89e50381 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs @@ -5,6 +5,7 @@ namespace GoogleTestAdapter.VsPackage { public partial class GoogleTestExtensionOptionsPage { + private const string PackageGuidString = "1db31773-234b-424b-a887-b451fb1ba837"; private const string OptionsCategoryName = "Test Adapter for Google Test"; private void DisplayReleaseNotesIfNecessary() diff --git a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.vsct b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.vsct index c405156d0..c7f1cac51 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.vsct +++ b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.vsct @@ -98,7 +98,7 @@ - + From dd95a771108fe18e8eadaca0a171ff4b798ee850 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Mon, 28 Aug 2017 12:08:40 -0700 Subject: [PATCH 06/96] Fix tests when GTA isnt built with the sln (#24) * add nuget command line to a tafgt projects packages config so it gets restored on the build server * change gta to tafgt to see if it fixes tets runs * template abstract console integration tests to work when only tafgt is in sln --- ...ionTests.cs => AbstractConsoleIntegrationTests.cs.tt} | 9 ++++++++- GoogleTestAdapter/VsPackage.TAfGT/packages.config | 1 + ResolveTTs.proj | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-) rename GoogleTestAdapter/Tests.Common/{AbstractConsoleIntegrationTests.cs => AbstractConsoleIntegrationTests.cs.tt} (94%) diff --git a/GoogleTestAdapter/Tests.Common/AbstractConsoleIntegrationTests.cs b/GoogleTestAdapter/Tests.Common/AbstractConsoleIntegrationTests.cs.tt similarity index 94% rename from GoogleTestAdapter/Tests.Common/AbstractConsoleIntegrationTests.cs rename to GoogleTestAdapter/Tests.Common/AbstractConsoleIntegrationTests.cs.tt index 9a5bae340..9eaf4416a 100644 --- a/GoogleTestAdapter/Tests.Common/AbstractConsoleIntegrationTests.cs +++ b/GoogleTestAdapter/Tests.Common/AbstractConsoleIntegrationTests.cs.tt @@ -1,4 +1,7 @@ -// This file has been modified by Microsoft on 6/2017. +<#@ template language="c#" hostspecific="true" #> +<#@ output extension=".cs" #> +<#@ parameter type="System.String" name="TestAdapterFlavor" #> +// This file has been modified by Microsoft on 8/2017. using System.Collections.Generic; using System.IO; @@ -44,7 +47,11 @@ public static void GetDirectories(out string testAdapterDir, out string testSolu match.Success.Should().BeTrue(); string binariesPath = match.Groups[1].Value; string debugOrRelease = match.Groups[2].Value; +<# if (TestAdapterFlavor == "GTA") { #> testAdapterDir = Path.Combine(binariesPath, "GoogleTestAdapter", debugOrRelease, "Packaging.GTA"); +<# } else if (TestAdapterFlavor == "TAfGT") { #> + testAdapterDir = Path.Combine(binariesPath, "GoogleTestAdapter", debugOrRelease, "Packaging.TAfGT"); +<# } #> testSolutionFile = Path.Combine(binariesPath, @"..\..\SampleTests\SampleTests.sln"); } diff --git a/GoogleTestAdapter/VsPackage.TAfGT/packages.config b/GoogleTestAdapter/VsPackage.TAfGT/packages.config index c5ddcac55..832b99531 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/packages.config +++ b/GoogleTestAdapter/VsPackage.TAfGT/packages.config @@ -3,4 +3,5 @@ + \ No newline at end of file diff --git a/ResolveTTs.proj b/ResolveTTs.proj index c4565d503..eb309dde8 100644 --- a/ResolveTTs.proj +++ b/ResolveTTs.proj @@ -31,6 +31,10 @@ TextTemplatingFileGenerator app.config + + TextTemplatingFileGenerator + AbstractConsoleIntegrationTests.cs + TextTemplatingFileGenerator app.config From bf415d0f7abcf09cb08782e47672cd086ec961bc Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Fri, 1 Sep 2017 12:51:57 -0700 Subject: [PATCH 07/96] Add localization targets in projects with resources to be localized (#27) * Add loc targets in proj files * only real sign when we need to --- .../Common.Dynamic.TAfGT.csproj | 15 +++++++++++++++ GoogleTestAdapter/Core/Core.csproj | 15 +++++++++++++++ GoogleTestAdapter/DiaResolver/DiaResolver.csproj | 15 +++++++++++++++ .../NewProjectWizard/NewProjectWizard.csproj | 15 +++++++++++++++ GoogleTestAdapter/TestAdapter/TestAdapter.csproj | 15 +++++++++++++++ .../VsPackage.TAfGT/VsPackage.TAfGT.csproj | 15 +++++++++++++++ 6 files changed, 90 insertions(+) diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj b/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj index 06d569892..8645dc620 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj @@ -39,10 +39,17 @@ 4 + + $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\GoogleTestAdapter.Common.Dynamic.lcl + Microsoft StrongName + + + false + @@ -84,4 +91,12 @@ copy "$(SolutionDir)Keys\Key_Debug.snk" "$(ProjectDir)Key.snk" ) + + + + Microsoft + StrongName + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Core/Core.csproj b/GoogleTestAdapter/Core/Core.csproj index 784f6c73a..70a98ea32 100644 --- a/GoogleTestAdapter/Core/Core.csproj +++ b/GoogleTestAdapter/Core/Core.csproj @@ -41,10 +41,17 @@ true + + $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\GoogleTestAdapter.Core.lcl + Microsoft StrongName + + + false + @@ -152,4 +159,12 @@ --> + + + + Microsoft + StrongName + + + \ No newline at end of file diff --git a/GoogleTestAdapter/DiaResolver/DiaResolver.csproj b/GoogleTestAdapter/DiaResolver/DiaResolver.csproj index 0d8cc81d5..e088ecb45 100644 --- a/GoogleTestAdapter/DiaResolver/DiaResolver.csproj +++ b/GoogleTestAdapter/DiaResolver/DiaResolver.csproj @@ -43,10 +43,17 @@ true + + $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\GoogleTestAdapter.DiaResolver.lcl + Microsoft StrongName + + + false + @@ -118,4 +125,12 @@ --> + + + + Microsoft + StrongName + + + \ No newline at end of file diff --git a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj index f099d26d6..3191578d3 100644 --- a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj +++ b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj @@ -43,10 +43,17 @@ true + + $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\NewProjectWizard.lcl + Microsoft StrongName + + + false + @@ -170,4 +177,12 @@ + + + + Microsoft + StrongName + + + \ No newline at end of file diff --git a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj index fe7bd3752..4b5d254fd 100644 --- a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj +++ b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj @@ -43,10 +43,17 @@ true + + $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\GoogleTestAdapter.TestAdapter.lcl + Microsoft StrongName + + + false + @@ -264,4 +271,12 @@ $(DevEnvDir)CommonExtensions\Microsoft\TestWindow\vstest.console.exe "$(SolutionDir)..\SampleTests\Debug\Tests_gta.exe" /Settings:"$(SolutionDir)..\SampleTests\SampleTests.gta.runsettings" /TestCaseFilter:"DisplayName=TestMath.AddPasses" /TestAdapterPath:"$(TargetDir)" + + + + Microsoft + StrongName + + + \ No newline at end of file diff --git a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj index 32a382fa0..008709c5d 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj +++ b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj @@ -210,10 +210,17 @@ + + $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\GoogleTestAdapter.VsPackage.TAfGT.lcl + Microsoft StrongName + + + false + @@ -267,4 +274,12 @@ + + + + Microsoft + StrongName + + + \ No newline at end of file From afe7ef94e417c5c0a5e0b668c195317ac1ea44ea Mon Sep 17 00:00:00 2001 From: Lukasz Mendakiewicz Date: Thu, 7 Sep 2017 13:31:32 -0700 Subject: [PATCH 08/96] Deploy only one extension --- GoogleTestAdapter/Packaging.GTA/Packaging.GTA.csproj | 1 + GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj | 1 + 2 files changed, 2 insertions(+) diff --git a/GoogleTestAdapter/Packaging.GTA/Packaging.GTA.csproj b/GoogleTestAdapter/Packaging.GTA/Packaging.GTA.csproj index 487fd76bb..74cbe5529 100644 --- a/GoogleTestAdapter/Packaging.GTA/Packaging.GTA.csproj +++ b/GoogleTestAdapter/Packaging.GTA/Packaging.GTA.csproj @@ -25,6 +25,7 @@ true true true + false true diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index 7ee623383..0b68cf812 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -25,6 +25,7 @@ true true true + false true From 8246518dff2af2cbd02ac5ff95637936e3341ff2 Mon Sep 17 00:00:00 2001 From: Lukasz Mendakiewicz Date: Thu, 7 Sep 2017 13:32:00 -0700 Subject: [PATCH 09/96] Update .gitignore --- GoogleTestAdapter/Tests.Common/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/GoogleTestAdapter/Tests.Common/.gitignore b/GoogleTestAdapter/Tests.Common/.gitignore index 2cd8da244..ee3f5a46f 100644 --- a/GoogleTestAdapter/Tests.Common/.gitignore +++ b/GoogleTestAdapter/Tests.Common/.gitignore @@ -1 +1,2 @@ +AbstractConsoleIntegrationTests.cs app.config \ No newline at end of file From b97cb7f0788ce02323fa0e16ef21c70e06d4d64f Mon Sep 17 00:00:00 2001 From: Lukasz Mendakiewicz Date: Thu, 7 Sep 2017 13:48:41 -0700 Subject: [PATCH 10/96] Remove x86 and x64 solution configurations --- GoogleTestAdapter/GoogleTestAdapter.sln | 254 +----------------------- 1 file changed, 1 insertion(+), 253 deletions(-) diff --git a/GoogleTestAdapter/GoogleTestAdapter.sln b/GoogleTestAdapter/GoogleTestAdapter.sln index 7dcc3e168..609eda422 100644 --- a/GoogleTestAdapter/GoogleTestAdapter.sln +++ b/GoogleTestAdapter/GoogleTestAdapter.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26717.1 +VisualStudioVersion = 15.0.26823.1 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{1F754A4D-BD42-4368-8B90-F3C03F24A2F3}" ProjectSection(SolutionItems) = preProject @@ -138,369 +138,117 @@ Global EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {E6276CAD-E4C3-4B25-876A-65B265EBFF1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E6276CAD-E4C3-4B25-876A-65B265EBFF1A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E6276CAD-E4C3-4B25-876A-65B265EBFF1A}.Debug|x64.ActiveCfg = Debug|Any CPU - {E6276CAD-E4C3-4B25-876A-65B265EBFF1A}.Debug|x64.Build.0 = Debug|Any CPU - {E6276CAD-E4C3-4B25-876A-65B265EBFF1A}.Debug|x86.ActiveCfg = Debug|Any CPU - {E6276CAD-E4C3-4B25-876A-65B265EBFF1A}.Debug|x86.Build.0 = Debug|Any CPU {E6276CAD-E4C3-4B25-876A-65B265EBFF1A}.Release|Any CPU.ActiveCfg = Release|Any CPU {E6276CAD-E4C3-4B25-876A-65B265EBFF1A}.Release|Any CPU.Build.0 = Release|Any CPU - {E6276CAD-E4C3-4B25-876A-65B265EBFF1A}.Release|x64.ActiveCfg = Release|Any CPU - {E6276CAD-E4C3-4B25-876A-65B265EBFF1A}.Release|x64.Build.0 = Release|Any CPU - {E6276CAD-E4C3-4B25-876A-65B265EBFF1A}.Release|x86.ActiveCfg = Release|Any CPU - {E6276CAD-E4C3-4B25-876A-65B265EBFF1A}.Release|x86.Build.0 = Release|Any CPU {55294B5F-A075-43F2-B0E9-2B11925E8B91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {55294B5F-A075-43F2-B0E9-2B11925E8B91}.Debug|Any CPU.Build.0 = Debug|Any CPU - {55294B5F-A075-43F2-B0E9-2B11925E8B91}.Debug|x64.ActiveCfg = Debug|Any CPU - {55294B5F-A075-43F2-B0E9-2B11925E8B91}.Debug|x64.Build.0 = Debug|Any CPU - {55294B5F-A075-43F2-B0E9-2B11925E8B91}.Debug|x86.ActiveCfg = Debug|Any CPU - {55294B5F-A075-43F2-B0E9-2B11925E8B91}.Debug|x86.Build.0 = Debug|Any CPU {55294B5F-A075-43F2-B0E9-2B11925E8B91}.Release|Any CPU.ActiveCfg = Release|Any CPU {55294B5F-A075-43F2-B0E9-2B11925E8B91}.Release|Any CPU.Build.0 = Release|Any CPU - {55294B5F-A075-43F2-B0E9-2B11925E8B91}.Release|x64.ActiveCfg = Release|Any CPU - {55294B5F-A075-43F2-B0E9-2B11925E8B91}.Release|x64.Build.0 = Release|Any CPU - {55294B5F-A075-43F2-B0E9-2B11925E8B91}.Release|x86.ActiveCfg = Release|Any CPU - {55294B5F-A075-43F2-B0E9-2B11925E8B91}.Release|x86.Build.0 = Release|Any CPU {44C04E51-D543-4155-A57E-BBEB73D3F8E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {44C04E51-D543-4155-A57E-BBEB73D3F8E5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {44C04E51-D543-4155-A57E-BBEB73D3F8E5}.Debug|x64.ActiveCfg = Debug|Any CPU - {44C04E51-D543-4155-A57E-BBEB73D3F8E5}.Debug|x64.Build.0 = Debug|Any CPU - {44C04E51-D543-4155-A57E-BBEB73D3F8E5}.Debug|x86.ActiveCfg = Debug|Any CPU - {44C04E51-D543-4155-A57E-BBEB73D3F8E5}.Debug|x86.Build.0 = Debug|Any CPU {44C04E51-D543-4155-A57E-BBEB73D3F8E5}.Release|Any CPU.ActiveCfg = Release|Any CPU {44C04E51-D543-4155-A57E-BBEB73D3F8E5}.Release|Any CPU.Build.0 = Release|Any CPU - {44C04E51-D543-4155-A57E-BBEB73D3F8E5}.Release|x64.ActiveCfg = Release|Any CPU - {44C04E51-D543-4155-A57E-BBEB73D3F8E5}.Release|x64.Build.0 = Release|Any CPU - {44C04E51-D543-4155-A57E-BBEB73D3F8E5}.Release|x86.ActiveCfg = Release|Any CPU - {44C04E51-D543-4155-A57E-BBEB73D3F8E5}.Release|x86.Build.0 = Release|Any CPU {B06C696E-E458-490A-AC44-9E4F460DBAFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B06C696E-E458-490A-AC44-9E4F460DBAFE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B06C696E-E458-490A-AC44-9E4F460DBAFE}.Debug|x64.ActiveCfg = Debug|Any CPU - {B06C696E-E458-490A-AC44-9E4F460DBAFE}.Debug|x64.Build.0 = Debug|Any CPU - {B06C696E-E458-490A-AC44-9E4F460DBAFE}.Debug|x86.ActiveCfg = Debug|Any CPU - {B06C696E-E458-490A-AC44-9E4F460DBAFE}.Debug|x86.Build.0 = Debug|Any CPU {B06C696E-E458-490A-AC44-9E4F460DBAFE}.Release|Any CPU.ActiveCfg = Release|Any CPU {B06C696E-E458-490A-AC44-9E4F460DBAFE}.Release|Any CPU.Build.0 = Release|Any CPU - {B06C696E-E458-490A-AC44-9E4F460DBAFE}.Release|x64.ActiveCfg = Release|Any CPU - {B06C696E-E458-490A-AC44-9E4F460DBAFE}.Release|x64.Build.0 = Release|Any CPU - {B06C696E-E458-490A-AC44-9E4F460DBAFE}.Release|x86.ActiveCfg = Release|Any CPU - {B06C696E-E458-490A-AC44-9E4F460DBAFE}.Release|x86.Build.0 = Release|Any CPU {FDC95D92-5E1E-4BDF-AA35-181851FCE755}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FDC95D92-5E1E-4BDF-AA35-181851FCE755}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FDC95D92-5E1E-4BDF-AA35-181851FCE755}.Debug|x64.ActiveCfg = Debug|Any CPU - {FDC95D92-5E1E-4BDF-AA35-181851FCE755}.Debug|x64.Build.0 = Debug|Any CPU - {FDC95D92-5E1E-4BDF-AA35-181851FCE755}.Debug|x86.ActiveCfg = Debug|Any CPU - {FDC95D92-5E1E-4BDF-AA35-181851FCE755}.Debug|x86.Build.0 = Debug|Any CPU {FDC95D92-5E1E-4BDF-AA35-181851FCE755}.Release|Any CPU.ActiveCfg = Release|Any CPU {FDC95D92-5E1E-4BDF-AA35-181851FCE755}.Release|Any CPU.Build.0 = Release|Any CPU - {FDC95D92-5E1E-4BDF-AA35-181851FCE755}.Release|x64.ActiveCfg = Release|Any CPU - {FDC95D92-5E1E-4BDF-AA35-181851FCE755}.Release|x64.Build.0 = Release|Any CPU - {FDC95D92-5E1E-4BDF-AA35-181851FCE755}.Release|x86.ActiveCfg = Release|Any CPU - {FDC95D92-5E1E-4BDF-AA35-181851FCE755}.Release|x86.Build.0 = Release|Any CPU {A3ADB538-F3DF-4C5F-960D-11B6DF66A1A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A3ADB538-F3DF-4C5F-960D-11B6DF66A1A3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A3ADB538-F3DF-4C5F-960D-11B6DF66A1A3}.Debug|x64.ActiveCfg = Debug|Any CPU - {A3ADB538-F3DF-4C5F-960D-11B6DF66A1A3}.Debug|x64.Build.0 = Debug|Any CPU - {A3ADB538-F3DF-4C5F-960D-11B6DF66A1A3}.Debug|x86.ActiveCfg = Debug|Any CPU - {A3ADB538-F3DF-4C5F-960D-11B6DF66A1A3}.Debug|x86.Build.0 = Debug|Any CPU {A3ADB538-F3DF-4C5F-960D-11B6DF66A1A3}.Release|Any CPU.ActiveCfg = Release|Any CPU {A3ADB538-F3DF-4C5F-960D-11B6DF66A1A3}.Release|Any CPU.Build.0 = Release|Any CPU - {A3ADB538-F3DF-4C5F-960D-11B6DF66A1A3}.Release|x64.ActiveCfg = Release|Any CPU - {A3ADB538-F3DF-4C5F-960D-11B6DF66A1A3}.Release|x64.Build.0 = Release|Any CPU - {A3ADB538-F3DF-4C5F-960D-11B6DF66A1A3}.Release|x86.ActiveCfg = Release|Any CPU - {A3ADB538-F3DF-4C5F-960D-11B6DF66A1A3}.Release|x86.Build.0 = Release|Any CPU {941BA1B7-2CF4-4D5C-8680-5C73CD6FE197}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {941BA1B7-2CF4-4D5C-8680-5C73CD6FE197}.Debug|Any CPU.Build.0 = Debug|Any CPU - {941BA1B7-2CF4-4D5C-8680-5C73CD6FE197}.Debug|x64.ActiveCfg = Debug|Any CPU - {941BA1B7-2CF4-4D5C-8680-5C73CD6FE197}.Debug|x64.Build.0 = Debug|Any CPU - {941BA1B7-2CF4-4D5C-8680-5C73CD6FE197}.Debug|x86.ActiveCfg = Debug|Any CPU - {941BA1B7-2CF4-4D5C-8680-5C73CD6FE197}.Debug|x86.Build.0 = Debug|Any CPU {941BA1B7-2CF4-4D5C-8680-5C73CD6FE197}.Release|Any CPU.ActiveCfg = Release|Any CPU {941BA1B7-2CF4-4D5C-8680-5C73CD6FE197}.Release|Any CPU.Build.0 = Release|Any CPU - {941BA1B7-2CF4-4D5C-8680-5C73CD6FE197}.Release|x64.ActiveCfg = Release|Any CPU - {941BA1B7-2CF4-4D5C-8680-5C73CD6FE197}.Release|x64.Build.0 = Release|Any CPU - {941BA1B7-2CF4-4D5C-8680-5C73CD6FE197}.Release|x86.ActiveCfg = Release|Any CPU - {941BA1B7-2CF4-4D5C-8680-5C73CD6FE197}.Release|x86.Build.0 = Release|Any CPU {7F4372DA-70E2-48D0-BEE2-8043528428D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7F4372DA-70E2-48D0-BEE2-8043528428D0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7F4372DA-70E2-48D0-BEE2-8043528428D0}.Debug|x64.ActiveCfg = Debug|Any CPU - {7F4372DA-70E2-48D0-BEE2-8043528428D0}.Debug|x64.Build.0 = Debug|Any CPU - {7F4372DA-70E2-48D0-BEE2-8043528428D0}.Debug|x86.ActiveCfg = Debug|Any CPU - {7F4372DA-70E2-48D0-BEE2-8043528428D0}.Debug|x86.Build.0 = Debug|Any CPU {7F4372DA-70E2-48D0-BEE2-8043528428D0}.Release|Any CPU.ActiveCfg = Release|Any CPU {7F4372DA-70E2-48D0-BEE2-8043528428D0}.Release|Any CPU.Build.0 = Release|Any CPU - {7F4372DA-70E2-48D0-BEE2-8043528428D0}.Release|x64.ActiveCfg = Release|Any CPU - {7F4372DA-70E2-48D0-BEE2-8043528428D0}.Release|x64.Build.0 = Release|Any CPU - {7F4372DA-70E2-48D0-BEE2-8043528428D0}.Release|x86.ActiveCfg = Release|Any CPU - {7F4372DA-70E2-48D0-BEE2-8043528428D0}.Release|x86.Build.0 = Release|Any CPU {B9C827B5-DC90-4A78-B477-852EAE1196AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B9C827B5-DC90-4A78-B477-852EAE1196AF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B9C827B5-DC90-4A78-B477-852EAE1196AF}.Debug|x64.ActiveCfg = Debug|Any CPU - {B9C827B5-DC90-4A78-B477-852EAE1196AF}.Debug|x64.Build.0 = Debug|Any CPU - {B9C827B5-DC90-4A78-B477-852EAE1196AF}.Debug|x86.ActiveCfg = Debug|Any CPU - {B9C827B5-DC90-4A78-B477-852EAE1196AF}.Debug|x86.Build.0 = Debug|Any CPU {B9C827B5-DC90-4A78-B477-852EAE1196AF}.Release|Any CPU.ActiveCfg = Release|Any CPU {B9C827B5-DC90-4A78-B477-852EAE1196AF}.Release|Any CPU.Build.0 = Release|Any CPU - {B9C827B5-DC90-4A78-B477-852EAE1196AF}.Release|x64.ActiveCfg = Release|Any CPU - {B9C827B5-DC90-4A78-B477-852EAE1196AF}.Release|x64.Build.0 = Release|Any CPU - {B9C827B5-DC90-4A78-B477-852EAE1196AF}.Release|x86.ActiveCfg = Release|Any CPU - {B9C827B5-DC90-4A78-B477-852EAE1196AF}.Release|x86.Build.0 = Release|Any CPU {032BEBF7-2D2B-4CFD-B53D-E3D21B3AC9D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {032BEBF7-2D2B-4CFD-B53D-E3D21B3AC9D6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {032BEBF7-2D2B-4CFD-B53D-E3D21B3AC9D6}.Debug|x64.ActiveCfg = Debug|Any CPU - {032BEBF7-2D2B-4CFD-B53D-E3D21B3AC9D6}.Debug|x64.Build.0 = Debug|Any CPU - {032BEBF7-2D2B-4CFD-B53D-E3D21B3AC9D6}.Debug|x86.ActiveCfg = Debug|Any CPU - {032BEBF7-2D2B-4CFD-B53D-E3D21B3AC9D6}.Debug|x86.Build.0 = Debug|Any CPU {032BEBF7-2D2B-4CFD-B53D-E3D21B3AC9D6}.Release|Any CPU.ActiveCfg = Release|Any CPU {032BEBF7-2D2B-4CFD-B53D-E3D21B3AC9D6}.Release|Any CPU.Build.0 = Release|Any CPU - {032BEBF7-2D2B-4CFD-B53D-E3D21B3AC9D6}.Release|x64.ActiveCfg = Release|Any CPU - {032BEBF7-2D2B-4CFD-B53D-E3D21B3AC9D6}.Release|x64.Build.0 = Release|Any CPU - {032BEBF7-2D2B-4CFD-B53D-E3D21B3AC9D6}.Release|x86.ActiveCfg = Release|Any CPU - {032BEBF7-2D2B-4CFD-B53D-E3D21B3AC9D6}.Release|x86.Build.0 = Release|Any CPU {BC05D210-68CD-47D0-AE8C-0F3168D1BE73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BC05D210-68CD-47D0-AE8C-0F3168D1BE73}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BC05D210-68CD-47D0-AE8C-0F3168D1BE73}.Debug|x64.ActiveCfg = Debug|Any CPU - {BC05D210-68CD-47D0-AE8C-0F3168D1BE73}.Debug|x64.Build.0 = Debug|Any CPU - {BC05D210-68CD-47D0-AE8C-0F3168D1BE73}.Debug|x86.ActiveCfg = Debug|Any CPU - {BC05D210-68CD-47D0-AE8C-0F3168D1BE73}.Debug|x86.Build.0 = Debug|Any CPU {BC05D210-68CD-47D0-AE8C-0F3168D1BE73}.Release|Any CPU.ActiveCfg = Release|Any CPU {BC05D210-68CD-47D0-AE8C-0F3168D1BE73}.Release|Any CPU.Build.0 = Release|Any CPU - {BC05D210-68CD-47D0-AE8C-0F3168D1BE73}.Release|x64.ActiveCfg = Release|Any CPU - {BC05D210-68CD-47D0-AE8C-0F3168D1BE73}.Release|x64.Build.0 = Release|Any CPU - {BC05D210-68CD-47D0-AE8C-0F3168D1BE73}.Release|x86.ActiveCfg = Release|Any CPU - {BC05D210-68CD-47D0-AE8C-0F3168D1BE73}.Release|x86.Build.0 = Release|Any CPU {17F4B73F-E4D3-4E40-98FC-788B1D0F8225}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {17F4B73F-E4D3-4E40-98FC-788B1D0F8225}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17F4B73F-E4D3-4E40-98FC-788B1D0F8225}.Debug|x64.ActiveCfg = Debug|Any CPU - {17F4B73F-E4D3-4E40-98FC-788B1D0F8225}.Debug|x64.Build.0 = Debug|Any CPU - {17F4B73F-E4D3-4E40-98FC-788B1D0F8225}.Debug|x86.ActiveCfg = Debug|Any CPU - {17F4B73F-E4D3-4E40-98FC-788B1D0F8225}.Debug|x86.Build.0 = Debug|Any CPU {17F4B73F-E4D3-4E40-98FC-788B1D0F8225}.Release|Any CPU.ActiveCfg = Release|Any CPU {17F4B73F-E4D3-4E40-98FC-788B1D0F8225}.Release|Any CPU.Build.0 = Release|Any CPU - {17F4B73F-E4D3-4E40-98FC-788B1D0F8225}.Release|x64.ActiveCfg = Release|Any CPU - {17F4B73F-E4D3-4E40-98FC-788B1D0F8225}.Release|x64.Build.0 = Release|Any CPU - {17F4B73F-E4D3-4E40-98FC-788B1D0F8225}.Release|x86.ActiveCfg = Release|Any CPU - {17F4B73F-E4D3-4E40-98FC-788B1D0F8225}.Release|x86.Build.0 = Release|Any CPU {9041BDED-FA1B-4C17-B7EA-7B750C470C23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9041BDED-FA1B-4C17-B7EA-7B750C470C23}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9041BDED-FA1B-4C17-B7EA-7B750C470C23}.Debug|x64.ActiveCfg = Debug|Any CPU - {9041BDED-FA1B-4C17-B7EA-7B750C470C23}.Debug|x64.Build.0 = Debug|Any CPU - {9041BDED-FA1B-4C17-B7EA-7B750C470C23}.Debug|x86.ActiveCfg = Debug|Any CPU - {9041BDED-FA1B-4C17-B7EA-7B750C470C23}.Debug|x86.Build.0 = Debug|Any CPU {9041BDED-FA1B-4C17-B7EA-7B750C470C23}.Release|Any CPU.ActiveCfg = Release|Any CPU {9041BDED-FA1B-4C17-B7EA-7B750C470C23}.Release|Any CPU.Build.0 = Release|Any CPU - {9041BDED-FA1B-4C17-B7EA-7B750C470C23}.Release|x64.ActiveCfg = Release|Any CPU - {9041BDED-FA1B-4C17-B7EA-7B750C470C23}.Release|x64.Build.0 = Release|Any CPU - {9041BDED-FA1B-4C17-B7EA-7B750C470C23}.Release|x86.ActiveCfg = Release|Any CPU - {9041BDED-FA1B-4C17-B7EA-7B750C470C23}.Release|x86.Build.0 = Release|Any CPU {87F26371-0005-4301-9C49-A6DF4F06B81C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {87F26371-0005-4301-9C49-A6DF4F06B81C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {87F26371-0005-4301-9C49-A6DF4F06B81C}.Debug|x64.ActiveCfg = Debug|Any CPU - {87F26371-0005-4301-9C49-A6DF4F06B81C}.Debug|x64.Build.0 = Debug|Any CPU - {87F26371-0005-4301-9C49-A6DF4F06B81C}.Debug|x86.ActiveCfg = Debug|Any CPU - {87F26371-0005-4301-9C49-A6DF4F06B81C}.Debug|x86.Build.0 = Debug|Any CPU {87F26371-0005-4301-9C49-A6DF4F06B81C}.Release|Any CPU.ActiveCfg = Release|Any CPU {87F26371-0005-4301-9C49-A6DF4F06B81C}.Release|Any CPU.Build.0 = Release|Any CPU - {87F26371-0005-4301-9C49-A6DF4F06B81C}.Release|x64.ActiveCfg = Release|Any CPU - {87F26371-0005-4301-9C49-A6DF4F06B81C}.Release|x64.Build.0 = Release|Any CPU - {87F26371-0005-4301-9C49-A6DF4F06B81C}.Release|x86.ActiveCfg = Release|Any CPU - {87F26371-0005-4301-9C49-A6DF4F06B81C}.Release|x86.Build.0 = Release|Any CPU {12952B24-C70B-4A26-839A-EE4183BE8CC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {12952B24-C70B-4A26-839A-EE4183BE8CC0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {12952B24-C70B-4A26-839A-EE4183BE8CC0}.Debug|x64.ActiveCfg = Debug|Any CPU - {12952B24-C70B-4A26-839A-EE4183BE8CC0}.Debug|x64.Build.0 = Debug|Any CPU - {12952B24-C70B-4A26-839A-EE4183BE8CC0}.Debug|x86.ActiveCfg = Debug|Any CPU - {12952B24-C70B-4A26-839A-EE4183BE8CC0}.Debug|x86.Build.0 = Debug|Any CPU {12952B24-C70B-4A26-839A-EE4183BE8CC0}.Release|Any CPU.ActiveCfg = Release|Any CPU {12952B24-C70B-4A26-839A-EE4183BE8CC0}.Release|Any CPU.Build.0 = Release|Any CPU - {12952B24-C70B-4A26-839A-EE4183BE8CC0}.Release|x64.ActiveCfg = Release|Any CPU - {12952B24-C70B-4A26-839A-EE4183BE8CC0}.Release|x64.Build.0 = Release|Any CPU - {12952B24-C70B-4A26-839A-EE4183BE8CC0}.Release|x86.ActiveCfg = Release|Any CPU - {12952B24-C70B-4A26-839A-EE4183BE8CC0}.Release|x86.Build.0 = Release|Any CPU {2F0E4458-6C1C-461F-A60A-B731AD97E839}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2F0E4458-6C1C-461F-A60A-B731AD97E839}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2F0E4458-6C1C-461F-A60A-B731AD97E839}.Debug|x64.ActiveCfg = Debug|Any CPU - {2F0E4458-6C1C-461F-A60A-B731AD97E839}.Debug|x64.Build.0 = Debug|Any CPU - {2F0E4458-6C1C-461F-A60A-B731AD97E839}.Debug|x86.ActiveCfg = Debug|Any CPU - {2F0E4458-6C1C-461F-A60A-B731AD97E839}.Debug|x86.Build.0 = Debug|Any CPU {2F0E4458-6C1C-461F-A60A-B731AD97E839}.Release|Any CPU.ActiveCfg = Release|Any CPU {2F0E4458-6C1C-461F-A60A-B731AD97E839}.Release|Any CPU.Build.0 = Release|Any CPU - {2F0E4458-6C1C-461F-A60A-B731AD97E839}.Release|x64.ActiveCfg = Release|Any CPU - {2F0E4458-6C1C-461F-A60A-B731AD97E839}.Release|x64.Build.0 = Release|Any CPU - {2F0E4458-6C1C-461F-A60A-B731AD97E839}.Release|x86.ActiveCfg = Release|Any CPU - {2F0E4458-6C1C-461F-A60A-B731AD97E839}.Release|x86.Build.0 = Release|Any CPU {04990B2A-C7B5-40DA-A856-230E1E062FF1}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {04990B2A-C7B5-40DA-A856-230E1E062FF1}.Debug|x64.ActiveCfg = Debug|x64 - {04990B2A-C7B5-40DA-A856-230E1E062FF1}.Debug|x64.Build.0 = Debug|x64 - {04990B2A-C7B5-40DA-A856-230E1E062FF1}.Debug|x86.ActiveCfg = Debug|Win32 - {04990B2A-C7B5-40DA-A856-230E1E062FF1}.Debug|x86.Build.0 = Debug|Win32 {04990B2A-C7B5-40DA-A856-230E1E062FF1}.Release|Any CPU.ActiveCfg = Release|Win32 - {04990B2A-C7B5-40DA-A856-230E1E062FF1}.Release|x64.ActiveCfg = Release|x64 - {04990B2A-C7B5-40DA-A856-230E1E062FF1}.Release|x64.Build.0 = Release|x64 - {04990B2A-C7B5-40DA-A856-230E1E062FF1}.Release|x86.ActiveCfg = Release|Win32 - {04990B2A-C7B5-40DA-A856-230E1E062FF1}.Release|x86.Build.0 = Release|Win32 {A5AA0879-9511-420A-9025-1AB87FAB7348}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {A5AA0879-9511-420A-9025-1AB87FAB7348}.Debug|x64.ActiveCfg = Debug|x64 - {A5AA0879-9511-420A-9025-1AB87FAB7348}.Debug|x64.Build.0 = Debug|x64 - {A5AA0879-9511-420A-9025-1AB87FAB7348}.Debug|x86.ActiveCfg = Debug|Win32 - {A5AA0879-9511-420A-9025-1AB87FAB7348}.Debug|x86.Build.0 = Debug|Win32 {A5AA0879-9511-420A-9025-1AB87FAB7348}.Release|Any CPU.ActiveCfg = Release|Win32 - {A5AA0879-9511-420A-9025-1AB87FAB7348}.Release|x64.ActiveCfg = Release|x64 - {A5AA0879-9511-420A-9025-1AB87FAB7348}.Release|x64.Build.0 = Release|x64 - {A5AA0879-9511-420A-9025-1AB87FAB7348}.Release|x86.ActiveCfg = Release|Win32 - {A5AA0879-9511-420A-9025-1AB87FAB7348}.Release|x86.Build.0 = Release|Win32 {446DA549-6EEF-4C48-A73C-F35B79C0BDE9}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {446DA549-6EEF-4C48-A73C-F35B79C0BDE9}.Debug|x64.ActiveCfg = Debug|x64 - {446DA549-6EEF-4C48-A73C-F35B79C0BDE9}.Debug|x64.Build.0 = Debug|x64 - {446DA549-6EEF-4C48-A73C-F35B79C0BDE9}.Debug|x86.ActiveCfg = Debug|Win32 - {446DA549-6EEF-4C48-A73C-F35B79C0BDE9}.Debug|x86.Build.0 = Debug|Win32 {446DA549-6EEF-4C48-A73C-F35B79C0BDE9}.Release|Any CPU.ActiveCfg = Release|Win32 - {446DA549-6EEF-4C48-A73C-F35B79C0BDE9}.Release|x64.ActiveCfg = Release|x64 - {446DA549-6EEF-4C48-A73C-F35B79C0BDE9}.Release|x64.Build.0 = Release|x64 - {446DA549-6EEF-4C48-A73C-F35B79C0BDE9}.Release|x86.ActiveCfg = Release|Win32 - {446DA549-6EEF-4C48-A73C-F35B79C0BDE9}.Release|x86.Build.0 = Release|Win32 {1F2C133F-B7BD-4446-A65C-3F7EF9A22CE0}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {1F2C133F-B7BD-4446-A65C-3F7EF9A22CE0}.Debug|x64.ActiveCfg = Debug|x64 - {1F2C133F-B7BD-4446-A65C-3F7EF9A22CE0}.Debug|x64.Build.0 = Debug|x64 - {1F2C133F-B7BD-4446-A65C-3F7EF9A22CE0}.Debug|x86.ActiveCfg = Debug|Win32 - {1F2C133F-B7BD-4446-A65C-3F7EF9A22CE0}.Debug|x86.Build.0 = Debug|Win32 {1F2C133F-B7BD-4446-A65C-3F7EF9A22CE0}.Release|Any CPU.ActiveCfg = Release|Win32 - {1F2C133F-B7BD-4446-A65C-3F7EF9A22CE0}.Release|x64.ActiveCfg = Release|x64 - {1F2C133F-B7BD-4446-A65C-3F7EF9A22CE0}.Release|x64.Build.0 = Release|x64 - {1F2C133F-B7BD-4446-A65C-3F7EF9A22CE0}.Release|x86.ActiveCfg = Release|Win32 - {1F2C133F-B7BD-4446-A65C-3F7EF9A22CE0}.Release|x86.Build.0 = Release|Win32 {4A4606CD-6D7B-4F76-8981-46D3C74E18BD}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {4A4606CD-6D7B-4F76-8981-46D3C74E18BD}.Debug|x64.ActiveCfg = Debug|x64 - {4A4606CD-6D7B-4F76-8981-46D3C74E18BD}.Debug|x64.Build.0 = Debug|x64 - {4A4606CD-6D7B-4F76-8981-46D3C74E18BD}.Debug|x86.ActiveCfg = Debug|Win32 - {4A4606CD-6D7B-4F76-8981-46D3C74E18BD}.Debug|x86.Build.0 = Debug|Win32 {4A4606CD-6D7B-4F76-8981-46D3C74E18BD}.Release|Any CPU.ActiveCfg = Release|Win32 - {4A4606CD-6D7B-4F76-8981-46D3C74E18BD}.Release|x64.ActiveCfg = Release|x64 - {4A4606CD-6D7B-4F76-8981-46D3C74E18BD}.Release|x64.Build.0 = Release|x64 - {4A4606CD-6D7B-4F76-8981-46D3C74E18BD}.Release|x86.ActiveCfg = Release|Win32 - {4A4606CD-6D7B-4F76-8981-46D3C74E18BD}.Release|x86.Build.0 = Release|Win32 {7F98DAED-D035-4DFB-9E78-10D1C8FA3A32}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {7F98DAED-D035-4DFB-9E78-10D1C8FA3A32}.Debug|x64.ActiveCfg = Debug|x64 - {7F98DAED-D035-4DFB-9E78-10D1C8FA3A32}.Debug|x64.Build.0 = Debug|x64 - {7F98DAED-D035-4DFB-9E78-10D1C8FA3A32}.Debug|x86.ActiveCfg = Debug|Win32 - {7F98DAED-D035-4DFB-9E78-10D1C8FA3A32}.Debug|x86.Build.0 = Debug|Win32 {7F98DAED-D035-4DFB-9E78-10D1C8FA3A32}.Release|Any CPU.ActiveCfg = Release|Win32 - {7F98DAED-D035-4DFB-9E78-10D1C8FA3A32}.Release|x64.ActiveCfg = Release|x64 - {7F98DAED-D035-4DFB-9E78-10D1C8FA3A32}.Release|x64.Build.0 = Release|x64 - {7F98DAED-D035-4DFB-9E78-10D1C8FA3A32}.Release|x86.ActiveCfg = Release|Win32 - {7F98DAED-D035-4DFB-9E78-10D1C8FA3A32}.Release|x86.Build.0 = Release|Win32 {6EFFF365-F626-4BBA-A255-38468E4DF6E0}.Debug|Any CPU.ActiveCfg = Debug|Win32 {6EFFF365-F626-4BBA-A255-38468E4DF6E0}.Debug|Any CPU.Build.0 = Debug|Win32 - {6EFFF365-F626-4BBA-A255-38468E4DF6E0}.Debug|x64.ActiveCfg = Debug|x64 - {6EFFF365-F626-4BBA-A255-38468E4DF6E0}.Debug|x64.Build.0 = Debug|x64 - {6EFFF365-F626-4BBA-A255-38468E4DF6E0}.Debug|x86.ActiveCfg = Debug|Win32 - {6EFFF365-F626-4BBA-A255-38468E4DF6E0}.Debug|x86.Build.0 = Debug|Win32 {6EFFF365-F626-4BBA-A255-38468E4DF6E0}.Release|Any CPU.ActiveCfg = Release|Win32 {6EFFF365-F626-4BBA-A255-38468E4DF6E0}.Release|Any CPU.Build.0 = Release|Win32 - {6EFFF365-F626-4BBA-A255-38468E4DF6E0}.Release|x64.ActiveCfg = Release|x64 - {6EFFF365-F626-4BBA-A255-38468E4DF6E0}.Release|x64.Build.0 = Release|x64 - {6EFFF365-F626-4BBA-A255-38468E4DF6E0}.Release|x86.ActiveCfg = Release|Win32 - {6EFFF365-F626-4BBA-A255-38468E4DF6E0}.Release|x86.Build.0 = Release|Win32 {F4B47B1D-41B2-4C7A-804D-4664B590A4F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F4B47B1D-41B2-4C7A-804D-4664B590A4F7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F4B47B1D-41B2-4C7A-804D-4664B590A4F7}.Debug|x64.ActiveCfg = Debug|Any CPU - {F4B47B1D-41B2-4C7A-804D-4664B590A4F7}.Debug|x64.Build.0 = Debug|Any CPU - {F4B47B1D-41B2-4C7A-804D-4664B590A4F7}.Debug|x86.ActiveCfg = Debug|Any CPU - {F4B47B1D-41B2-4C7A-804D-4664B590A4F7}.Debug|x86.Build.0 = Debug|Any CPU {F4B47B1D-41B2-4C7A-804D-4664B590A4F7}.Release|Any CPU.ActiveCfg = Release|Any CPU {F4B47B1D-41B2-4C7A-804D-4664B590A4F7}.Release|Any CPU.Build.0 = Release|Any CPU - {F4B47B1D-41B2-4C7A-804D-4664B590A4F7}.Release|x64.ActiveCfg = Release|Any CPU - {F4B47B1D-41B2-4C7A-804D-4664B590A4F7}.Release|x64.Build.0 = Release|Any CPU - {F4B47B1D-41B2-4C7A-804D-4664B590A4F7}.Release|x86.ActiveCfg = Release|Any CPU - {F4B47B1D-41B2-4C7A-804D-4664B590A4F7}.Release|x86.Build.0 = Release|Any CPU {72AEA89D-FA32-4E4F-BA04-9C670B53F746}.Debug|Any CPU.ActiveCfg = Debug|Win32 {72AEA89D-FA32-4E4F-BA04-9C670B53F746}.Debug|Any CPU.Build.0 = Debug|Win32 - {72AEA89D-FA32-4E4F-BA04-9C670B53F746}.Debug|x64.ActiveCfg = Debug|x64 - {72AEA89D-FA32-4E4F-BA04-9C670B53F746}.Debug|x64.Build.0 = Debug|x64 - {72AEA89D-FA32-4E4F-BA04-9C670B53F746}.Debug|x86.ActiveCfg = Debug|Win32 - {72AEA89D-FA32-4E4F-BA04-9C670B53F746}.Debug|x86.Build.0 = Debug|Win32 {72AEA89D-FA32-4E4F-BA04-9C670B53F746}.Release|Any CPU.ActiveCfg = Release|Win32 {72AEA89D-FA32-4E4F-BA04-9C670B53F746}.Release|Any CPU.Build.0 = Release|Win32 - {72AEA89D-FA32-4E4F-BA04-9C670B53F746}.Release|x64.ActiveCfg = Release|x64 - {72AEA89D-FA32-4E4F-BA04-9C670B53F746}.Release|x64.Build.0 = Release|x64 - {72AEA89D-FA32-4E4F-BA04-9C670B53F746}.Release|x86.ActiveCfg = Release|Win32 - {72AEA89D-FA32-4E4F-BA04-9C670B53F746}.Release|x86.Build.0 = Release|Win32 {BAB53542-85AA-4780-9F48-2984C036189A}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {BAB53542-85AA-4780-9F48-2984C036189A}.Debug|x64.ActiveCfg = Debug|x64 - {BAB53542-85AA-4780-9F48-2984C036189A}.Debug|x64.Build.0 = Debug|x64 - {BAB53542-85AA-4780-9F48-2984C036189A}.Debug|x86.ActiveCfg = Debug|Win32 - {BAB53542-85AA-4780-9F48-2984C036189A}.Debug|x86.Build.0 = Debug|Win32 {BAB53542-85AA-4780-9F48-2984C036189A}.Release|Any CPU.ActiveCfg = Release|Win32 - {BAB53542-85AA-4780-9F48-2984C036189A}.Release|x64.ActiveCfg = Release|x64 - {BAB53542-85AA-4780-9F48-2984C036189A}.Release|x64.Build.0 = Release|x64 - {BAB53542-85AA-4780-9F48-2984C036189A}.Release|x86.ActiveCfg = Release|Win32 - {BAB53542-85AA-4780-9F48-2984C036189A}.Release|x86.Build.0 = Release|Win32 {2E3221EB-86DA-427D-84EC-DEFD3F966D9A}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {2E3221EB-86DA-427D-84EC-DEFD3F966D9A}.Debug|x64.ActiveCfg = Debug|x64 - {2E3221EB-86DA-427D-84EC-DEFD3F966D9A}.Debug|x64.Build.0 = Debug|x64 - {2E3221EB-86DA-427D-84EC-DEFD3F966D9A}.Debug|x86.ActiveCfg = Debug|Win32 - {2E3221EB-86DA-427D-84EC-DEFD3F966D9A}.Debug|x86.Build.0 = Debug|Win32 {2E3221EB-86DA-427D-84EC-DEFD3F966D9A}.Release|Any CPU.ActiveCfg = Release|Win32 - {2E3221EB-86DA-427D-84EC-DEFD3F966D9A}.Release|x64.ActiveCfg = Release|x64 - {2E3221EB-86DA-427D-84EC-DEFD3F966D9A}.Release|x64.Build.0 = Release|x64 - {2E3221EB-86DA-427D-84EC-DEFD3F966D9A}.Release|x86.ActiveCfg = Release|Win32 - {2E3221EB-86DA-427D-84EC-DEFD3F966D9A}.Release|x86.Build.0 = Release|Win32 {483FE0C7-4E8D-4591-BE45-EAC6B2EA5F4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {483FE0C7-4E8D-4591-BE45-EAC6B2EA5F4F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {483FE0C7-4E8D-4591-BE45-EAC6B2EA5F4F}.Debug|x64.ActiveCfg = Debug|Any CPU - {483FE0C7-4E8D-4591-BE45-EAC6B2EA5F4F}.Debug|x64.Build.0 = Debug|Any CPU - {483FE0C7-4E8D-4591-BE45-EAC6B2EA5F4F}.Debug|x86.ActiveCfg = Debug|Any CPU - {483FE0C7-4E8D-4591-BE45-EAC6B2EA5F4F}.Debug|x86.Build.0 = Debug|Any CPU {483FE0C7-4E8D-4591-BE45-EAC6B2EA5F4F}.Release|Any CPU.ActiveCfg = Release|Any CPU {483FE0C7-4E8D-4591-BE45-EAC6B2EA5F4F}.Release|Any CPU.Build.0 = Release|Any CPU - {483FE0C7-4E8D-4591-BE45-EAC6B2EA5F4F}.Release|x64.ActiveCfg = Release|Any CPU - {483FE0C7-4E8D-4591-BE45-EAC6B2EA5F4F}.Release|x64.Build.0 = Release|Any CPU - {483FE0C7-4E8D-4591-BE45-EAC6B2EA5F4F}.Release|x86.ActiveCfg = Release|Any CPU - {483FE0C7-4E8D-4591-BE45-EAC6B2EA5F4F}.Release|x86.Build.0 = Release|Any CPU {4735D8CC-FA30-432D-854C-2984A7DA5DD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4735D8CC-FA30-432D-854C-2984A7DA5DD2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4735D8CC-FA30-432D-854C-2984A7DA5DD2}.Debug|x64.ActiveCfg = Debug|Any CPU - {4735D8CC-FA30-432D-854C-2984A7DA5DD2}.Debug|x64.Build.0 = Debug|Any CPU - {4735D8CC-FA30-432D-854C-2984A7DA5DD2}.Debug|x86.ActiveCfg = Debug|Any CPU - {4735D8CC-FA30-432D-854C-2984A7DA5DD2}.Debug|x86.Build.0 = Debug|Any CPU {4735D8CC-FA30-432D-854C-2984A7DA5DD2}.Release|Any CPU.ActiveCfg = Release|Any CPU {4735D8CC-FA30-432D-854C-2984A7DA5DD2}.Release|Any CPU.Build.0 = Release|Any CPU - {4735D8CC-FA30-432D-854C-2984A7DA5DD2}.Release|x64.ActiveCfg = Release|Any CPU - {4735D8CC-FA30-432D-854C-2984A7DA5DD2}.Release|x64.Build.0 = Release|Any CPU - {4735D8CC-FA30-432D-854C-2984A7DA5DD2}.Release|x86.ActiveCfg = Release|Any CPU - {4735D8CC-FA30-432D-854C-2984A7DA5DD2}.Release|x86.Build.0 = Release|Any CPU {B3AEAD11-8EA3-4AB0-9DB0-643BFAAEB9B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B3AEAD11-8EA3-4AB0-9DB0-643BFAAEB9B2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B3AEAD11-8EA3-4AB0-9DB0-643BFAAEB9B2}.Debug|x64.ActiveCfg = Debug|Any CPU - {B3AEAD11-8EA3-4AB0-9DB0-643BFAAEB9B2}.Debug|x64.Build.0 = Debug|Any CPU - {B3AEAD11-8EA3-4AB0-9DB0-643BFAAEB9B2}.Debug|x86.ActiveCfg = Debug|Any CPU - {B3AEAD11-8EA3-4AB0-9DB0-643BFAAEB9B2}.Debug|x86.Build.0 = Debug|Any CPU {B3AEAD11-8EA3-4AB0-9DB0-643BFAAEB9B2}.Release|Any CPU.ActiveCfg = Release|Any CPU {B3AEAD11-8EA3-4AB0-9DB0-643BFAAEB9B2}.Release|Any CPU.Build.0 = Release|Any CPU - {B3AEAD11-8EA3-4AB0-9DB0-643BFAAEB9B2}.Release|x64.ActiveCfg = Release|Any CPU - {B3AEAD11-8EA3-4AB0-9DB0-643BFAAEB9B2}.Release|x64.Build.0 = Release|Any CPU - {B3AEAD11-8EA3-4AB0-9DB0-643BFAAEB9B2}.Release|x86.ActiveCfg = Release|Any CPU - {B3AEAD11-8EA3-4AB0-9DB0-643BFAAEB9B2}.Release|x86.Build.0 = Release|Any CPU {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Debug|Any CPU.ActiveCfg = Debug|Win32 {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Debug|Any CPU.Build.0 = Debug|Win32 - {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Debug|x64.ActiveCfg = Debug|x64 - {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Debug|x64.Build.0 = Debug|x64 - {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Debug|x86.ActiveCfg = Debug|Win32 - {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Debug|x86.Build.0 = Debug|Win32 {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Release|Any CPU.ActiveCfg = Release|Win32 {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Release|Any CPU.Build.0 = Release|Win32 - {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Release|x64.ActiveCfg = Release|x64 - {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Release|x64.Build.0 = Release|x64 - {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Release|x86.ActiveCfg = Release|Win32 - {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From f86744a1221aa2329ca7f9a2077cf01371479255 Mon Sep 17 00:00:00 2001 From: Lukasz Mendakiewicz Date: Thu, 7 Sep 2017 14:57:00 -0700 Subject: [PATCH 11/96] Handle non-ASCII characters in PeParser correctly --- .../DiaResolver.Tests/PeParserTests.cs | 13 +- GoogleTestAdapter/DiaResolver/PeParser.cs | 246 +++++++++++++----- GoogleTestAdapter/GoogleTestAdapter.sln | 7 + .../TestAdapter.Tests/TestDiscovererTests.cs | 16 +- .../Tests.Common/TestResources.cs | 1 + .../main.cpp" | 3 + ...4\270\202\347\213\233\347\213\234.vcxproj" | 92 +++++++ ...2\347\213\233\347\213\234.vcxproj.filters" | 6 + 8 files changed, 316 insertions(+), 68 deletions(-) create mode 100644 "GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/main.cpp" create mode 100644 "GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj" create mode 100644 "GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj.filters" diff --git a/GoogleTestAdapter/DiaResolver.Tests/PeParserTests.cs b/GoogleTestAdapter/DiaResolver.Tests/PeParserTests.cs index e167b00ad..e6174e1a7 100644 --- a/GoogleTestAdapter/DiaResolver.Tests/PeParserTests.cs +++ b/GoogleTestAdapter/DiaResolver.Tests/PeParserTests.cs @@ -1,4 +1,6 @@ -using System.IO; +// This file has been modified by Microsoft on 9/2017. + +using System.IO; using FluentAssertions; using GoogleTestAdapter.Tests.Common; using Microsoft.VisualStudio.TestTools.UnitTesting; @@ -45,6 +47,15 @@ public void PeParser_X86StaticallyLinked_FindsEmbeddedPdbPath() pdb.Should().Be(expectedPdb); } + [TestMethod] + [TestCategory(Unit)] + public void PeParser_X86UnicodeName_FindsEmbeddedPdbPath() + { + string pdb = PeParser.ExtractPdbPath(TestResources.UnicodeExe, MockLogger.Object); + string expectedPdb = Path.GetFullPath(Path.ChangeExtension(TestResources.UnicodeExe, ".pdb")); + pdb.Should().Be(expectedPdb); + } + } } \ No newline at end of file diff --git a/GoogleTestAdapter/DiaResolver/PeParser.cs b/GoogleTestAdapter/DiaResolver/PeParser.cs index 0b19215d6..794e45123 100644 --- a/GoogleTestAdapter/DiaResolver/PeParser.cs +++ b/GoogleTestAdapter/DiaResolver/PeParser.cs @@ -1,56 +1,14 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 9/2017. +using GoogleTestAdapter.Common; +using Microsoft.Win32.SafeHandles; using System; using System.Collections.Generic; using System.Runtime.InteropServices; -using GoogleTestAdapter.Common; +using System.Text; namespace GoogleTestAdapter.DiaResolver { - - [StructLayout(LayoutKind.Sequential)] - // ReSharper disable once InconsistentNaming - struct LOADED_IMAGE - { - public IntPtr ModuleName; - public IntPtr hFile; - public IntPtr MappedAddress; - public IntPtr FileHeader; - public IntPtr LastRvaSection; - public uint NumbOfSections; - public IntPtr FirstRvaSection; - public uint charachteristics; - public ushort systemImage; - public ushort dosImage; - public ushort readOnly; - public ushort version; - public IntPtr links_1; - public IntPtr links_2; - public uint sizeOfImage; - public IntPtr links_3; - public IntPtr links_4; - public IntPtr links_5; - } - - [StructLayout(LayoutKind.Explicit)] - // ReSharper disable once InconsistentNaming - struct IMAGE_IMPORT_DESCRIPTOR - { - [FieldOffset(0)] - public uint Characteristics; - [FieldOffset(0)] - public uint OriginalFirstThunk; - - [FieldOffset(4)] - public uint TimeDateStamp; - [FieldOffset(8)] - public uint ForwarderChain; - [FieldOffset(12)] - public uint Name; - [FieldOffset(16)] - public uint FirstThunk; - } - [StructLayout(LayoutKind.Explicit)] // ReSharper disable once InconsistentNaming struct IMAGE_DEBUG_DIRECTORY @@ -80,6 +38,57 @@ struct IMAGE_DEBUG_DIRECTORY public uint PointerToRawData; } + [StructLayout(LayoutKind.Sequential)] + unsafe struct IMAGE_DOS_HEADER + { + public ushort e_magic; + public ushort e_cblp; + public ushort e_cp; + public ushort e_crlc; + public ushort e_cparhdr; + public ushort e_minalloc; + public ushort e_maxalloc; + public ushort e_ss; + public ushort e_sp; + public ushort e_csum; + public ushort e_ip; + public ushort e_cs; + public ushort e_lfarlc; + public ushort e_ovno; + public fixed ushort e_res1[4]; + public ushort e_oemid; + public ushort e_oeminfo; + public fixed ushort e_res2[10]; + public int e_lfanew; + } + + [StructLayout(LayoutKind.Explicit)] + // ReSharper disable once InconsistentNaming + struct IMAGE_IMPORT_DESCRIPTOR + { + [FieldOffset(0)] + public uint Characteristics; + [FieldOffset(0)] + public uint OriginalFirstThunk; + + [FieldOffset(4)] + public uint TimeDateStamp; + [FieldOffset(8)] + public uint ForwarderChain; + [FieldOffset(12)] + public uint Name; + [FieldOffset(16)] + public uint FirstThunk; + } + + [StructLayout(LayoutKind.Sequential)] + unsafe struct IMAGE_NT_HEADERS + { + public int Signature; + public fixed byte FileHeader[20]; + public fixed byte OptionalHeader[224]; + } + [StructLayout(LayoutKind.Explicit)] struct PdbInfo { @@ -99,36 +108,140 @@ struct PdbInfo public byte PdbFileName; } + struct LoadedImage + { + public IntPtr MappedAddress; + public IntPtr FileHeader; + } + unsafe public static class PeParser { private static class NativeMethods { - [DllImport("imageHlp.dll", CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Ansi, BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool MapAndLoad(string imageName, string dllPath, LOADED_IMAGE* loadedImage, bool dotDll, bool readOnly); + public const ushort IMAGE_DOS_SIGNATURE = 0x5A4D; + public const ushort IMAGE_NT_SIGNATURE = 0x00004550; + + public const uint GENERIC_READ = unchecked(0x80000000); + public const uint FILE_MAP_READ = 0x0004; + public const uint FILE_SHARE_READ = 0x00000001; + public const uint OPEN_EXISTING = 3; + public const uint PAGE_READONLY = 0x02; + + [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + public static extern SafeFileHandle CreateFile( + string lpFileName, uint dwDesiredAccess, uint dwShareMode, IntPtr lpSecurityAttributes, + uint dwCreationDisposition, uint dwFlagsAndAttributes, IntPtr hTemplateFile); + + [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + public static extern SafeFileHandle CreateFileMapping( + SafeFileHandle hFile, IntPtr lpFileMappingAttributes, uint flProtect, + uint dwMaximumSizeHigh, uint dwMaximumSizeLow, string lpName); - [DllImport("imageHlp.dll", CallingConvention = CallingConvention.Winapi)] - public static extern bool UnMapAndLoad(ref LOADED_IMAGE loadedImage); + [DllImport("kernel32.dll", SetLastError = true)] + public static extern bool GetFileSizeEx(SafeFileHandle hFile, out long lpFileSize); - [DllImport("dbghelp.dll", CallingConvention = CallingConvention.Winapi)] + [DllImport("kernel32.dll", SetLastError = true)] + public static extern IntPtr MapViewOfFile( + SafeFileHandle hFileMappingObject, uint dwDesiredAccess, uint dwFileOffsetHigh, + uint dwFileOffsetLow, UIntPtr dwNumberOfBytesToMap); + + [DllImport("kernel32.dll", SetLastError = true)] + public static extern bool UnmapViewOfFile(IntPtr lpBaseAddress); + + [DllImport("dbghelp.dll")] public static extern void* ImageDirectoryEntryToData(IntPtr pBase, byte mappedAsImage, ushort directoryEntry, uint* size); - [DllImport("dbghelp.dll", CallingConvention = CallingConvention.Winapi)] + [DllImport("dbghelp.dll")] public static extern IntPtr ImageRvaToVa(IntPtr pNtHeaders, IntPtr pBase, uint rva, IntPtr pLastRvaSection); } - private static void ParsePeFile(string executable, ILogger logger, Action action) + private static bool MapAndLoad(string imageName, out LoadedImage loadedImage) { - LOADED_IMAGE image = new LOADED_IMAGE(); + loadedImage = new LoadedImage(); + + long fileSize; + IntPtr mapAddr; + using (var hFile = NativeMethods.CreateFile(imageName, NativeMethods.GENERIC_READ, + NativeMethods.FILE_SHARE_READ, IntPtr.Zero, NativeMethods.OPEN_EXISTING, 0, IntPtr.Zero)) + { + if (hFile.IsInvalid) + return false; + + if (!NativeMethods.GetFileSizeEx(hFile, out fileSize)) + return false; + + using (var hMapping = NativeMethods.CreateFileMapping(hFile, IntPtr.Zero, NativeMethods.PAGE_READONLY, 0, 0, null)) + { + if (hMapping.IsInvalid) + return false; + + mapAddr = NativeMethods.MapViewOfFile(hMapping, NativeMethods.FILE_MAP_READ, 0, 0, UIntPtr.Zero); + if (mapAddr == IntPtr.Zero) + return false; + } + } + + unsafe + { + if (fileSize < Marshal.SizeOf()) + return false; + + var dosHeader = (IMAGE_DOS_HEADER*)mapAddr; + IMAGE_NT_HEADERS* rawFileHeader; + if (dosHeader->e_magic == NativeMethods.IMAGE_DOS_SIGNATURE) + { + if (dosHeader->e_lfanew <= 0 + || fileSize < dosHeader->e_lfanew + Marshal.SizeOf()) + { + return false; + } + + rawFileHeader = (IMAGE_NT_HEADERS*)((byte*)mapAddr + dosHeader->e_lfanew); + } + else if (dosHeader->e_magic == NativeMethods.IMAGE_NT_SIGNATURE) + { + if (fileSize < Marshal.SizeOf()) + return false; + + rawFileHeader = (IMAGE_NT_HEADERS*)mapAddr; + } + else + { + return false; + } + + if (rawFileHeader->Signature != NativeMethods.IMAGE_NT_SIGNATURE) + return false; + + loadedImage.MappedAddress = mapAddr; + loadedImage.FileHeader = (IntPtr)rawFileHeader; + return true; + } + } + + private static bool UnMapAndLoad(ref LoadedImage loadedImage) + { + if (NativeMethods.UnmapViewOfFile(loadedImage.MappedAddress)) + { + loadedImage = new LoadedImage(); + return true; + } + return false; + } + + private static void ParsePeFile(string executable, ILogger logger, Action action) + { + LoadedImage image = new LoadedImage(); bool loaded = false; try { - loaded = NativeMethods.MapAndLoad(executable, null, &image, true, true); + loaded = MapAndLoad(executable, out image); if(loaded) action(image); } finally { - if (loaded && !NativeMethods.UnMapAndLoad(ref image)) + if (loaded && !UnMapAndLoad(ref image)) logger.LogError(Resources.UnMapLoad); } } @@ -149,10 +262,25 @@ public static List ParseImports(string executable, ILogger logger) return imports; } - private static string GetString(LOADED_IMAGE image, uint offset) + private static string PtrToStringUtf8(IntPtr ptr) + { + if (ptr == IntPtr.Zero) + return null; + + int size = 0; + while (Marshal.ReadByte(ptr, size) != 0) + ++size; + + byte[] buffer = new byte[size]; + Marshal.Copy(ptr, buffer, 0, buffer.Length); + + return Encoding.UTF8.GetString(buffer); + } + + private static string GetString(LoadedImage image, uint offset) { IntPtr stringPtr = NativeMethods.ImageRvaToVa(image.FileHeader, image.MappedAddress, offset, IntPtr.Zero); - return Marshal.PtrToStringAnsi(stringPtr); + return PtrToStringUtf8(stringPtr); } // Most windows executables contain the path to their PDB @@ -172,7 +300,7 @@ public static string ExtractPdbPath(string executable, ILogger logger) if (dbgDir->SizeOfData > 0) { var pdbInfo = (PdbInfo*)NativeMethods.ImageRvaToVa(image.FileHeader, image.MappedAddress, dbgDir->AddressOfRawData, IntPtr.Zero); - pdbPath = Marshal.PtrToStringAnsi(new IntPtr(&pdbInfo->PdbFileName)); + pdbPath = PtrToStringUtf8(new IntPtr(&pdbInfo->PdbFileName)); } }); diff --git a/GoogleTestAdapter/GoogleTestAdapter.sln b/GoogleTestAdapter/GoogleTestAdapter.sln index 609eda422..95ab440ef 100644 --- a/GoogleTestAdapter/GoogleTestAdapter.sln +++ b/GoogleTestAdapter/GoogleTestAdapter.sln @@ -130,6 +130,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Packaging.TAfGT", "Packagin EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SemaphoreExe", "SemaphoreExe\SemaphoreExe.vcxproj", "{F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "㐀㕵ExtAxCP936丂狛狜", "㐀㕵ExtAxCP936丂狛狜\㐀㕵ExtAxCP936丂狛狜.vcxproj", "{8B27FD59-F03C-468E-B878-CFFC7484B7F7}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution VsPackage.Shared\VsPackage.Shared.projitems*{55294b5f-a075-43f2-b0e9-2b11925e8b91}*SharedItemsImports = 4 @@ -249,6 +251,10 @@ Global {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Debug|Any CPU.Build.0 = Debug|Win32 {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Release|Any CPU.ActiveCfg = Release|Win32 {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}.Release|Any CPU.Build.0 = Release|Win32 + {8B27FD59-F03C-468E-B878-CFFC7484B7F7}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {8B27FD59-F03C-468E-B878-CFFC7484B7F7}.Debug|Any CPU.Build.0 = Debug|Win32 + {8B27FD59-F03C-468E-B878-CFFC7484B7F7}.Release|Any CPU.ActiveCfg = Release|Win32 + {8B27FD59-F03C-468E-B878-CFFC7484B7F7}.Release|Any CPU.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -277,6 +283,7 @@ Global {BAB53542-85AA-4780-9F48-2984C036189A} = {1FF56AF6-0ACE-4FE8-B802-4832703EC2DC} {2E3221EB-86DA-427D-84EC-DEFD3F966D9A} = {1FF56AF6-0ACE-4FE8-B802-4832703EC2DC} {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43} = {475245AA-A07D-41D8-BC84-959C5E12A52C} + {8B27FD59-F03C-468E-B878-CFFC7484B7F7} = {475245AA-A07D-41D8-BC84-959C5E12A52C} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C942DDD5-B04E-4D57-BA9F-A444392C9480} diff --git a/GoogleTestAdapter/TestAdapter.Tests/TestDiscovererTests.cs b/GoogleTestAdapter/TestAdapter.Tests/TestDiscovererTests.cs index a7e240953..b922a77f3 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/TestDiscovererTests.cs +++ b/GoogleTestAdapter/TestAdapter.Tests/TestDiscovererTests.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 9/2017. using FluentAssertions; using GoogleTestAdapter.Helpers; @@ -55,7 +55,7 @@ public void DiscoverTests_FailingExecutable_ExitCodeIsLogged() private void MarkUntrusted(string path) { - using (var handle = NativeMethods.CreateFileW(path + ":Zone.Identifier", NativeMethods.GENERIC_WRITE, 0, IntPtr.Zero, + using (var handle = NativeMethods.CreateFile(path + ":Zone.Identifier", NativeMethods.GENERIC_WRITE, 0, IntPtr.Zero, NativeMethods.CREATE_NEW, 0, IntPtr.Zero)) { if (handle.IsInvalid) @@ -155,13 +155,13 @@ private void CheckForDiscoverySinkCalls(int expectedNrOfTests, string customRege static class NativeMethods { - public const int GENERIC_WRITE = 1073741824; - public const int CREATE_NEW = 1; + public const uint GENERIC_WRITE = 0x40000000; + public const uint CREATE_NEW = 1; - [DllImport("kernel32.dll")] - public static extern SafeFileHandle CreateFileW( - [MarshalAs(UnmanagedType.LPWStr)] string lpFileName, uint dwDesiredAccess, uint dwShareMode, IntPtr lpSecurityAttributes, - uint dwCreationDisposition,uint dwFlagsAndAttributes, IntPtr hTemplateFile); + [DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + public static extern SafeFileHandle CreateFile( + string lpFileName, uint dwDesiredAccess, uint dwShareMode, IntPtr lpSecurityAttributes, + uint dwCreationDisposition, uint dwFlagsAndAttributes, IntPtr hTemplateFile); } } \ No newline at end of file diff --git a/GoogleTestAdapter/Tests.Common/TestResources.cs b/GoogleTestAdapter/Tests.Common/TestResources.cs index cbc65cc16..3b65ecf90 100644 --- a/GoogleTestAdapter/Tests.Common/TestResources.cs +++ b/GoogleTestAdapter/Tests.Common/TestResources.cs @@ -29,6 +29,7 @@ public static class TestResources public const string AlwaysCrashingExe = GoogleTestAdapterBuildDir + @"CrashingExe\CrashingExe.exe"; public const string AlwaysFailingExe = GoogleTestAdapterBuildDir + @"FailingExe\FailingExe.exe"; public const string SemaphoreExe = GoogleTestAdapterBuildDir + @"SemaphoreExe\SemaphoreExe.exe"; + public const string UnicodeExe = GoogleTestAdapterBuildDir + @"㐀㕵ExtAxCP936丂狛狜\㐀㕵ExtAxCP936丂狛狜.exe"; public const string Tests_DebugX86 = SampleTestsBuildDir + @"Debug\Tests_gta.exe"; public const string Tests_ReleaseX86 = SampleTestsBuildDir + @"Release\Tests_gta.exe"; diff --git "a/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/main.cpp" "b/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/main.cpp" new file mode 100644 index 000000000..0eefc1c8c --- /dev/null +++ "b/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/main.cpp" @@ -0,0 +1,3 @@ +int main() +{ +} \ No newline at end of file diff --git "a/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj" "b/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj" new file mode 100644 index 000000000..e4579e225 --- /dev/null +++ "b/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj" @@ -0,0 +1,92 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {8B27FD59-F03C-468E-B878-CFFC7484B7F7} + Win32Proj + 㐀㕵ExtAxCP936丂狛狜 + 8.1 + + + + + Application + true + v100 + v110 + v120 + v140 + v141 + Unicode + + + Application + false + v100 + v110 + v120 + v140 + v141 + true + Unicode + + + + + + + + + + + + + + + true + + + false + + + + Level3 + Disabled + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + + Console + true + + + + + Level3 + Disabled + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + + Console + true + + + + + + + + + \ No newline at end of file diff --git "a/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj.filters" "b/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj.filters" new file mode 100644 index 000000000..4327830c9 --- /dev/null +++ "b/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj.filters" @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From 38e7afc07b274f38789227f11e797047b94f48b3 Mon Sep 17 00:00:00 2001 From: Lukasz Mendakiewicz Date: Thu, 7 Sep 2017 22:00:52 -0700 Subject: [PATCH 12/96] Avoid Unicode path to project to satisfy the build system --- GoogleTestAdapter/DiaResolver.Tests/PeParserTests.cs | 4 ++-- GoogleTestAdapter/GoogleTestAdapter.sln | 2 +- GoogleTestAdapter/Tests.Common/TestResources.cs | 2 +- .../UnicodeNameExe/UnicodeNameExe.vcxproj | 2 ++ .../UnicodeNameExe/UnicodeNameExe.vcxproj.filters | 0 .../main.cpp" => GoogleTestAdapter/UnicodeNameExe/main.cpp | 0 6 files changed, 6 insertions(+), 4 deletions(-) rename "GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj" => GoogleTestAdapter/UnicodeNameExe/UnicodeNameExe.vcxproj (97%) rename "GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj.filters" => GoogleTestAdapter/UnicodeNameExe/UnicodeNameExe.vcxproj.filters (100%) rename "GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/main.cpp" => GoogleTestAdapter/UnicodeNameExe/main.cpp (100%) diff --git a/GoogleTestAdapter/DiaResolver.Tests/PeParserTests.cs b/GoogleTestAdapter/DiaResolver.Tests/PeParserTests.cs index e6174e1a7..1fa306166 100644 --- a/GoogleTestAdapter/DiaResolver.Tests/PeParserTests.cs +++ b/GoogleTestAdapter/DiaResolver.Tests/PeParserTests.cs @@ -51,8 +51,8 @@ public void PeParser_X86StaticallyLinked_FindsEmbeddedPdbPath() [TestCategory(Unit)] public void PeParser_X86UnicodeName_FindsEmbeddedPdbPath() { - string pdb = PeParser.ExtractPdbPath(TestResources.UnicodeExe, MockLogger.Object); - string expectedPdb = Path.GetFullPath(Path.ChangeExtension(TestResources.UnicodeExe, ".pdb")); + string pdb = PeParser.ExtractPdbPath(TestResources.UnicodeNameExe, MockLogger.Object); + string expectedPdb = Path.GetFullPath(Path.ChangeExtension(TestResources.UnicodeNameExe, ".pdb")); pdb.Should().Be(expectedPdb); } diff --git a/GoogleTestAdapter/GoogleTestAdapter.sln b/GoogleTestAdapter/GoogleTestAdapter.sln index 95ab440ef..7a4a8f57b 100644 --- a/GoogleTestAdapter/GoogleTestAdapter.sln +++ b/GoogleTestAdapter/GoogleTestAdapter.sln @@ -130,7 +130,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Packaging.TAfGT", "Packagin EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SemaphoreExe", "SemaphoreExe\SemaphoreExe.vcxproj", "{F48AD2EC-96B3-41C6-9F89-3542EC7A3D43}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "㐀㕵ExtAxCP936丂狛狜", "㐀㕵ExtAxCP936丂狛狜\㐀㕵ExtAxCP936丂狛狜.vcxproj", "{8B27FD59-F03C-468E-B878-CFFC7484B7F7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnicodeNameExe", "UnicodeNameExe\UnicodeNameExe.vcxproj", "{8B27FD59-F03C-468E-B878-CFFC7484B7F7}" EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution diff --git a/GoogleTestAdapter/Tests.Common/TestResources.cs b/GoogleTestAdapter/Tests.Common/TestResources.cs index 3b65ecf90..fcd50d4bc 100644 --- a/GoogleTestAdapter/Tests.Common/TestResources.cs +++ b/GoogleTestAdapter/Tests.Common/TestResources.cs @@ -29,7 +29,7 @@ public static class TestResources public const string AlwaysCrashingExe = GoogleTestAdapterBuildDir + @"CrashingExe\CrashingExe.exe"; public const string AlwaysFailingExe = GoogleTestAdapterBuildDir + @"FailingExe\FailingExe.exe"; public const string SemaphoreExe = GoogleTestAdapterBuildDir + @"SemaphoreExe\SemaphoreExe.exe"; - public const string UnicodeExe = GoogleTestAdapterBuildDir + @"㐀㕵ExtAxCP936丂狛狜\㐀㕵ExtAxCP936丂狛狜.exe"; + public const string UnicodeNameExe = GoogleTestAdapterBuildDir + @"UnicodeNameExe\㐀㕵ExtAxCP936丂狛狜.exe"; public const string Tests_DebugX86 = SampleTestsBuildDir + @"Debug\Tests_gta.exe"; public const string Tests_ReleaseX86 = SampleTestsBuildDir + @"Release\Tests_gta.exe"; diff --git "a/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj" b/GoogleTestAdapter/UnicodeNameExe/UnicodeNameExe.vcxproj similarity index 97% rename from "GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj" rename to GoogleTestAdapter/UnicodeNameExe/UnicodeNameExe.vcxproj index e4579e225..8b5cf4a5f 100644 --- "a/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj" +++ b/GoogleTestAdapter/UnicodeNameExe/UnicodeNameExe.vcxproj @@ -53,9 +53,11 @@ true + 㐀㕵ExtAxCP936丂狛狜 false + 㐀㕵ExtAxCP936丂狛狜 diff --git "a/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj.filters" b/GoogleTestAdapter/UnicodeNameExe/UnicodeNameExe.vcxproj.filters similarity index 100% rename from "GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234.vcxproj.filters" rename to GoogleTestAdapter/UnicodeNameExe/UnicodeNameExe.vcxproj.filters diff --git "a/GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/main.cpp" b/GoogleTestAdapter/UnicodeNameExe/main.cpp similarity index 100% rename from "GoogleTestAdapter/\343\220\200\343\225\265ExtAxCP936\344\270\202\347\213\233\347\213\234/main.cpp" rename to GoogleTestAdapter/UnicodeNameExe/main.cpp From 09a2ddbc195ae63b7e6c074d1fb819dca063ef09 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Tue, 12 Sep 2017 15:09:32 -0700 Subject: [PATCH 13/96] Localize XAML in wizard --- .../Properties/Resources.Designer.cs | 72 +++++++++++++++++++ .../Properties/Resources.resx | 27 +++++++ .../SinglePageWizardDialog.xaml | 16 +++-- .../SinglePageWizardDialog.xaml.cs | 3 +- 4 files changed, 110 insertions(+), 8 deletions(-) diff --git a/GoogleTestAdapter/NewProjectWizard/Properties/Resources.Designer.cs b/GoogleTestAdapter/NewProjectWizard/Properties/Resources.Designer.cs index 4f8aed5e9..2fa959039 100644 --- a/GoogleTestAdapter/NewProjectWizard/Properties/Resources.Designer.cs +++ b/GoogleTestAdapter/NewProjectWizard/Properties/Resources.Designer.cs @@ -60,6 +60,51 @@ internal Resources() { } } + /// + /// Looks up a localized string similar to Consume Google Test as:. + /// + internal static string ConsumeAs { + get { + return ResourceManager.GetString("ConsumeAs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Dynamic Library (.dll). + /// + internal static string DynamicLib { + get { + return ResourceManager.GetString("DynamicLib", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Link dynamically (Recommended). + /// + internal static string LinkDynamic { + get { + return ResourceManager.GetString("LinkDynamic", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Link statically. + /// + internal static string LinkStatic { + get { + return ResourceManager.GetString("LinkStatic", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <No project>. + /// + internal static string NoProject { + get { + return ResourceManager.GetString("NoProject", resourceCulture); + } + } + /// /// Looks up a localized string similar to Cannot find NuGet.VisualStudio.Interop.dll. Wizard cannot continue.. /// @@ -69,6 +114,33 @@ internal static string NuGetInteropNotFound { } } + /// + /// Looks up a localized string similar to C++ runtime libraries:. + /// + internal static string RuntimeLibs { + get { + return ResourceManager.GetString("RuntimeLibs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select project to test (Optional):. + /// + internal static string SelectProject { + get { + return ResourceManager.GetString("SelectProject", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Static Library (.lib). + /// + internal static string StaticLib { + get { + return ResourceManager.GetString("StaticLib", resourceCulture); + } + } + /// /// Looks up a localized string similar to Windows SDK not found.. /// diff --git a/GoogleTestAdapter/NewProjectWizard/Properties/Resources.resx b/GoogleTestAdapter/NewProjectWizard/Properties/Resources.resx index da4bc6f5e..4dd9cb9b4 100644 --- a/GoogleTestAdapter/NewProjectWizard/Properties/Resources.resx +++ b/GoogleTestAdapter/NewProjectWizard/Properties/Resources.resx @@ -117,9 +117,36 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Consume Google Test as: + Followed by radio buttons to select a static or dynamic library + + + Dynamic Library (.dll) + + + Link dynamically (Recommended) + + + Link statically + + + <No project> + Default selection in a project selection dropdown + Cannot find NuGet.VisualStudio.Interop.dll. Wizard cannot continue. + + C++ runtime libraries: + Followed by radio buttons to "link statically" or "link dynamically" + + + Select project to test (Optional): + + + Static Library (.lib) + Windows SDK not found. diff --git a/GoogleTestAdapter/NewProjectWizard/SinglePageWizardDialog.xaml b/GoogleTestAdapter/NewProjectWizard/SinglePageWizardDialog.xaml index 473d6f772..28f40b637 100644 --- a/GoogleTestAdapter/NewProjectWizard/SinglePageWizardDialog.xaml +++ b/GoogleTestAdapter/NewProjectWizard/SinglePageWizardDialog.xaml @@ -6,6 +6,7 @@ xmlns:vsui="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.15.0" xmlns:vsimaging="clr-namespace:Microsoft.VisualStudio.Imaging;assembly=Microsoft.VisualStudio.Imaging" xmlns:vsimagecatalog="clr-namespace:Microsoft.VisualStudio.Imaging;assembly=Microsoft.VisualStudio.ImageCatalog" + xmlns:resx="clr-namespace:NewProjectWizard.Properties" DataContext="{Binding RelativeSource={RelativeSource Self}}" Height="350" MinHeight="350" @@ -76,6 +77,7 @@ Margin="24,8,24,24"> + - $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\NewProjectWizard.lcl + $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\NewProjectWizard.lcl + $(LSBuildRoot)\MCP_excludeBaml.lss Microsoft StrongName - - - false + + + false @@ -177,12 +178,12 @@ - - - - Microsoft - StrongName - - + + + + Microsoft + StrongName + + \ No newline at end of file From 236114475e7948983db915e68ff98bedc20e7e98 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 13 Sep 2017 15:40:44 -0700 Subject: [PATCH 15/96] Fix new project wizard to look at major version number not revision number (#33) --- GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs index fb1d7d386..daf9ce783 100644 --- a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs +++ b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs @@ -158,7 +158,7 @@ public void RunStarted(object automationObject, string versionString; - if (latestSdk.TargetPlatformVersion.Revision >= 10) + if (latestSdk.TargetPlatformVersion.Major >= 10) { List allPlatformsForLatestSdk = ToolLocationHelper.GetPlatformsForSDK("Windows", latestSdk.TargetPlatformVersion) .Select(moniker => TryParsePlatformVersion(moniker)) From b651eafdc077a39aefe526f65914313d414b7c84 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Wed, 13 Sep 2017 16:06:24 -0700 Subject: [PATCH 16/96] Localize option strings --- GoogleTestAdapter/Core/Resources.Designer.cs | 536 ++++++++++++++++++ GoogleTestAdapter/Core/Resources.resx | 208 +++++++ .../Core/Settings/SettingsWrapper.cs | 237 ++++---- .../OptionsPages/GeneralOptionsDialogPage.cs | 9 +- .../GoogleTestExtensionOptionsPage.cs | 8 +- .../OptionsPages/GeneralOptionsDialogPage.cs | 99 ++-- .../GoogleTestOptionsDialogPage.cs | 39 +- .../LocalizedCategoryAttribute.cs | 24 + .../LocalizedDescriptionAttribute.cs | 24 + .../LocalizedDisplayNameAttribute.cs | 24 + .../ParallelizationOptionsDialogPage.cs | 15 +- .../VsPackage.Shared.projitems | 3 + .../VsPackage.TAfGT/Resources/VSPackage.resx | 71 ++- 13 files changed, 1086 insertions(+), 211 deletions(-) create mode 100644 GoogleTestAdapter/VsPackage.Shared/OptionsPages/LocalizedCategoryAttribute.cs create mode 100644 GoogleTestAdapter/VsPackage.Shared/OptionsPages/LocalizedDescriptionAttribute.cs create mode 100644 GoogleTestAdapter/VsPackage.Shared/OptionsPages/LocalizedDisplayNameAttribute.cs diff --git a/GoogleTestAdapter/Core/Resources.Designer.cs b/GoogleTestAdapter/Core/Resources.Designer.cs index eb49339e7..ddb06da4d 100644 --- a/GoogleTestAdapter/Core/Resources.Designer.cs +++ b/GoogleTestAdapter/Core/Resources.Designer.cs @@ -123,6 +123,51 @@ internal static string BatchReturnedExitCode { } } + /// + /// Looks up a localized string similar to Misc. + /// + internal static string CategoryMiscName { + get { + return ResourceManager.GetString("CategoryMiscName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parallelization. + /// + internal static string CategoryParallelizationName { + get { + return ResourceManager.GetString("CategoryParallelizationName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Runtime behavior. + /// + internal static string CategoryRuntimeBehaviorName { + get { + return ResourceManager.GetString("CategoryRuntimeBehaviorName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test execution. + /// + internal static string CategoryTestExecutionName { + get { + return ResourceManager.GetString("CategoryTestExecutionName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Regexes for trait assignment. + /// + internal static string CategoryTraitsName { + get { + return ResourceManager.GetString("CategoryTraitsName", resourceCulture); + } + } + /// /// Looks up a localized string similar to {0}Collected {1} test result(s) from result XML file {2}. /// @@ -204,6 +249,43 @@ internal static string DeleteTestDir { } } + /// + /// Looks up a localized string similar to {0} - directory containing the test executable. + /// + internal static string DescriptionOfExecutableDirPlaceHolder { + get { + return ResourceManager.GetString("DescriptionOfExecutableDirPlaceHolder", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} - path of a directory which can be used by the tests + ///{1} - id of thread executing the current tests. + /// + internal static string DescriptionOfPlaceholdersForBatches { + get { + return ResourceManager.GetString("DescriptionOfPlaceholdersForBatches", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} - executable containing the tests. + /// + internal static string DescriptionOfPlaceholdersForExecutables { + get { + return ResourceManager.GetString("DescriptionOfPlaceholdersForExecutables", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} - directory of the solution (only available inside VS). + /// + internal static string DescriptionOfSolutionDirPlaceHolder { + get { + return ResourceManager.GetString("DescriptionOfSolutionDirPlaceHolder", resourceCulture); + } + } + /// /// Looks up a localized string similar to {0} does not match custom regex {1}. /// @@ -456,6 +538,460 @@ internal static string NumberOfTestsRunningMessage { } } + /// + /// Looks up a localized string similar to Additional test execution parameters. + /// + internal static string OptionAdditionalTestExecutionParams { + get { + return ResourceManager.GetString("OptionAdditionalTestExecutionParams", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Additional parameters for Google Test executable. Placeholders:. + /// + internal static string OptionAdditionalTestExecutionParamsDescription { + get { + return ResourceManager.GetString("OptionAdditionalTestExecutionParamsDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test setup batch file. + /// + internal static string OptionBatchForTestSetup { + get { + return ResourceManager.GetString("OptionBatchForTestSetup", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Batch file to be executed before test execution. If tests are executed in parallel, the batch file will be executed once per thread. Placeholders:. + /// + internal static string OptionBatchForTestSetupDescription { + get { + return ResourceManager.GetString("OptionBatchForTestSetupDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test teardown batch file. + /// + internal static string OptionBatchForTestTeardown { + get { + return ResourceManager.GetString("OptionBatchForTestTeardown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Batch file to be executed after test execution. If tests are executed in parallel, the batch file will be executed once per thread. Placeholders:. + /// + internal static string OptionBatchForTestTeardownDescription { + get { + return ResourceManager.GetString("OptionBatchForTestTeardownDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Break on failure. + /// + internal static string OptionBreakOnFailure { + get { + return ResourceManager.GetString("OptionBreakOnFailure", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If enabled, a potentially attached debugger will catch assertion failures and automatically drop into interactive mode. + ///Google Test option: {0}. + /// + internal static string OptionBreakOnFailureDescription { + get { + return ResourceManager.GetString("OptionBreakOnFailureDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Catch exceptions. + /// + internal static string OptionCatchExceptions { + get { + return ResourceManager.GetString("OptionCatchExceptions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Google Test catches exceptions by default; the according test fails and test execution continues. Choosing false lets exceptions pass through, allowing the debugger to catch them. + ///Google Test option: {0}. + /// + internal static string OptionCatchExceptionsDescription { + get { + return ResourceManager.GetString("OptionCatchExceptionsDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Print debug info. + /// + internal static string OptionDebugMode { + get { + return ResourceManager.GetString("OptionDebugMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If true, debug output will be printed to the test console.. + /// + internal static string OptionDebugModeDescription { + get { + return ResourceManager.GetString("OptionDebugModeDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parallel test execution. + /// + internal static string OptionEnableParallelTestExecution { + get { + return ResourceManager.GetString("OptionEnableParallelTestExecution", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parallel test execution is achieved by means of different threads, each of which is assigned a number of tests to be executed. The threads will then sequentially invoke the necessary executables to produce the according test results.. + /// + internal static string OptionEnableParallelTestExecutionDescription { + get { + return ResourceManager.GetString("OptionEnableParallelTestExecutionDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Kill processes on cancel. + /// + internal static string OptionKillProcessesOnCancel { + get { + return ResourceManager.GetString("OptionKillProcessesOnCancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If true, running test executables are actively killed if the test execution is canceled. Note that killing a test process might have all kinds of side effects; in particular, Google Test will not be able to perform any shutdown tasks.. + /// + internal static string OptionKillProcessesOnCancelDescription { + get { + return ResourceManager.GetString("OptionKillProcessesOnCancelDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum number of threads. + /// + internal static string OptionMaxNrOfThreads { + get { + return ResourceManager.GetString("OptionMaxNrOfThreads", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Maximum number of threads to be used for test execution (0: one thread for each processor).. + /// + internal static string OptionMaxNrOfThreadsDescription { + get { + return ResourceManager.GetString("OptionMaxNrOfThreadsDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Number of test repetitions. + /// + internal static string OptionNrOfTestRepetitions { + get { + return ResourceManager.GetString("OptionNrOfTestRepetitions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tests will be run for the selected number of times (-1: infinite). + ///Google Test option: {0}. + /// + internal static string OptionNrOfTestRepetitionsDescription { + get { + return ResourceManager.GetString("OptionNrOfTestRepetitionsDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parse symbol information. + /// + internal static string OptionParseSymbolInformation { + get { + return ResourceManager.GetString("OptionParseSymbolInformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parse debug symbol information for test executables to obtain source location information and traits (defined via the macros in GTA_Traits.h). + ///If this is set to false step 2 of traits discovery will be left out and only traits regexes will be effective.. + /// + internal static string OptionParseSymbolInformationDescription { + get { + return ResourceManager.GetString("OptionParseSymbolInformationDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to PATH extension. + /// + internal static string OptionPathExtension { + get { + return ResourceManager.GetString("OptionPathExtension", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If non-empty, the content will be appended to the PATH variable of the test execution and discovery processes. + ///Example: C:\MyBins;{0}\MyOtherBins; + ///Placeholders:. + /// + internal static string OptionPathExtensionDescription { + get { + return ResourceManager.GetString("OptionPathExtensionDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Print test output. + /// + internal static string OptionPrintTestOutput { + get { + return ResourceManager.GetString("OptionPrintTestOutput", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Print the output of the Google Test executable(s) to the Tests Output window.. + /// + internal static string OptionPrintTestOutputDescription { + get { + return ResourceManager.GetString("OptionPrintTestOutputDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Also run disabled tests. + /// + internal static string OptionRunDisabledTests { + get { + return ResourceManager.GetString("OptionRunDisabledTests", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If true, all (selected) tests will be run, even if they have been disabled. + ///Google Test option: {0}. + /// + internal static string OptionRunDisabledTestsDescription { + get { + return ResourceManager.GetString("OptionRunDisabledTestsDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show release notes after update. + /// + internal static string OptionShowReleaseNotes { + get { + return ResourceManager.GetString("OptionShowReleaseNotes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If true, a dialog with release notes is shown after the extension has been updated.. + /// + internal static string OptionShowReleaseNotesDescription { + get { + return ResourceManager.GetString("OptionShowReleaseNotesDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shuffle tests per execution. + /// + internal static string OptionShuffleTests { + get { + return ResourceManager.GetString("OptionShuffleTests", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If true, tests will be executed in random order. Note that a true randomized order is only given when executing all tests in non-parallel fashion. Otherwise, the test excutables will most likely be executed more than once - random order is than restricted to the according executions. + ///Google Test option: {0}. + /// + internal static string OptionShuffleTestsDescription { + get { + return ResourceManager.GetString("OptionShuffleTestsDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shuffle tests: Seed. + /// + internal static string OptionShuffleTestsSeed { + get { + return ResourceManager.GetString("OptionShuffleTestsSeed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 0: Seed is computed from system time, 1<=n<={0}: The given seed is used. See note of option '{1}'. + ///Google Test option: {2}. + /// + internal static string OptionShuffleTestsSeedDescription { + get { + return ResourceManager.GetString("OptionShuffleTestsSeedDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Regex for test discovery. + /// + internal static string OptionTestDiscoveryRegex { + get { + return ResourceManager.GetString("OptionTestDiscoveryRegex", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If non-empty, this regex will be used to discover the Google Test executables containing your tests. + ///Default regex:. + /// + internal static string OptionTestDiscoveryRegexDescription { + get { + return ResourceManager.GetString("OptionTestDiscoveryRegexDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test discovery timeout in s. + /// + internal static string OptionTestDiscoveryTimeoutInSeconds { + get { + return ResourceManager.GetString("OptionTestDiscoveryTimeoutInSeconds", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Number of seconds after which test discovery will be assumed to have failed. 0: Infinite timeout. + /// + internal static string OptionTestDiscoveryTimeoutInSecondsDescription { + get { + return ResourceManager.GetString("OptionTestDiscoveryTimeoutInSecondsDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test name separator. + /// + internal static string OptionTestNameSeparator { + get { + return ResourceManager.GetString("OptionTestNameSeparator", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test names produced by Google Test might contain the character '/', which makes VS cut the name after the '/' if the test explorer window is not wide enough. This option's value, if non-empty, will replace the '/' character to avoid that behavior. Note that '\', ' ', '|', and '-' produce the same behavior ('.', '_', ':', and '::' are known to work - there might be more). Note also that traits regexes are evaluated against the tests' display names (and must thus be consistent with this option).. + /// + internal static string OptionTestNameSeparatorDescription { + get { + return ResourceManager.GetString("OptionTestNameSeparatorDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Timestamp output. + /// + internal static string OptionTimestampOutput { + get { + return ResourceManager.GetString("OptionTimestampOutput", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If true, a timestamp is added to test and debug output.. + /// + internal static string OptionTimestampOutputDescription { + get { + return ResourceManager.GetString("OptionTimestampOutputDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Allows to override/add traits for testcases matching a regex. Traits are build up in 3 phases: 1st, traits are assigned to tests according to the 'Traits before' option. 2nd, the tests' traits (defined via the macros in GTA_Traits.h) are added to the tests, overriding traits from phase 1 with new values. 3rd, the 'Traits after' option is evaluated, again in an overriding manner. + ///Syntax: {0} separates the regex from the traits, the trait's name and value are separated by {1} and each pair of regex and trait [rest of string was truncated]";. + /// + internal static string OptionTraitsDescription { + get { + return ResourceManager.GetString("OptionTraitsDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to After test discovery. + /// + internal static string OptionTraitsRegexesAfter { + get { + return ResourceManager.GetString("OptionTraitsRegexesAfter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Before test discovery. + /// + internal static string OptionTraitsRegexesBefore { + get { + return ResourceManager.GetString("OptionTraitsRegexesBefore", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Use new test execution framework (experimental). + /// + internal static string OptionUseNewTestExecutionFramework { + get { + return ResourceManager.GetString("OptionUseNewTestExecutionFramework", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Make use of the new test execution framework. Advantages: test crash detection and test output printing also work in debug mode.. + /// + internal static string OptionUseNewTestExecutionFrameworkDescription { + get { + return ResourceManager.GetString("OptionUseNewTestExecutionFrameworkDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Working directory. + /// + internal static string OptionWorkingDir { + get { + return ResourceManager.GetString("OptionWorkingDir", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If non-empty, will set the working directory for running the tests (default: {0}) + ///Example: {1}\MyTestDir + ///Placeholders:. + /// + internal static string OptionWorkingDirDescription { + get { + return ResourceManager.GetString("OptionWorkingDirDescription", resourceCulture); + } + } + /// /// Looks up a localized string similar to Output file does not exist, did your tests crash?. /// diff --git a/GoogleTestAdapter/Core/Resources.resx b/GoogleTestAdapter/Core/Resources.resx index dbccca410..b2665cec3 100644 --- a/GoogleTestAdapter/Core/Resources.resx +++ b/GoogleTestAdapter/Core/Resources.resx @@ -145,6 +145,21 @@ {0}{1}: Exited with code {2}, executed command: '{3}' {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} is TestSetupBatchFile or TestTeardownBatchFile string, {2} represents a number (e.g. 5), {3} represents unlocalized file path (e.g c:\test\foo.bat) + + Misc + + + Parallelization + + + Runtime behavior + + + Test execution + + + Regexes for trait assignment + {0}Collected {1} test result(s) from result XML file {2} {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents a number (e.g. 5), {2} represents unlocalized file path (e.g c:\test\results.xml) @@ -181,6 +196,23 @@ {0}Could not delete test directory '{1}': {2} {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents unlocalized directory path (e.g c:\test\dir), {2} represents localized exception message (e.g. "Cannot load file") + + {0} - directory containing the test executable + {0} represents a directory containing a test executable + + + {0} - path of a directory which can be used by the tests +{1} - id of thread executing the current tests + {0} represents a directory. {1} represents a thread id. + + + {0} - executable containing the tests + {0} represents the path of a test executable + + + {0} - directory of the solution (only available inside VS) + {0} represents a directory containing a solution file + {0} does not match custom regex {1} {0} represents an unlocalized name of executable (e.g. cmd.exe) file, {1} represents unlocalized string for regular expression (e.g ".*a.exe") @@ -290,6 +322,182 @@ Running {0} tests... {0} represents a number (e.g. 5) + + Additional test execution parameters + + + Additional parameters for Google Test executable. Placeholders: + Followed by a list of placeholders. + + + Test setup batch file + + + Batch file to be executed before test execution. If tests are executed in parallel, the batch file will be executed once per thread. Placeholders: + Followed by a list of placeholders. + + + Test teardown batch file + + + Batch file to be executed after test execution. If tests are executed in parallel, the batch file will be executed once per thread. Placeholders: + Followed by a list of placeholders. + + + Break on failure + + + If enabled, a potentially attached debugger will catch assertion failures and automatically drop into interactive mode. +Google Test option: {0} + {0} represents a command-line flag. + + + Catch exceptions + + + Google Test catches exceptions by default; the according test fails and test execution continues. Choosing false lets exceptions pass through, allowing the debugger to catch them. +Google Test option: {0} + {0} represents a command-line flag. + + + Print debug info + + + If true, debug output will be printed to the test console. + + + Parallel test execution + + + Parallel test execution is achieved by means of different threads, each of which is assigned a number of tests to be executed. The threads will then sequentially invoke the necessary executables to produce the according test results. + + + Kill processes on cancel + + + If true, running test executables are actively killed if the test execution is canceled. Note that killing a test process might have all kinds of side effects; in particular, Google Test will not be able to perform any shutdown tasks. + + + Maximum number of threads + + + Maximum number of threads to be used for test execution (0: one thread for each processor). + + + Number of test repetitions + + + Tests will be run for the selected number of times (-1: infinite). +Google Test option: {0} + {0} represents a command-line flag. + + + Parse symbol information + + + Parse debug symbol information for test executables to obtain source location information and traits (defined via the macros in GTA_Traits.h). +If this is set to false step 2 of traits discovery will be left out and only traits regexes will be effective. + + + PATH extension + PATH represents an environment variable and should not be localized + + + If non-empty, the content will be appended to the PATH variable of the test execution and discovery processes. +Example: C:\MyBins;{0}\MyOtherBins; +Placeholders: + {0} represents a directory. Followed by a list of placeholders. + + + Print test output + + + Print the output of the Google Test executable(s) to the Tests Output window. + + + Also run disabled tests + + + If true, all (selected) tests will be run, even if they have been disabled. +Google Test option: {0} + {0} represents a command-line flag. + + + Show release notes after update + + + If true, a dialog with release notes is shown after the extension has been updated. + + + Shuffle tests per execution + + + If true, tests will be executed in random order. Note that a true randomized order is only given when executing all tests in non-parallel fashion. Otherwise, the test excutables will most likely be executed more than once - random order is than restricted to the according executions. +Google Test option: {0} + {0} represents a command-line flag. + + + Shuffle tests: Seed + + + 0: Seed is computed from system time, 1<=n<={0}: The given seed is used. See note of option '{1}'. +Google Test option: {2} + {0} is an integer representing the maximum value of a seed. {1} represents the localized name of another option. {2} represents a command-line flag. + + + Regex for test discovery + + + If non-empty, this regex will be used to discover the Google Test executables containing your tests. +Default regex: + Followed by a regular expression + + + Test discovery timeout in s + "s" stands for seconds + + + Number of seconds after which test discovery will be assumed to have failed. 0: Infinite timeout + + + Test name separator + + + Test names produced by Google Test might contain the character '/', which makes VS cut the name after the '/' if the test explorer window is not wide enough. This option's value, if non-empty, will replace the '/' character to avoid that behavior. Note that '\', ' ', '|', and '-' produce the same behavior ('.', '_', ':', and '::' are known to work - there might be more). Note also that traits regexes are evaluated against the tests' display names (and must thus be consistent with this option). + + + Timestamp output + + + If true, a timestamp is added to test and debug output. + + + Allows to override/add traits for testcases matching a regex. Traits are build up in 3 phases: 1st, traits are assigned to tests according to the 'Traits before' option. 2nd, the tests' traits (defined via the macros in GTA_Traits.h) are added to the tests, overriding traits from phase 1 with new values. 3rd, the 'Traits after' option is evaluated, again in an overriding manner. +Syntax: {0} separates the regex from the traits, the trait's name and value are separated by {1} and each pair of regex and trait is separated by {2}. +Example: MySuite\.*{0}Type{1}Small{2}MySuite2\.*|MySuite3\.*{0}Type{1}Medium + {0} represents a string used to separate a regex from its traits. {1} represents a string used to separate names and values. {2} represents a string used to separate regexs. + + + After test discovery + + + Before test discovery + + + Use new test execution framework (experimental) + + + Make use of the new test execution framework. Advantages: test crash detection and test output printing also work in debug mode. + + + Working directory + + + If non-empty, will set the working directory for running the tests (default: {0}) +Example: {1}\MyTestDir +Placeholders: + {0} represents the default value of the working directory. {1} represents the directory containing the solution file. Followed by a list of placeholders. + Output file does not exist, did your tests crash? diff --git a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs index 7156a3dc9..3ba7ae5cd 100644 --- a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs +++ b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 9/2017. using System; using System.Collections.Generic; @@ -55,6 +55,38 @@ public class SettingsWrapper private Thread _currentThread; private IGoogleTestAdapterSettings _currentSettings; + static SettingsWrapper() + { + DescriptionOfPlaceholdersForBatches = + string.Format(Resources.DescriptionOfPlaceholdersForBatches, TestDirPlaceholder, ThreadIdPlaceholder) + + "\n" + DescriptionOfSolutionDirPlaceHolder; + + DescriptionOfPlaceholdersForExecutables = + DescriptionOfPlaceholdersForBatches + "\n" + + string.Format(Resources.DescriptionOfPlaceholdersForExecutables, ExecutablePlaceholder) + + "\n" + DescriptionOfExecutableDirPlaceHolder; + + OptionWorkingDirDescription = + string.Format(Resources.OptionWorkingDirDescription, DescriptionOfExecutableDirPlaceHolder, SolutionDirPlaceholder) + + "\n" + DescriptionOfExecutableDirPlaceHolder + "\n" + DescriptionOfSolutionDirPlaceHolder; + + OptionPathExtensionDescription = + string.Format(Resources.OptionPathExtensionDescription, ExecutableDirPlaceholder) + + "\n" + DescriptionOfExecutableDirPlaceHolder; + + OptionAdditionalTestExecutionParamsDescription = + Resources.OptionAdditionalTestExecutionParamsDescription + + "\n" + DescriptionOfPlaceholdersForExecutables; + + OptionBatchForTestSetupDescription = + Resources.OptionBatchForTestSetupDescription + + "\n" + DescriptionOfPlaceholdersForBatches; + + OptionBatchForTestTeardownDescription = + Resources.OptionBatchForTestTeardownDescription + + "\n" + DescriptionOfPlaceholdersForBatches; + } + public SettingsWrapper(IGoogleTestAdapterSettingsContainer settingsContainer) { _settingsContainer = settingsContainer; @@ -198,15 +230,11 @@ public static string ReplacePlaceholders(string userParameters, string executabl } - public const string CategoryTestExecutionName = "Test execution"; - public const string CategoryTraitsName = "Regexes for trait assignment"; - public const string CategoryRuntimeBehaviorName = "Runtime behavior"; - public const string CategoryParallelizationName = "Parallelization"; - public const string CategoryMiscName = "Misc"; - - public const string PageGeneralName = "General"; - public const string PageParallelizationName = CategoryParallelizationName; - public const string PageGoogleTestName = "Google Test"; + public static string CategoryTestExecutionName = Resources.CategoryTestExecutionName; + public static string CategoryTraitsName = Resources.CategoryTraitsName; + public static string CategoryRuntimeBehaviorName = Resources.CategoryRuntimeBehaviorName; + public static string CategoryParallelizationName = Resources.CategoryParallelizationName; + public static string CategoryMiscName = Resources.CategoryMiscName; public const string SolutionDirPlaceholder = "$(SolutionDir)"; public const string TestDirPlaceholder = "$(TestDir)"; @@ -214,55 +242,46 @@ public static string ReplacePlaceholders(string userParameters, string executabl public const string ExecutablePlaceholder = "$(Executable)"; public const string ExecutableDirPlaceholder = "$(ExecutableDir)"; - private const string DescriptionOfSolutionDirPlaceHolder = - SolutionDirPlaceholder + " - directory of the solution (only available inside VS)"; + private static string DescriptionOfSolutionDirPlaceHolder = + string.Format(Resources.DescriptionOfSolutionDirPlaceHolder, SolutionDirPlaceholder); - private const string DescriptionOfExecutableDirPlaceHolder = - ExecutableDirPlaceholder + " - directory containing the test executable"; + private static string DescriptionOfExecutableDirPlaceHolder = + string.Format(Resources.DescriptionOfExecutableDirPlaceHolder, ExecutableDirPlaceholder); - private const string DescriptionOfPlaceholdersForBatches = - TestDirPlaceholder + " - path of a directory which can be used by the tests\n" + - ThreadIdPlaceholder + " - id of thread executing the current tests\n" + - DescriptionOfSolutionDirPlaceHolder; + // Set in constructor because it depends on other strings + private static string DescriptionOfPlaceholdersForBatches; - private const string DescriptionOfPlaceholdersForExecutables = - DescriptionOfPlaceholdersForBatches + "\n" + - ExecutablePlaceholder + " - executable containing the tests\n" + - DescriptionOfExecutableDirPlaceHolder; + // Set in constructor because it depends on other strings + private static string DescriptionOfPlaceholdersForExecutables; #region GeneralOptionsPage public virtual string DebuggingNamedPipeId => _currentSettings.DebuggingNamedPipeId; - public const string OptionUseNewTestExecutionFramework = "Use new test execution framework (experimental)"; + public static string OptionUseNewTestExecutionFramework = Resources.OptionUseNewTestExecutionFramework; public const bool OptionUseNewTestExecutionFrameworkDefaultValue = true; - public const string OptionUseNewTestExecutionFrameworkDescription = - "Make use of the new test execution framework. Advantages: test crash detection and test output printing also work in debug mode."; + public static string OptionUseNewTestExecutionFrameworkDescription = Resources.OptionUseNewTestExecutionFrameworkDescription; public virtual bool UseNewTestExecutionFramework => _currentSettings.UseNewTestExecutionFramework ?? OptionUseNewTestExecutionFrameworkDefaultValue; - public const string OptionPrintTestOutput = "Print test output"; + public static string OptionPrintTestOutput = Resources.OptionPrintTestOutput; public const bool OptionPrintTestOutputDefaultValue = false; - public const string OptionPrintTestOutputDescription = - "Print the output of the Google Test executable(s) to the Tests Output window."; + public static string OptionPrintTestOutputDescription = Resources.OptionPrintTestOutputDescription; public virtual bool PrintTestOutput => _currentSettings.PrintTestOutput ?? OptionPrintTestOutputDefaultValue; - public const string OptionTestDiscoveryRegex = "Regex for test discovery"; + public static string OptionTestDiscoveryRegex = Resources.OptionTestDiscoveryRegex; public const string OptionTestDiscoveryRegexDefaultValue = ""; - public const string OptionTestDiscoveryRegexDescription = - "If non-empty, this regex will be used to discover the Google Test executables containing your tests.\nDefault regex: " - + TestFinderRegex; + public static string OptionTestDiscoveryRegexDescription = Resources.OptionTestDiscoveryRegexDescription + TestFinderRegex; public virtual string TestDiscoveryRegex => _currentSettings.TestDiscoveryRegex ?? OptionTestDiscoveryRegexDefaultValue; - public const string OptionTestDiscoveryTimeoutInSeconds = "Test discovery timeout in s"; + public static string OptionTestDiscoveryTimeoutInSeconds = Resources.OptionTestDiscoveryTimeoutInSeconds; public const int OptionTestDiscoveryTimeoutInSecondsDefaultValue = 30; - public const string OptionTestDiscoveryTimeoutInSecondsDescription = - "Number of seconds after which test discovery will be assumed to have failed. 0: Infinite timeout"; + public static string OptionTestDiscoveryTimeoutInSecondsDescription = Resources.OptionTestDiscoveryTimeoutInSecondsDescription; public virtual int TestDiscoveryTimeoutInSeconds { get @@ -276,20 +295,18 @@ public virtual int TestDiscoveryTimeoutInSeconds { } - public const string OptionWorkingDir = "Working directory"; + public static string OptionWorkingDir = Resources.OptionWorkingDir; public const string OptionWorkingDirDefaultValue = ExecutableDirPlaceholder; - public const string OptionWorkingDirDescription = - "If non-empty, will set the working directory for running the tests (default: " + DescriptionOfExecutableDirPlaceHolder + ").\nExample: " + SolutionDirPlaceholder + "\\MyTestDir\nPlaceholders:\n" - + DescriptionOfExecutableDirPlaceHolder + "\n" + DescriptionOfSolutionDirPlaceHolder; + // Set in constructor because it depends on other strings + public static string OptionWorkingDirDescription; public virtual string WorkingDir => _currentSettings.WorkingDir ?? OptionWorkingDirDefaultValue; - public const string OptionPathExtension = "PATH extension"; + public static string OptionPathExtension = Resources.OptionPathExtension; public const string OptionPathExtensionDefaultValue = ""; - public const string OptionPathExtensionDescription = - "If non-empty, the content will be appended to the PATH variable of the test execution and discovery processes.\nExample: C:\\MyBins;" + ExecutableDirPlaceholder + "\\MyOtherBins;\nPlaceholders:\n" - + DescriptionOfExecutableDirPlaceHolder; + // Set in constructor because it depends on other strings + public static string OptionPathExtensionDescription; public virtual string PathExtension => _currentSettings.PathExtension ?? OptionPathExtensionDefaultValue; @@ -298,21 +315,13 @@ public virtual int TestDiscoveryTimeoutInSeconds { public const string TraitsRegexesRegexSeparator = "///"; public const string TraitsRegexesTraitSeparator = ","; public const string OptionTraitsRegexesDefaultValue = ""; - public const string OptionTraitsDescription = "Allows to override/add traits for testcases matching a regex. Traits are build up in 3 phases: 1st, traits are assigned to tests according to the 'Traits before' option. 2nd, the tests' traits (defined via the macros in GTA_Traits.h) are added to the tests, overriding traits from phase 1 with new values. 3rd, the 'Traits after' option is evaluated, again in an overriding manner.\nSyntax: " - + TraitsRegexesRegexSeparator + - " separates the regex from the traits, the trait's name and value are separated by " - + TraitsRegexesTraitSeparator + - " and each pair of regex and trait is separated by " - + TraitsRegexesPairSeparator + ".\nExample: " + - @"MySuite\.*" - + TraitsRegexesRegexSeparator + "Type" - + TraitsRegexesTraitSeparator + "Small" - + TraitsRegexesPairSeparator + - @"MySuite2\.*|MySuite3\.*" - + TraitsRegexesRegexSeparator + "Type" - + TraitsRegexesTraitSeparator + "Medium"; - - public const string OptionTraitsRegexesBefore = "Before test discovery"; + public static string OptionTraitsDescription = string.Format( + Resources.OptionTraitsDescription, + TraitsRegexesRegexSeparator, + TraitsRegexesTraitSeparator, + TraitsRegexesPairSeparator); + + public static string OptionTraitsRegexesBefore = Resources.OptionTraitsRegexesBefore; public virtual List TraitsRegexesBefore { @@ -323,7 +332,7 @@ public virtual List TraitsRegexesBefore } } - public const string OptionTraitsRegexesAfter = "After test discovery"; + public static string OptionTraitsRegexesAfter = Resources.OptionTraitsRegexesAfter; public virtual List TraitsRegexesAfter { @@ -335,77 +344,67 @@ public virtual List TraitsRegexesAfter } - public const string OptionTestNameSeparator = "Test name separator"; + public static string OptionTestNameSeparator = Resources.OptionTestNameSeparator; public const string OptionTestNameSeparatorDefaultValue = ""; - public const string OptionTestNameSeparatorDescription = - "Test names produced by Google Test might contain the character '/', which makes VS cut the name after the '/' if the test explorer window is not wide enough. This option's value, if non-empty, will replace the '/' character to avoid that behavior. Note that '\\', ' ', '|', and '-' produce the same behavior ('.', '_', ':', and '::' are known to work - there might be more). Note also that traits regexes are evaluated against the tests' display names (and must thus be consistent with this option)."; + public static string OptionTestNameSeparatorDescription = Resources.OptionTestNameSeparatorDescription; public virtual string TestNameSeparator => _currentSettings.TestNameSeparator ?? OptionTestNameSeparatorDefaultValue; - public const string OptionParseSymbolInformation = "Parse symbol information"; + public static string OptionParseSymbolInformation = Resources.OptionParseSymbolInformation; public const bool OptionParseSymbolInformationDefaultValue = true; - public const string OptionParseSymbolInformationDescription = - "Parse debug symbol information for test executables to obtain source location information and traits (defined via the macros in GTA_Traits.h).\n" + - "If this is set to false step 2 of traits discovery will be left out and only traits regexes will be effective."; + public static string OptionParseSymbolInformationDescription = Resources.OptionParseSymbolInformationDescription; public virtual bool ParseSymbolInformation => _currentSettings.ParseSymbolInformation ?? OptionParseSymbolInformationDefaultValue; - public const string OptionDebugMode = "Print debug info"; + public static string OptionDebugMode = Resources.OptionDebugMode; public const bool OptionDebugModeDefaultValue = false; - public const string OptionDebugModeDescription = - "If true, debug output will be printed to the test console."; + public static string OptionDebugModeDescription = Resources.OptionDebugModeDescription; public virtual bool DebugMode => _currentSettings.DebugMode ?? OptionDebugModeDefaultValue; - public const string OptionTimestampOutput = "Timestamp output"; + public static string OptionTimestampOutput = Resources.OptionTimestampOutput; public const bool OptionTimestampOutputDefaultValue = false; - public const string OptionTimestampOutputDescription = - "If true, a timestamp is added to test and debug output."; + public static string OptionTimestampOutputDescription = Resources.OptionTimestampOutputDescription; public virtual bool TimestampOutput => _currentSettings.TimestampOutput ?? OptionTimestampOutputDefaultValue; - public const string OptionShowReleaseNotes = "Show release notes after update"; + public static string OptionShowReleaseNotes = Resources.OptionShowReleaseNotes; public const bool OptionShowReleaseNotesDefaultValue = true; - public const string OptionShowReleaseNotesDescription = - "If true, a dialog with release notes is shown after the extension has been updated."; + public static string OptionShowReleaseNotesDescription = Resources.OptionShowReleaseNotesDescription; public virtual bool ShowReleaseNotes => _currentSettings.ShowReleaseNotes ?? OptionShowReleaseNotesDefaultValue; - public const string OptionAdditionalTestExecutionParams = "Additional test execution parameters"; + public static string OptionAdditionalTestExecutionParams = Resources.OptionAdditionalTestExecutionParams; public const string OptionAdditionalTestExecutionParamsDefaultValue = ""; - public const string OptionAdditionalTestExecutionParamsDescription = - "Additional parameters for Google Test executable. Placeholders:\n" - + DescriptionOfPlaceholdersForExecutables; + // Set in constructor because it depends on other strings + public static string OptionAdditionalTestExecutionParamsDescription; public virtual string AdditionalTestExecutionParam => _currentSettings.AdditionalTestExecutionParam ?? OptionAdditionalTestExecutionParamsDefaultValue; - public const string OptionBatchForTestSetup = "Test setup batch file"; + public static string OptionBatchForTestSetup = Resources.OptionBatchForTestSetup; public const string OptionBatchForTestSetupDefaultValue = ""; - public const string OptionBatchForTestSetupDescription = - "Batch file to be executed before test execution. If tests are executed in parallel, the batch file will be executed once per thread. Placeholders:\n" - + DescriptionOfPlaceholdersForBatches; + // Set in constructor because it depends on other strings + public static string OptionBatchForTestSetupDescription; public virtual string BatchForTestSetup => _currentSettings.BatchForTestSetup ?? OptionBatchForTestSetupDefaultValue; - public const string OptionBatchForTestTeardown = "Test teardown batch file"; + public static string OptionBatchForTestTeardown = Resources.OptionBatchForTestTeardown; public const string OptionBatchForTestTeardownDefaultValue = ""; - public const string OptionBatchForTestTeardownDescription = - "Batch file to be executed after test execution. If tests are executed in parallel, the batch file will be executed once per thread. Placeholders:\n" - + DescriptionOfPlaceholdersForBatches; + // Set in constructor because it depends on other strings + public static string OptionBatchForTestTeardownDescription; public virtual string BatchForTestTeardown => _currentSettings.BatchForTestTeardown ?? OptionBatchForTestTeardownDefaultValue; - public const string OptionKillProcessesOnCancel = "Kill processes on cancel"; + public static string OptionKillProcessesOnCancel = Resources.OptionKillProcessesOnCancel; public const bool OptionKillProcessesOnCancelDefaultValue = false; - public const string OptionKillProcessesOnCancelDescription = - "If true, running test executables are actively killed if the test execution is canceled. Note that killing a test process might have all kinds of side effects; in particular, Google Test will not be able to perform any shutdown tasks."; + public static string OptionKillProcessesOnCancelDescription = Resources.OptionKillProcessesOnCancelDescription; public virtual bool KillProcessesOnCancel => _currentSettings.KillProcessesOnCancel ?? OptionKillProcessesOnCancelDefaultValue; @@ -413,18 +412,16 @@ public virtual List TraitsRegexesAfter #region ParallelizationOptionsPage - public const string OptionEnableParallelTestExecution = "Parallel test execution"; + public static string OptionEnableParallelTestExecution = Resources.OptionEnableParallelTestExecution; public const bool OptionEnableParallelTestExecutionDefaultValue = false; - public const string OptionEnableParallelTestExecutionDescription = - "Parallel test execution is achieved by means of different threads, each of which is assigned a number of tests to be executed. The threads will then sequentially invoke the necessary executables to produce the according test results."; + public static string OptionEnableParallelTestExecutionDescription = Resources.OptionEnableParallelTestExecutionDescription; public virtual bool ParallelTestExecution => _currentSettings.ParallelTestExecution ?? OptionEnableParallelTestExecutionDefaultValue; - public const string OptionMaxNrOfThreads = "Maximum number of threads"; + public static string OptionMaxNrOfThreads = Resources.OptionMaxNrOfThreads; public const int OptionMaxNrOfThreadsDefaultValue = 0; - public const string OptionMaxNrOfThreadsDescription = - "Maximum number of threads to be used for test execution (0: one thread for each processor)."; + public static string OptionMaxNrOfThreadsDescription = Resources.OptionMaxNrOfThreadsDescription; public virtual int MaxNrOfThreads { @@ -443,38 +440,34 @@ public virtual int MaxNrOfThreads #region GoogleTestOptionsPage - public const string OptionCatchExceptions = "Catch exceptions"; + public static string OptionCatchExceptions = Resources.OptionCatchExceptions; public const bool OptionCatchExceptionsDefaultValue = true; - public const string OptionCatchExceptionsDescription = - "Google Test catches exceptions by default; the according test fails and test execution continues. Choosing false lets exceptions pass through, allowing the debugger to catch them.\n" - + "Google Test option:" + GoogleTestConstants.CatchExceptions; + public static string OptionCatchExceptionsDescription = + string.Format(Resources.OptionCatchExceptionsDescription, GoogleTestConstants.CatchExceptions); public virtual bool CatchExceptions => _currentSettings.CatchExceptions ?? OptionCatchExceptionsDefaultValue; - public const string OptionBreakOnFailure = "Break on failure"; + public static string OptionBreakOnFailure = Resources.OptionBreakOnFailure; public const bool OptionBreakOnFailureDefaultValue = false; - public const string OptionBreakOnFailureDescription = - "If enabled, a potentially attached debugger will catch assertion failures and automatically drop into interactive mode.\n" - + "Google Test option:" + GoogleTestConstants.BreakOnFailure; + public static string OptionBreakOnFailureDescription = + string.Format(Resources.OptionBreakOnFailureDescription, GoogleTestConstants.BreakOnFailure); public virtual bool BreakOnFailure => _currentSettings.BreakOnFailure ?? OptionBreakOnFailureDefaultValue; - public const string OptionRunDisabledTests = "Also run disabled tests"; + public static string OptionRunDisabledTests = Resources.OptionRunDisabledTests; public const bool OptionRunDisabledTestsDefaultValue = false; - public const string OptionRunDisabledTestsDescription = - "If true, all (selected) tests will be run, even if they have been disabled.\n" - + "Google Test option:" + GoogleTestConstants.AlsoRunDisabledTestsOption; + public static string OptionRunDisabledTestsDescription = + string.Format(Resources.OptionRunDisabledTestsDescription, GoogleTestConstants.AlsoRunDisabledTestsOption); public virtual bool RunDisabledTests => _currentSettings.RunDisabledTests ?? OptionRunDisabledTestsDefaultValue; - public const string OptionNrOfTestRepetitions = "Number of test repetitions"; + public static string OptionNrOfTestRepetitions = Resources.OptionNrOfTestRepetitions; public const int OptionNrOfTestRepetitionsDefaultValue = 1; - public const string OptionNrOfTestRepetitionsDescription = - "Tests will be run for the selected number of times (-1: infinite).\n" - + "Google Test option:" + GoogleTestConstants.NrOfRepetitionsOption; + public static string OptionNrOfTestRepetitionsDescription = + string.Format(Resources.OptionNrOfTestRepetitionsDescription, GoogleTestConstants.NrOfRepetitionsOption); public virtual int NrOfTestRepetitions { @@ -490,23 +483,21 @@ public virtual int NrOfTestRepetitions } - public const string OptionShuffleTests = "Shuffle tests per execution"; + public static string OptionShuffleTests = Resources.OptionShuffleTests; public const bool OptionShuffleTestsDefaultValue = false; - public const string OptionShuffleTestsDescription = - "If true, tests will be executed in random order. Note that a true randomized order is only given when executing all tests in non-parallel fashion. Otherwise, the test excutables will most likely be executed more than once - random order is than restricted to the according executions.\n" - + "Google Test option:" + GoogleTestConstants.ShuffleTestsOption; + public static string OptionShuffleTestsDescription = + string.Format(Resources.OptionShuffleTestsDescription, GoogleTestConstants.ShuffleTestsOption); public virtual bool ShuffleTests => _currentSettings.ShuffleTests ?? OptionShuffleTestsDefaultValue; - public const string OptionShuffleTestsSeed = "Shuffle tests: Seed"; + public static string OptionShuffleTestsSeed = Resources.OptionShuffleTestsSeed; public const int OptionShuffleTestsSeedDefaultValue = GoogleTestConstants.ShuffleTestsSeedDefaultValue; - public const string OptionShuffleTestsSeedDescription = "0: Seed is computed from system time, 1<=n<=" - + GoogleTestConstants.ShuffleTestsSeedMaxValueAsString - + ": The given seed is used. See note of option '" - + OptionShuffleTests - + "'.\n" - + "Google Test option:" + GoogleTestConstants.ShuffleTestsSeedOption; + public static string OptionShuffleTestsSeedDescription = string.Format( + Resources.OptionShuffleTestsSeedDescription, + GoogleTestConstants.ShuffleTestsSeedMaxValueAsString, + Resources.OptionShuffleTests, + GoogleTestConstants.ShuffleTestsSeedOption); public virtual int ShuffleTestsSeed { diff --git a/GoogleTestAdapter/VsPackage.GTA/OptionsPages/GeneralOptionsDialogPage.cs b/GoogleTestAdapter/VsPackage.GTA/OptionsPages/GeneralOptionsDialogPage.cs index 38f3e75e3..5edb22d56 100644 --- a/GoogleTestAdapter/VsPackage.GTA/OptionsPages/GeneralOptionsDialogPage.cs +++ b/GoogleTestAdapter/VsPackage.GTA/OptionsPages/GeneralOptionsDialogPage.cs @@ -1,16 +1,15 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 9/2017. using GoogleTestAdapter.Settings; -using System.ComponentModel; namespace GoogleTestAdapter.VsPackage.OptionsPages { public partial class GeneralOptionsDialogPage : NotifyingDialogPage { - [Category(SettingsWrapper.CategoryMiscName)] - [DisplayName(SettingsWrapper.OptionShowReleaseNotes)] - [Description(SettingsWrapper.OptionShowReleaseNotesDescription)] + [LocalizedCategory("CategoryMiscName")] + [LocalizedDisplayName("OptionShowReleaseNotes")] + [LocalizedDescription("OptionShowReleaseNotesDescription")] public bool ShowReleaseNotes { get { return _showReleaseNotes; } diff --git a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs index c08efb52f..0c40173ee 100644 --- a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 7/2017. +// This file has been modified by Microsoft on 9/2017. using GoogleTestAdapter.Settings; using GoogleTestAdapter.TestAdapter.Settings; @@ -23,9 +23,9 @@ namespace GoogleTestAdapter.VsPackage [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] // Info on this package for Help/About [Guid(PackageGuidString)] [SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1650:ElementDocumentationMustBeSpelledCorrectly", Justification = "pkgdef, VS and vsixmanifest are valid VS terms")] - [ProvideOptionPage(typeof(GeneralOptionsDialogPage), OptionsCategoryName, SettingsWrapper.PageGeneralName, 0, 0, true)] - [ProvideOptionPage(typeof(ParallelizationOptionsDialogPage), OptionsCategoryName, SettingsWrapper.PageParallelizationName, 0, 0, true)] - [ProvideOptionPage(typeof(GoogleTestOptionsDialogPage), OptionsCategoryName, SettingsWrapper.PageGoogleTestName, 0, 0, true)] + [ProvideOptionPage(typeof(GeneralOptionsDialogPage), OptionsCategoryName, "General", 110, 501, true)] + [ProvideOptionPage(typeof(ParallelizationOptionsDialogPage), OptionsCategoryName, "Parallelization", 110, 502, true)] + [ProvideOptionPage(typeof(GoogleTestOptionsDialogPage), OptionsCategoryName, "Google Test", 110, 503, true)] [ProvideAutoLoad(UIContextGuids.SolutionExists)] [ProvideMenuResource("Menus.ctmenu", 1)] public sealed partial class GoogleTestExtensionOptionsPage : Package, IGoogleTestExtensionOptionsPage, IDisposable diff --git a/GoogleTestAdapter/VsPackage.Shared/OptionsPages/GeneralOptionsDialogPage.cs b/GoogleTestAdapter/VsPackage.Shared/OptionsPages/GeneralOptionsDialogPage.cs index e616ff4b4..21e70c619 100644 --- a/GoogleTestAdapter/VsPackage.Shared/OptionsPages/GeneralOptionsDialogPage.cs +++ b/GoogleTestAdapter/VsPackage.Shared/OptionsPages/GeneralOptionsDialogPage.cs @@ -1,9 +1,8 @@ -// This file has been modified by Microsoft on 7/2017. +// This file has been modified by Microsoft on 9/2017. using GoogleTestAdapter.Helpers; using GoogleTestAdapter.Settings; using System; -using System.ComponentModel; using System.Diagnostics.CodeAnalysis; namespace GoogleTestAdapter.VsPackage.OptionsPages @@ -14,9 +13,9 @@ public partial class GeneralOptionsDialogPage : NotifyingDialogPage { #region Test execution - [Category(SettingsWrapper.CategoryTestExecutionName)] - [DisplayName(SettingsWrapper.OptionTestDiscoveryRegex)] - [Description(SettingsWrapper.OptionTestDiscoveryRegexDescription)] + [LocalizedCategory("CategoryTestExecutionName")] + [LocalizedDisplayName("OptionTestDiscoveryRegex")] + [LocalizedDescription("OptionTestDiscoveryRegexDescription")] public string TestDiscoveryRegex { get { return _testDiscoveryRegex; } @@ -28,9 +27,9 @@ public string TestDiscoveryRegex } private string _testDiscoveryRegex = SettingsWrapper.OptionTestDiscoveryRegexDefaultValue; - [Category(SettingsWrapper.CategoryTestExecutionName)] - [DisplayName(SettingsWrapper.OptionTestDiscoveryTimeoutInSeconds)] - [Description(SettingsWrapper.OptionTestDiscoveryTimeoutInSecondsDescription)] + [LocalizedCategory("CategoryTestExecutionName")] + [LocalizedDisplayName("OptionTestDiscoveryTimeoutInSeconds")] + [LocalizedDescription("OptionTestDiscoveryTimeoutInSecondsDescription")] public int TestDiscoveryTimeoutInSeconds { get { return _testDiscoveryTimeoutInSeconds; } @@ -43,9 +42,9 @@ public int TestDiscoveryTimeoutInSeconds } private int _testDiscoveryTimeoutInSeconds = SettingsWrapper.OptionTestDiscoveryTimeoutInSecondsDefaultValue; - [Category(SettingsWrapper.CategoryTestExecutionName)] - [DisplayName(SettingsWrapper.OptionWorkingDir)] - [Description(SettingsWrapper.OptionWorkingDirDescription)] + [LocalizedCategory("CategoryTestExecutionName")] + [LocalizedDisplayName("OptionWorkingDir")] + [LocalizedDescription("OptionWorkingDirDescription")] public string WorkingDir { get { return _workingDirectory; } @@ -53,9 +52,9 @@ public string WorkingDir } private string _workingDirectory = SettingsWrapper.OptionWorkingDirDefaultValue; - [Category(SettingsWrapper.CategoryTestExecutionName)] - [DisplayName(SettingsWrapper.OptionPathExtension)] - [Description(SettingsWrapper.OptionPathExtensionDescription)] + [LocalizedCategory("CategoryTestExecutionName")] + [LocalizedDisplayName("OptionPathExtension")] + [LocalizedDescription("OptionPathExtensionDescription")] public string PathExtension { get { return _pathExtension; } @@ -63,9 +62,9 @@ public string PathExtension } private string _pathExtension = SettingsWrapper.OptionPathExtensionDefaultValue; - [Category(SettingsWrapper.CategoryTestExecutionName)] - [DisplayName(SettingsWrapper.OptionAdditionalTestExecutionParams)] - [Description(SettingsWrapper.OptionAdditionalTestExecutionParamsDescription)] + [LocalizedCategory("CategoryTestExecutionName")] + [LocalizedDisplayName("OptionAdditionalTestExecutionParams")] + [LocalizedDescription("OptionAdditionalTestExecutionParamsDescription")] public string AdditionalTestExecutionParams { get { return _additionalTestExecutionParams; } @@ -73,9 +72,9 @@ public string AdditionalTestExecutionParams } private string _additionalTestExecutionParams = SettingsWrapper.OptionAdditionalTestExecutionParamsDefaultValue; - [Category(SettingsWrapper.CategoryTestExecutionName)] - [DisplayName(SettingsWrapper.OptionBatchForTestSetup)] - [Description(SettingsWrapper.OptionBatchForTestSetupDescription)] + [LocalizedCategory("CategoryTestExecutionName")] + [LocalizedDisplayName("OptionBatchForTestSetup")] + [LocalizedDescription("OptionBatchForTestSetupDescription")] public string BatchForTestSetup { get { return _batchForTestSetup; } @@ -83,9 +82,9 @@ public string BatchForTestSetup } private string _batchForTestSetup = SettingsWrapper.OptionBatchForTestSetupDefaultValue; - [Category(SettingsWrapper.CategoryTestExecutionName)] - [DisplayName(SettingsWrapper.OptionBatchForTestTeardown)] - [Description(SettingsWrapper.OptionBatchForTestTeardownDescription)] + [LocalizedCategory("CategoryTestExecutionName")] + [LocalizedDisplayName("OptionBatchForTestTeardown")] + [LocalizedDescription("OptionBatchForTestTeardownDescription")] public string BatchForTestTeardown { get { return _batchForTestTeardown; } @@ -93,9 +92,9 @@ public string BatchForTestTeardown } private string _batchForTestTeardown = SettingsWrapper.OptionBatchForTestTeardownDefaultValue; - [Category(SettingsWrapper.CategoryTestExecutionName)] - [DisplayName(SettingsWrapper.OptionKillProcessesOnCancel)] - [Description(SettingsWrapper.OptionKillProcessesOnCancelDescription)] + [LocalizedCategory("CategoryTestExecutionName")] + [LocalizedDisplayName("OptionKillProcessesOnCancel")] + [LocalizedDescription("OptionKillProcessesOnCancelDescription")] public bool KillProcessesOnCancel { get { return _killProcessesOnCancel; } @@ -107,9 +106,9 @@ public bool KillProcessesOnCancel #region Traits - [Category(SettingsWrapper.CategoryTraitsName)] - [DisplayName(SettingsWrapper.OptionTraitsRegexesBefore)] - [Description(SettingsWrapper.OptionTraitsDescription)] + [LocalizedCategory("CategoryTraitsName")] + [LocalizedDisplayName("OptionTraitsRegexesBefore")] + [LocalizedDescription("OptionTraitsDescription")] public string TraitsRegexesBefore { get { return _traitsRegexesBefore; } @@ -121,9 +120,9 @@ public string TraitsRegexesBefore } private string _traitsRegexesBefore = SettingsWrapper.OptionTraitsRegexesDefaultValue; - [Category(SettingsWrapper.CategoryTraitsName)] - [DisplayName(SettingsWrapper.OptionTraitsRegexesAfter)] - [Description(SettingsWrapper.OptionTraitsDescription)] + [LocalizedCategory("CategoryTraitsName")] + [LocalizedDisplayName("OptionTraitsRegexesAfter")] + [LocalizedDescription("OptionTraitsDescription")] public string TraitsRegexesAfter { get { return _traitsRegexesAfter; } @@ -139,9 +138,9 @@ public string TraitsRegexesAfter #region Misc - [Category(SettingsWrapper.CategoryMiscName)] - [DisplayName(SettingsWrapper.OptionUseNewTestExecutionFramework)] - [Description(SettingsWrapper.OptionUseNewTestExecutionFrameworkDescription)] + [LocalizedCategory("CategoryMiscName")] + [LocalizedDisplayName("OptionUseNewTestExecutionFramework")] + [LocalizedDescription("OptionUseNewTestExecutionFrameworkDescription")] public bool UseNewTestExecutionFramework2 { get { return _useNewTestExecutionFramework; } @@ -149,9 +148,9 @@ public bool UseNewTestExecutionFramework2 } private bool _useNewTestExecutionFramework = SettingsWrapper.OptionUseNewTestExecutionFrameworkDefaultValue; - [Category(SettingsWrapper.CategoryMiscName)] - [DisplayName(SettingsWrapper.OptionPrintTestOutput)] - [Description(SettingsWrapper.OptionPrintTestOutputDescription)] + [LocalizedCategory("CategoryMiscName")] + [LocalizedDisplayName("OptionPrintTestOutput")] + [LocalizedDescription("OptionPrintTestOutputDescription")] public bool PrintTestOutput { get { return _printTestOutput; } @@ -159,9 +158,9 @@ public bool PrintTestOutput } private bool _printTestOutput = SettingsWrapper.OptionPrintTestOutputDefaultValue; - [Category(SettingsWrapper.CategoryMiscName)] - [DisplayName(SettingsWrapper.OptionTestNameSeparator)] - [Description(SettingsWrapper.OptionTestNameSeparatorDescription)] + [LocalizedCategory("CategoryMiscName")] + [LocalizedDisplayName("OptionTestNameSeparator")] + [LocalizedDescription("OptionTestNameSeparatorDescription")] public string TestNameSeparator { get { return _testNameSeparator; } @@ -174,9 +173,9 @@ public string TestNameSeparator } private string _testNameSeparator = SettingsWrapper.OptionTestNameSeparatorDefaultValue; - [Category(SettingsWrapper.CategoryMiscName)] - [DisplayName(SettingsWrapper.OptionParseSymbolInformation)] - [Description(SettingsWrapper.OptionParseSymbolInformationDescription)] + [LocalizedCategory("CategoryMiscName")] + [LocalizedDisplayName("OptionParseSymbolInformation")] + [LocalizedDescription("OptionParseSymbolInformationDescription")] public bool ParseSymbolInformation { get { return _parseSymbolInformation; } @@ -184,9 +183,9 @@ public bool ParseSymbolInformation } private bool _parseSymbolInformation = SettingsWrapper.OptionParseSymbolInformationDefaultValue; - [Category(SettingsWrapper.CategoryMiscName)] - [DisplayName(SettingsWrapper.OptionDebugMode)] - [Description(SettingsWrapper.OptionDebugModeDescription)] + [LocalizedCategory("CategoryMiscName")] + [LocalizedDisplayName("OptionDebugMode")] + [LocalizedDescription("OptionDebugModeDescription")] public bool DebugMode { get { return _debugMode; } @@ -194,9 +193,9 @@ public bool DebugMode } private bool _debugMode = SettingsWrapper.OptionDebugModeDefaultValue; - [Category(SettingsWrapper.CategoryMiscName)] - [DisplayName(SettingsWrapper.OptionTimestampOutput)] - [Description(SettingsWrapper.OptionTimestampOutputDescription)] + [LocalizedCategory("CategoryMiscName")] + [LocalizedDisplayName("OptionTimestampOutput")] + [LocalizedDescription("OptionTimestampOutputDescription")] public bool TimestampOutput { get { return _timestampOutput; } diff --git a/GoogleTestAdapter/VsPackage.Shared/OptionsPages/GoogleTestOptionsDialogPage.cs b/GoogleTestAdapter/VsPackage.Shared/OptionsPages/GoogleTestOptionsDialogPage.cs index a9004ddda..c30486015 100644 --- a/GoogleTestAdapter/VsPackage.Shared/OptionsPages/GoogleTestOptionsDialogPage.cs +++ b/GoogleTestAdapter/VsPackage.Shared/OptionsPages/GoogleTestOptionsDialogPage.cs @@ -1,8 +1,7 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 9/2017. using GoogleTestAdapter.Settings; using System; -using System.ComponentModel; namespace GoogleTestAdapter.VsPackage.OptionsPages { @@ -11,9 +10,9 @@ public class GoogleTestOptionsDialogPage : NotifyingDialogPage { #region Runtime behavior - [Category(SettingsWrapper.CategoryRuntimeBehaviorName)] - [DisplayName(SettingsWrapper.OptionCatchExceptions)] - [Description(SettingsWrapper.OptionCatchExceptionsDescription)] + [LocalizedCategory("CategoryRuntimeBehaviorName")] + [LocalizedDisplayName("OptionCatchExceptions")] + [LocalizedDescription("OptionCatchExceptionsDescription")] public bool CatchExceptions { get { return _catchExceptions; } @@ -21,9 +20,9 @@ public bool CatchExceptions } private bool _catchExceptions = SettingsWrapper.OptionCatchExceptionsDefaultValue; - [Category(SettingsWrapper.CategoryRuntimeBehaviorName)] - [DisplayName(SettingsWrapper.OptionBreakOnFailure)] - [Description(SettingsWrapper.OptionBreakOnFailureDescription)] + [LocalizedCategory("CategoryRuntimeBehaviorName")] + [LocalizedDisplayName("OptionBreakOnFailure")] + [LocalizedDescription("OptionBreakOnFailureDescription")] public bool BreakOnFailure { get { return _breakOnFailure; } @@ -35,9 +34,9 @@ public bool BreakOnFailure #region Test execution - [Category(SettingsWrapper.CategoryTestExecutionName)] - [DisplayName(SettingsWrapper.OptionRunDisabledTests)] - [Description(SettingsWrapper.OptionRunDisabledTestsDescription)] + [LocalizedCategory("CategoryTestExecutionName")] + [LocalizedDisplayName("OptionRunDisabledTests")] + [LocalizedDescription("OptionRunDisabledTestsDescription")] public bool RunDisabledTests { get { return _runDisabledTests; } @@ -45,9 +44,9 @@ public bool RunDisabledTests } private bool _runDisabledTests = SettingsWrapper.OptionRunDisabledTestsDefaultValue; - [Category(SettingsWrapper.CategoryTestExecutionName)] - [DisplayName(SettingsWrapper.OptionNrOfTestRepetitions)] - [Description(SettingsWrapper.OptionNrOfTestRepetitionsDescription)] + [LocalizedCategory("CategoryTestExecutionName")] + [LocalizedDisplayName("OptionNrOfTestRepetitions")] + [LocalizedDescription("OptionNrOfTestRepetitionsDescription")] public int NrOfTestRepetitions { get { return _nrOfTestRepetitions; } @@ -60,9 +59,9 @@ public int NrOfTestRepetitions } private int _nrOfTestRepetitions = SettingsWrapper.OptionNrOfTestRepetitionsDefaultValue; - [Category(SettingsWrapper.CategoryTestExecutionName)] - [DisplayName(SettingsWrapper.OptionShuffleTests)] - [Description(SettingsWrapper.OptionShuffleTestsDescription)] + [LocalizedCategory("CategoryTestExecutionName")] + [LocalizedDisplayName("OptionShuffleTests")] + [LocalizedDescription("OptionShuffleTestsDescription")] public bool ShuffleTests { get { return _shuffleTests; } @@ -70,9 +69,9 @@ public bool ShuffleTests } private bool _shuffleTests = SettingsWrapper.OptionShuffleTestsDefaultValue; - [Category(SettingsWrapper.CategoryTestExecutionName)] - [DisplayName(SettingsWrapper.OptionShuffleTestsSeed)] - [Description(SettingsWrapper.OptionShuffleTestsSeedDescription)] + [LocalizedCategory("CategoryTestExecutionName")] + [LocalizedDisplayName("OptionShuffleTestsSeed")] + [LocalizedDescription("OptionShuffleTestsSeedDescription")] public int ShuffleTestsSeed { get { return _shuffleTestsSeed; } diff --git a/GoogleTestAdapter/VsPackage.Shared/OptionsPages/LocalizedCategoryAttribute.cs b/GoogleTestAdapter/VsPackage.Shared/OptionsPages/LocalizedCategoryAttribute.cs new file mode 100644 index 000000000..0580a3985 --- /dev/null +++ b/GoogleTestAdapter/VsPackage.Shared/OptionsPages/LocalizedCategoryAttribute.cs @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +using System.ComponentModel; +using GoogleTestAdapter.Settings; + +namespace GoogleTestAdapter.VsPackage.OptionsPages +{ + class LocalizedCategoryAttribute : CategoryAttribute + { + private readonly string ResourceName; + + public LocalizedCategoryAttribute(string resourceName) + : base() + { + this.ResourceName = resourceName; + } + + protected override string GetLocalizedString(string value) + { + return (string)typeof(SettingsWrapper).GetField(ResourceName).GetValue(null); + } + } +} diff --git a/GoogleTestAdapter/VsPackage.Shared/OptionsPages/LocalizedDescriptionAttribute.cs b/GoogleTestAdapter/VsPackage.Shared/OptionsPages/LocalizedDescriptionAttribute.cs new file mode 100644 index 000000000..efe28cbb6 --- /dev/null +++ b/GoogleTestAdapter/VsPackage.Shared/OptionsPages/LocalizedDescriptionAttribute.cs @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +using System.ComponentModel; +using GoogleTestAdapter.Settings; + +namespace GoogleTestAdapter.VsPackage.OptionsPages +{ + class LocalizedDescriptionAttribute : DescriptionAttribute + { + private readonly string ResourceName; + + public LocalizedDescriptionAttribute(string resourceName) + : base() + { + this.ResourceName = resourceName; + } + + public override string Description + { + get { return (string)typeof(SettingsWrapper).GetField(ResourceName).GetValue(null); } + } + } +} diff --git a/GoogleTestAdapter/VsPackage.Shared/OptionsPages/LocalizedDisplayNameAttribute.cs b/GoogleTestAdapter/VsPackage.Shared/OptionsPages/LocalizedDisplayNameAttribute.cs new file mode 100644 index 000000000..f800ca9b7 --- /dev/null +++ b/GoogleTestAdapter/VsPackage.Shared/OptionsPages/LocalizedDisplayNameAttribute.cs @@ -0,0 +1,24 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +using System.ComponentModel; +using GoogleTestAdapter.Settings; + +namespace GoogleTestAdapter.VsPackage.OptionsPages +{ + class LocalizedDisplayNameAttribute : DisplayNameAttribute + { + private readonly string ResourceName; + + public LocalizedDisplayNameAttribute(string resourceName) + : base() + { + this.ResourceName = resourceName; + } + + public override string DisplayName + { + get { return (string)typeof(SettingsWrapper).GetField(ResourceName).GetValue(null); } + } + } +} diff --git a/GoogleTestAdapter/VsPackage.Shared/OptionsPages/ParallelizationOptionsDialogPage.cs b/GoogleTestAdapter/VsPackage.Shared/OptionsPages/ParallelizationOptionsDialogPage.cs index 43b8cee23..c7020a761 100644 --- a/GoogleTestAdapter/VsPackage.Shared/OptionsPages/ParallelizationOptionsDialogPage.cs +++ b/GoogleTestAdapter/VsPackage.Shared/OptionsPages/ParallelizationOptionsDialogPage.cs @@ -1,17 +1,16 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 9/2017. using GoogleTestAdapter.Settings; using System; -using System.ComponentModel; namespace GoogleTestAdapter.VsPackage.OptionsPages { public class ParallelizationOptionsDialogPage : NotifyingDialogPage { - [Category(SettingsWrapper.CategoryParallelizationName)] - [DisplayName(SettingsWrapper.OptionEnableParallelTestExecution)] - [Description(SettingsWrapper.OptionEnableParallelTestExecutionDescription)] + [LocalizedCategory("CategoryParallelizationName")] + [LocalizedDisplayName("OptionEnableParallelTestExecution")] + [LocalizedDescription("OptionEnableParallelTestExecutionDescription")] public bool EnableParallelTestExecution { get { return _enableParallelTestExecution; } @@ -19,9 +18,9 @@ public bool EnableParallelTestExecution } private bool _enableParallelTestExecution = SettingsWrapper.OptionEnableParallelTestExecutionDefaultValue; - [Category(SettingsWrapper.CategoryParallelizationName)] - [DisplayName(SettingsWrapper.OptionMaxNrOfThreads)] - [Description(SettingsWrapper.OptionMaxNrOfThreadsDescription)] + [LocalizedCategory("CategoryParallelizationName")] + [LocalizedDisplayName("OptionMaxNrOfThreads")] + [LocalizedDescription("OptionMaxNrOfThreadsDescription")] public int MaxNrOfThreads { get { return _maxNrOfThreads; } diff --git a/GoogleTestAdapter/VsPackage.Shared/VsPackage.Shared.projitems b/GoogleTestAdapter/VsPackage.Shared/VsPackage.Shared.projitems index 1d835066b..ba789921c 100644 --- a/GoogleTestAdapter/VsPackage.Shared/VsPackage.Shared.projitems +++ b/GoogleTestAdapter/VsPackage.Shared/VsPackage.Shared.projitems @@ -25,6 +25,9 @@ Component + + + Component diff --git a/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx b/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx index e9d69787f..b7433bf70 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx +++ b/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx @@ -1,5 +1,64 @@  + @@ -58,14 +117,24 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Test Adapter for Google Test Enables Visual Studio's testing tools with unit tests written for Google Test. The use terms and Third Party Notices are available in the extension installation directory. + ..\..\Resources\Icons\Icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + General + The name of page of options + + + Parallelization + + + Google Test + \ No newline at end of file From 2a2c6289a801981e3ca6eda43511b400922c8362 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Wed, 13 Sep 2017 17:33:05 -0700 Subject: [PATCH 17/96] Additional localization for warning messages --- .../Core/Helpers/TestProcessLauncher.cs | 5 ++-- GoogleTestAdapter/Core/Resources.Designer.cs | 27 ++++++++++++++++++ GoogleTestAdapter/Core/Resources.resx | 11 ++++++++ .../StandardOutputTestResultParser.cs | 4 +-- ...StreamingStandardOutputTestResultParser.cs | 4 +-- .../TestAdapter/Resources.Designer.cs | 28 +++++++++++++++++++ GoogleTestAdapter/TestAdapter/Resources.resx | 12 ++++++++ .../Settings/RunSettingsService.cs | 8 +++--- 8 files changed, 88 insertions(+), 11 deletions(-) diff --git a/GoogleTestAdapter/Core/Helpers/TestProcessLauncher.cs b/GoogleTestAdapter/Core/Helpers/TestProcessLauncher.cs index 5869ea951..08ee5d7c8 100644 --- a/GoogleTestAdapter/Core/Helpers/TestProcessLauncher.cs +++ b/GoogleTestAdapter/Core/Helpers/TestProcessLauncher.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 9/2017. using System; using System.Collections.Generic; @@ -83,8 +83,7 @@ private int LaunchProcessWithDebuggerAttached(string workingDirectory, string co _logger.LogInfo(String.Format(Resources.AttachDebuggerMessage, command)); if (printTestOutput) { - _logger.DebugInfo( - "Note that due to restrictions of the VS Unit Testing framework, the test executable's output can not be displayed in the test console when debugging tests!"); + _logger.DebugInfo(Resources.DebuggerAttachedOutputMessage); } _processId = handle.LaunchProcessWithDebuggerAttached(command, workingDirectory, param, _settings.GetPathExtension(command)); Process process = Process.GetProcessById(_processId.Value); diff --git a/GoogleTestAdapter/Core/Resources.Designer.cs b/GoogleTestAdapter/Core/Resources.Designer.cs index ddb06da4d..63857e2cf 100644 --- a/GoogleTestAdapter/Core/Resources.Designer.cs +++ b/GoogleTestAdapter/Core/Resources.Designer.cs @@ -231,6 +231,15 @@ internal static string CrashTest { } } + /// + /// Looks up a localized string similar to !! This test has probably CRASHED !!. + /// + internal static string CrashText { + get { + return ResourceManager.GetString("CrashText", resourceCulture); + } + } + /// /// Looks up a localized string similar to {0}Created {1} test results for tests which were neither found in result XML file nor in console output. /// @@ -240,6 +249,15 @@ internal static string CreatedTestResults { } } + /// + /// Looks up a localized string similar to Note that due to restrictions of the VS Unit Testing framework, the test executable's output can not be displayed in the test console when debugging tests!. + /// + internal static string DebuggerAttachedOutputMessage { + get { + return ResourceManager.GetString("DebuggerAttachedOutputMessage", resourceCulture); + } + } + /// /// Looks up a localized string similar to {0}Could not delete test directory '{1}': {2}. /// @@ -1235,6 +1253,15 @@ internal static string TestDiscoveryCancelled { } } + /// + /// Looks up a localized string similar to Test output:. + /// + internal static string TestOutput { + get { + return ResourceManager.GetString("TestOutput", resourceCulture); + } + } + /// /// Looks up a localized string similar to Test result file {0} could not be parsed (completely) - your test executable has probably crashed. Exception message: {1}. /// diff --git a/GoogleTestAdapter/Core/Resources.resx b/GoogleTestAdapter/Core/Resources.resx index b2665cec3..a2225c404 100644 --- a/GoogleTestAdapter/Core/Resources.resx +++ b/GoogleTestAdapter/Core/Resources.resx @@ -188,10 +188,17 @@ reason is probably a crash of test {0} {0} represents an unlocalized name of test (e.g. foo) + + !! This test has probably CRASHED !! + The exclamation points and all-caps are for emphasis. + {0}Created {1} test results for tests which were neither found in result XML file nor in console output {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents a number (e.g. 5) + + Note that due to restrictions of the VS Unit Testing framework, the test executable's output can not be displayed in the test console when debugging tests! + {0}Could not delete test directory '{1}': {2} {0} is empty or a name of a thread followed by space (e.g. "[T0] "), {1} represents unlocalized directory path (e.g c:\test\dir), {2} represents localized exception message (e.g. "Cannot load file") @@ -603,6 +610,10 @@ Placeholders: Test discovery was cancelled after {0} s for executable {1} {0} represents a number (e.g. 5), {1} represents an unlocalized name of executable (e.g. cmd.exe) file + + Test output: + Followed by the output of a test case + Test result file {0} could not be parsed (completely) - your test executable has probably crashed. Exception message: {1} {0} represents unlocalized file path (e.g c:\test\results.xml), {1} represents localized exception message (e.g. "Cannot load file") diff --git a/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs b/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs index 15c4b79f8..f92de9a1d 100644 --- a/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs +++ b/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 9/2017. using System; using System.Collections.Generic; @@ -16,7 +16,7 @@ public class StandardOutputTestResultParser public const string Failed = "[ FAILED ]"; public const string Passed = "[ OK ]"; - public const string CrashText = "!! This test has probably CRASHED !!"; + public static string CrashText = Resources.CrashText; /// /// 1000 ticks = 0.1ms to make sure VS shows "<1ms" diff --git a/GoogleTestAdapter/Core/TestResults/StreamingStandardOutputTestResultParser.cs b/GoogleTestAdapter/Core/TestResults/StreamingStandardOutputTestResultParser.cs index e4bdc5526..45550a1d5 100644 --- a/GoogleTestAdapter/Core/TestResults/StreamingStandardOutputTestResultParser.cs +++ b/GoogleTestAdapter/Core/TestResults/StreamingStandardOutputTestResultParser.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 9/2017. using System; using System.Collections.Generic; @@ -158,7 +158,7 @@ private TestResult CreateTestResult() CrashedTestCase = testCase; string message = StandardOutputTestResultParser.CrashText; - message += errorMsg == "" ? "" : $"\nTest output:\n\n{errorMsg}"; + message += errorMsg == "" ? "" : ("\n" + Resources.TestOutput + $"\n\n{errorMsg}"); TestResult result = StandardOutputTestResultParser.CreateFailedTestResult( testCase, TimeSpan.FromMilliseconds(0), diff --git a/GoogleTestAdapter/TestAdapter/Resources.Designer.cs b/GoogleTestAdapter/TestAdapter/Resources.Designer.cs index 47df7c58f..8499ed310 100644 --- a/GoogleTestAdapter/TestAdapter/Resources.Designer.cs +++ b/GoogleTestAdapter/TestAdapter/Resources.Designer.cs @@ -60,6 +60,16 @@ internal Resources() { } } + /// + /// Looks up a localized string similar to Solution test settings file could not be parsed, check file: {0} + ///Exception: {1}. + /// + internal static string CantParseSettings { + get { + return ResourceManager.GetString("CantParseSettings", resourceCulture); + } + } + /// /// Looks up a localized string similar to Could not attach debugger to process {0}:{1}{2}. /// @@ -195,6 +205,15 @@ internal static string ProcessNotFound { } } + /// + /// Looks up a localized string similar to RunSettingsDocument does not contain a RunSettings node! Canceling settings merging.... + /// + internal static string RunSettingsMissingNode { + get { + return ResourceManager.GetString("RunSettingsMissingNode", resourceCulture); + } + } + /// /// Looks up a localized string similar to Solution settings: {0}. /// @@ -204,6 +223,15 @@ internal static string Settings { } } + /// + /// Looks up a localized string similar to Solution test settings file found at '{0}', but does not contain {1} node. + /// + internal static string SolutionFoundButMissingNode { + get { + return ResourceManager.GetString("SolutionFoundButMissingNode", resourceCulture); + } + } + /// /// Looks up a localized string similar to Test case filter: {0}. /// diff --git a/GoogleTestAdapter/TestAdapter/Resources.resx b/GoogleTestAdapter/TestAdapter/Resources.resx index fe6cb3ab7..09698c624 100644 --- a/GoogleTestAdapter/TestAdapter/Resources.resx +++ b/GoogleTestAdapter/TestAdapter/Resources.resx @@ -238,4 +238,16 @@ Unknown Visual Studio version: {0} {0} is version number (e.g. "15.0") + + Solution test settings file could not be parsed, check file: {0} +Exception: {1} + {0} represents the path to a solution test settings file. {1} represents a textual summary of an exception, likely non-localized. + + + RunSettingsDocument does not contain a RunSettings node! Canceling settings merging... + + + Solution test settings file found at '{0}', but does not contain {1} node + {0} represents the path to a solution test settings file. {1} represents the non-localized name of an XML node. + \ No newline at end of file diff --git a/GoogleTestAdapter/TestAdapter/Settings/RunSettingsService.cs b/GoogleTestAdapter/TestAdapter/Settings/RunSettingsService.cs index 5102fb48a..871ed5679 100644 --- a/GoogleTestAdapter/TestAdapter/Settings/RunSettingsService.cs +++ b/GoogleTestAdapter/TestAdapter/Settings/RunSettingsService.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 9/2017. using EnvDTE; using GoogleTestAdapter.Settings; @@ -37,7 +37,7 @@ public IXPathNavigable AddRunSettings(IXPathNavigable runSettingDocument, Debug.Assert(runSettingsNavigator != null, "userRunSettingsNavigator == null!"); if (!runSettingsNavigator.MoveToChild(Constants.RunSettingsName, "")) { - logger.Log(MessageLevel.Warning, "RunSettingsDocument does not contain a RunSettings node! Canceling settings merging..."); + logger.Log(MessageLevel.Warning, Resources.RunSettingsMissingNode); return runSettingsNavigator; } @@ -72,7 +72,7 @@ public IXPathNavigable AddRunSettings(IXPathNavigable runSettingDocument, } else { - logger.Log(MessageLevel.Warning, $"Solution test settings file found at '{solutionRunSettingsFile}', but does not contain {Constants.RunSettingsName} node"); + logger.Log(MessageLevel.Warning, string.Format(Resources.SolutionFoundButMissingNode, solutionRunSettingsFile, Constants.RunSettingsName)); } } } @@ -80,7 +80,7 @@ public IXPathNavigable AddRunSettings(IXPathNavigable runSettingDocument, catch (Exception e) { logger.Log(MessageLevel.Warning, - $"Solution test settings file could not be parsed, check file: {solutionRunSettingsFile}{Environment.NewLine}Exception: {e}"); + string.Format(Resources.CantParseSettings, solutionRunSettingsFile, e)); } foreach (var projectSettings in settingsContainer.ProjectSettings) From c9c1dcfd7f8069b70c93d00a7a43496030d9f70b Mon Sep 17 00:00:00 2001 From: csigs Date: Thu, 14 Sep 2017 20:58:38 +0000 Subject: [PATCH 18/96] LEGO: check in for dev15loc to temporary branch. --- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../CHS/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../CHS/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/CHS/NewProjectWizard.dll.lcl | 174 ++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../CHT/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../CHT/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/CHT/NewProjectWizard.dll.lcl | 174 ++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../CSY/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../CSY/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/CSY/NewProjectWizard.dll.lcl | 174 ++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../DEU/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../DEU/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/DEU/NewProjectWizard.dll.lcl | 174 ++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../ESN/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../ESN/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/ESN/NewProjectWizard.dll.lcl | 174 ++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../FRA/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../FRA/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/FRA/NewProjectWizard.dll.lcl | 174 ++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../ITA/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../ITA/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/ITA/NewProjectWizard.dll.lcl | 174 ++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../JPN/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../JPN/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/JPN/NewProjectWizard.dll.lcl | 174 ++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../KOR/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../KOR/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/KOR/NewProjectWizard.dll.lcl | 174 ++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../PLK/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../PLK/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/PLK/NewProjectWizard.dll.lcl | 174 ++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../PTB/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../PTB/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/PTB/NewProjectWizard.dll.lcl | 174 ++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../RUS/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../RUS/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/RUS/NewProjectWizard.dll.lcl | 174 ++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 111 +++ loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl | 789 ++++++++++++++++++ .../TRK/GoogleTestAdapter.DiaResolver.dll.lcl | 153 ++++ .../TRK/GoogleTestAdapter.TestAdapter.dll.lcl | 357 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 153 ++++ loc/lcl/TRK/NewProjectWizard.dll.lcl | 174 ++++ 78 files changed, 22581 insertions(+) create mode 100644 loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/CHS/NewProjectWizard.dll.lcl create mode 100644 loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/CHT/NewProjectWizard.dll.lcl create mode 100644 loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/CSY/NewProjectWizard.dll.lcl create mode 100644 loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/DEU/NewProjectWizard.dll.lcl create mode 100644 loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/ESN/NewProjectWizard.dll.lcl create mode 100644 loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/FRA/NewProjectWizard.dll.lcl create mode 100644 loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/ITA/NewProjectWizard.dll.lcl create mode 100644 loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/JPN/NewProjectWizard.dll.lcl create mode 100644 loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/KOR/NewProjectWizard.dll.lcl create mode 100644 loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/PLK/NewProjectWizard.dll.lcl create mode 100644 loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/PTB/NewProjectWizard.dll.lcl create mode 100644 loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/RUS/NewProjectWizard.dll.lcl create mode 100644 loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl create mode 100644 loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl create mode 100644 loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl create mode 100644 loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl create mode 100644 loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl create mode 100644 loc/lcl/TRK/NewProjectWizard.dll.lcl diff --git a/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..0fcb8162a --- /dev/null +++ b/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..9838b619d --- /dev/null +++ b/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..9fd6af8d3 --- /dev/null +++ b/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..40505ca5a --- /dev/null +++ b/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..ce451cbd3 --- /dev/null +++ b/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CHS/NewProjectWizard.dll.lcl b/loc/lcl/CHS/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..e9d37cbce --- /dev/null +++ b/loc/lcl/CHS/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..ce7433481 --- /dev/null +++ b/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..33b45bdb3 --- /dev/null +++ b/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..51d3dcb09 --- /dev/null +++ b/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..4e4785aeb --- /dev/null +++ b/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..b96610ded --- /dev/null +++ b/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CHT/NewProjectWizard.dll.lcl b/loc/lcl/CHT/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..cfc2636c0 --- /dev/null +++ b/loc/lcl/CHT/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..81253e9e9 --- /dev/null +++ b/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..f572cfefe --- /dev/null +++ b/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..a7e4c31e3 --- /dev/null +++ b/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..67f2af0b7 --- /dev/null +++ b/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..1ef09bd41 --- /dev/null +++ b/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/CSY/NewProjectWizard.dll.lcl b/loc/lcl/CSY/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..fd5d13716 --- /dev/null +++ b/loc/lcl/CSY/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..f8fe6e6dd --- /dev/null +++ b/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..b1a969ea3 --- /dev/null +++ b/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..9e3defbdc --- /dev/null +++ b/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..b19d93ab9 --- /dev/null +++ b/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..19cf4731f --- /dev/null +++ b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/DEU/NewProjectWizard.dll.lcl b/loc/lcl/DEU/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..f7afbd98d --- /dev/null +++ b/loc/lcl/DEU/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..efdd44853 --- /dev/null +++ b/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..0c4fdd219 --- /dev/null +++ b/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..393d2e0b9 --- /dev/null +++ b/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..2e105df40 --- /dev/null +++ b/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..0d2a983be --- /dev/null +++ b/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/ESN/NewProjectWizard.dll.lcl b/loc/lcl/ESN/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..1152c39d9 --- /dev/null +++ b/loc/lcl/ESN/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..8582c59db --- /dev/null +++ b/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..d9a9a5261 --- /dev/null +++ b/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..f6f388bb1 --- /dev/null +++ b/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..6aae0c724 --- /dev/null +++ b/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..8235ab491 --- /dev/null +++ b/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/FRA/NewProjectWizard.dll.lcl b/loc/lcl/FRA/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..ea7ea45f5 --- /dev/null +++ b/loc/lcl/FRA/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..347dd6cd5 --- /dev/null +++ b/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..19a974491 --- /dev/null +++ b/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..943ab8a43 --- /dev/null +++ b/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..02ff82338 --- /dev/null +++ b/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..79de303f3 --- /dev/null +++ b/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/ITA/NewProjectWizard.dll.lcl b/loc/lcl/ITA/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..63e7572bb --- /dev/null +++ b/loc/lcl/ITA/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..5629073be --- /dev/null +++ b/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..bcead714b --- /dev/null +++ b/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..c06b89988 --- /dev/null +++ b/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..9bd233d58 --- /dev/null +++ b/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..bf5785415 --- /dev/null +++ b/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/JPN/NewProjectWizard.dll.lcl b/loc/lcl/JPN/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..770787ba8 --- /dev/null +++ b/loc/lcl/JPN/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..958c3024b --- /dev/null +++ b/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..70c070e29 --- /dev/null +++ b/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..62172a34b --- /dev/null +++ b/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..39d5b5c24 --- /dev/null +++ b/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..825a1aa45 --- /dev/null +++ b/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/KOR/NewProjectWizard.dll.lcl b/loc/lcl/KOR/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..26f333cc4 --- /dev/null +++ b/loc/lcl/KOR/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..7900ee48b --- /dev/null +++ b/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..d05c6ee66 --- /dev/null +++ b/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..eb9bb5b63 --- /dev/null +++ b/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..d7e3180a3 --- /dev/null +++ b/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..073e0b2f7 --- /dev/null +++ b/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/PLK/NewProjectWizard.dll.lcl b/loc/lcl/PLK/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..b28e2672c --- /dev/null +++ b/loc/lcl/PLK/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..e70ccc984 --- /dev/null +++ b/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..81a45f904 --- /dev/null +++ b/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..7755ec067 --- /dev/null +++ b/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..6094897b1 --- /dev/null +++ b/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..d6d1f7cf4 --- /dev/null +++ b/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/PTB/NewProjectWizard.dll.lcl b/loc/lcl/PTB/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..1f64e5b70 --- /dev/null +++ b/loc/lcl/PTB/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..27beb0a06 --- /dev/null +++ b/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..07a13f8df --- /dev/null +++ b/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..27d01a5c7 --- /dev/null +++ b/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..c4a430915 --- /dev/null +++ b/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..47dfd17de --- /dev/null +++ b/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/RUS/NewProjectWizard.dll.lcl b/loc/lcl/RUS/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..b30c3a709 --- /dev/null +++ b/loc/lcl/RUS/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl new file mode 100644 index 000000000..c80c297fa --- /dev/null +++ b/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl new file mode 100644 index 000000000..ea09859a2 --- /dev/null +++ b/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl new file mode 100644 index 000000000..a30cb87c1 --- /dev/null +++ b/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl new file mode 100644 index 000000000..d4e3eaa21 --- /dev/null +++ b/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl new file mode 100644 index 000000000..01cce00e7 --- /dev/null +++ b/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/loc/lcl/TRK/NewProjectWizard.dll.lcl b/loc/lcl/TRK/NewProjectWizard.dll.lcl new file mode 100644 index 000000000..fec54f53b --- /dev/null +++ b/loc/lcl/TRK/NewProjectWizard.dll.lcl @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 95636151728b8f4d7ffdc7c74db3f5dd11b21b74 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Thu, 14 Sep 2017 17:17:29 -0700 Subject: [PATCH 19/96] Make resx public so it can be bound through xaml (runtime error) (#37) --- .../NewProjectWizard/NewProjectWizard.csproj | 2 +- .../Properties/Resources.Designer.cs | 28 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj index b6d0f4821..1cee0ec0e 100644 --- a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj +++ b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj @@ -130,7 +130,7 @@ - ResXFileCodeGenerator + PublicResXFileCodeGenerator Resources.Designer.cs Designer diff --git a/GoogleTestAdapter/NewProjectWizard/Properties/Resources.Designer.cs b/GoogleTestAdapter/NewProjectWizard/Properties/Resources.Designer.cs index 2fa959039..3cada9c02 100644 --- a/GoogleTestAdapter/NewProjectWizard/Properties/Resources.Designer.cs +++ b/GoogleTestAdapter/NewProjectWizard/Properties/Resources.Designer.cs @@ -22,7 +22,7 @@ namespace NewProjectWizard.Properties { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { + public class Resources { private static global::System.Resources.ResourceManager resourceMan; @@ -36,7 +36,7 @@ internal Resources() { /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { + public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("NewProjectWizard.Properties.Resources", typeof(Resources).Assembly); @@ -51,7 +51,7 @@ internal Resources() { /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { + public static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } @@ -63,7 +63,7 @@ internal Resources() { /// /// Looks up a localized string similar to Consume Google Test as:. /// - internal static string ConsumeAs { + public static string ConsumeAs { get { return ResourceManager.GetString("ConsumeAs", resourceCulture); } @@ -72,7 +72,7 @@ internal static string ConsumeAs { /// /// Looks up a localized string similar to Dynamic Library (.dll). /// - internal static string DynamicLib { + public static string DynamicLib { get { return ResourceManager.GetString("DynamicLib", resourceCulture); } @@ -81,7 +81,7 @@ internal static string DynamicLib { /// /// Looks up a localized string similar to Link dynamically (Recommended). /// - internal static string LinkDynamic { + public static string LinkDynamic { get { return ResourceManager.GetString("LinkDynamic", resourceCulture); } @@ -90,7 +90,7 @@ internal static string LinkDynamic { /// /// Looks up a localized string similar to Link statically. /// - internal static string LinkStatic { + public static string LinkStatic { get { return ResourceManager.GetString("LinkStatic", resourceCulture); } @@ -99,7 +99,7 @@ internal static string LinkStatic { /// /// Looks up a localized string similar to <No project>. /// - internal static string NoProject { + public static string NoProject { get { return ResourceManager.GetString("NoProject", resourceCulture); } @@ -108,7 +108,7 @@ internal static string NoProject { /// /// Looks up a localized string similar to Cannot find NuGet.VisualStudio.Interop.dll. Wizard cannot continue.. /// - internal static string NuGetInteropNotFound { + public static string NuGetInteropNotFound { get { return ResourceManager.GetString("NuGetInteropNotFound", resourceCulture); } @@ -117,7 +117,7 @@ internal static string NuGetInteropNotFound { /// /// Looks up a localized string similar to C++ runtime libraries:. /// - internal static string RuntimeLibs { + public static string RuntimeLibs { get { return ResourceManager.GetString("RuntimeLibs", resourceCulture); } @@ -126,7 +126,7 @@ internal static string RuntimeLibs { /// /// Looks up a localized string similar to Select project to test (Optional):. /// - internal static string SelectProject { + public static string SelectProject { get { return ResourceManager.GetString("SelectProject", resourceCulture); } @@ -135,7 +135,7 @@ internal static string SelectProject { /// /// Looks up a localized string similar to Static Library (.lib). /// - internal static string StaticLib { + public static string StaticLib { get { return ResourceManager.GetString("StaticLib", resourceCulture); } @@ -144,7 +144,7 @@ internal static string StaticLib { /// /// Looks up a localized string similar to Windows SDK not found.. /// - internal static string WinSDKNotFound { + public static string WinSDKNotFound { get { return ResourceManager.GetString("WinSDKNotFound", resourceCulture); } @@ -153,7 +153,7 @@ internal static string WinSDKNotFound { /// /// Looks up a localized string similar to Test Project Configuration. /// - internal static string WizardTitle { + public static string WizardTitle { get { return ResourceManager.GetString("WizardTitle", resourceCulture); } From bbcf6131a5805c97a47c4fd4a602b35ea4e1cbf0 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Fri, 15 Sep 2017 10:22:55 -0700 Subject: [PATCH 20/96] Address PR comments --- GoogleTestAdapter/Core/Resources.Designer.cs | 18 +- GoogleTestAdapter/Core/Resources.resx | 18 +- .../Core/Settings/SettingsWrapper.cs | 170 ++++++++---------- .../StandardOutputTestResultParser.cs | 2 +- .../VsPackage.TAfGT/Resources/VSPackage.resx | 2 + 5 files changed, 94 insertions(+), 116 deletions(-) diff --git a/GoogleTestAdapter/Core/Resources.Designer.cs b/GoogleTestAdapter/Core/Resources.Designer.cs index 63857e2cf..60fb8945e 100644 --- a/GoogleTestAdapter/Core/Resources.Designer.cs +++ b/GoogleTestAdapter/Core/Resources.Designer.cs @@ -278,7 +278,7 @@ internal static string DescriptionOfExecutableDirPlaceHolder { /// /// Looks up a localized string similar to {0} - path of a directory which can be used by the tests - ///{1} - id of thread executing the current tests. + ///{1} - id of the thread executing the current tests. /// internal static string DescriptionOfPlaceholdersForBatches { get { @@ -296,7 +296,7 @@ internal static string DescriptionOfPlaceholdersForExecutables { } /// - /// Looks up a localized string similar to {0} - directory of the solution (only available inside VS). + /// Looks up a localized string similar to {0} - directory of the solution (only available inside Visual Studio). /// internal static string DescriptionOfSolutionDirPlaceHolder { get { @@ -685,7 +685,7 @@ internal static string OptionEnableParallelTestExecutionDescription { } /// - /// Looks up a localized string similar to Kill processes on cancel. + /// Looks up a localized string similar to Terminate processes on cancel. /// internal static string OptionKillProcessesOnCancel { get { @@ -694,7 +694,7 @@ internal static string OptionKillProcessesOnCancel { } /// - /// Looks up a localized string similar to If true, running test executables are actively killed if the test execution is canceled. Note that killing a test process might have all kinds of side effects; in particular, Google Test will not be able to perform any shutdown tasks.. + /// Looks up a localized string similar to If true, running test executables are actively terminated if the test execution is canceled. Note that terminating a test process might have all kinds of side effects; in particular, Google Test will not be able to perform any shutdown tasks.. /// internal static string OptionKillProcessesOnCancelDescription { get { @@ -750,7 +750,7 @@ internal static string OptionParseSymbolInformation { /// /// Looks up a localized string similar to Parse debug symbol information for test executables to obtain source location information and traits (defined via the macros in GTA_Traits.h). - ///If this is set to false step 2 of traits discovery will be left out and only traits regexes will be effective.. + ///If this is set to false, step 2 of traits discovery will be left out and only traits regexes will be effective.. /// internal static string OptionParseSymbolInformationDescription { get { @@ -882,7 +882,7 @@ internal static string OptionTestDiscoveryRegex { /// /// Looks up a localized string similar to If non-empty, this regex will be used to discover the Google Test executables containing your tests. - ///Default regex:. + ///Default regex: {0}. /// internal static string OptionTestDiscoveryRegexDescription { get { @@ -918,7 +918,7 @@ internal static string OptionTestNameSeparator { } /// - /// Looks up a localized string similar to Test names produced by Google Test might contain the character '/', which makes VS cut the name after the '/' if the test explorer window is not wide enough. This option's value, if non-empty, will replace the '/' character to avoid that behavior. Note that '\', ' ', '|', and '-' produce the same behavior ('.', '_', ':', and '::' are known to work - there might be more). Note also that traits regexes are evaluated against the tests' display names (and must thus be consistent with this option).. + /// Looks up a localized string similar to Test names produced by Google Test might contain the character '/', which makes Visual Studio cut the name after the '/' if the Test Explorer window is not wide enough. This option's value, if non-empty, will replace the '/' character to avoid that behavior. Note that '\', ' ', '|', and '-' produce the same behavior ('.', '_', ':', and '::' are known to work). Note also that traits regexes are evaluated against the tests' display names (and must thus be consistent with this option).. /// internal static string OptionTestNameSeparatorDescription { get { @@ -945,8 +945,8 @@ internal static string OptionTimestampOutputDescription { } /// - /// Looks up a localized string similar to Allows to override/add traits for testcases matching a regex. Traits are build up in 3 phases: 1st, traits are assigned to tests according to the 'Traits before' option. 2nd, the tests' traits (defined via the macros in GTA_Traits.h) are added to the tests, overriding traits from phase 1 with new values. 3rd, the 'Traits after' option is evaluated, again in an overriding manner. - ///Syntax: {0} separates the regex from the traits, the trait's name and value are separated by {1} and each pair of regex and trait [rest of string was truncated]";. + /// Looks up a localized string similar to Allows to override/add traits for testcases matching a regex. Traits are build up in 3 phases. First, traits are assigned to tests according to the 'Traits before' option. Next, the tests' traits (defined via the macros in GTA_Traits.h) are added to the tests, overriding traits from phase 1 with new values. Finally, the 'Traits after' option is evaluated, again in an overriding manner. + ///Syntax: {0} separates the regex from the traits, the trait's name and value are separated by {1} and each pair of regex an [rest of string was truncated]";. /// internal static string OptionTraitsDescription { get { diff --git a/GoogleTestAdapter/Core/Resources.resx b/GoogleTestAdapter/Core/Resources.resx index a2225c404..0b6703a94 100644 --- a/GoogleTestAdapter/Core/Resources.resx +++ b/GoogleTestAdapter/Core/Resources.resx @@ -209,7 +209,7 @@ {0} - path of a directory which can be used by the tests -{1} - id of thread executing the current tests +{1} - id of the thread executing the current tests {0} represents a directory. {1} represents a thread id. @@ -217,7 +217,7 @@ {0} represents the path of a test executable - {0} - directory of the solution (only available inside VS) + {0} - directory of the solution (only available inside Visual Studio) {0} represents a directory containing a solution file @@ -379,10 +379,10 @@ Google Test option: {0} Parallel test execution is achieved by means of different threads, each of which is assigned a number of tests to be executed. The threads will then sequentially invoke the necessary executables to produce the according test results. - Kill processes on cancel + Terminate processes on cancel - If true, running test executables are actively killed if the test execution is canceled. Note that killing a test process might have all kinds of side effects; in particular, Google Test will not be able to perform any shutdown tasks. + If true, running test executables are actively terminated if the test execution is canceled. Note that terminating a test process might have all kinds of side effects; in particular, Google Test will not be able to perform any shutdown tasks. Maximum number of threads @@ -403,7 +403,7 @@ Google Test option: {0} Parse debug symbol information for test executables to obtain source location information and traits (defined via the macros in GTA_Traits.h). -If this is set to false step 2 of traits discovery will be left out and only traits regexes will be effective. +If this is set to false, step 2 of traits discovery will be left out and only traits regexes will be effective. PATH extension @@ -456,8 +456,8 @@ Google Test option: {2} If non-empty, this regex will be used to discover the Google Test executables containing your tests. -Default regex: - Followed by a regular expression +Default regex: {0} + {0} represents a regular expression Test discovery timeout in s @@ -470,7 +470,7 @@ Default regex: Test name separator - Test names produced by Google Test might contain the character '/', which makes VS cut the name after the '/' if the test explorer window is not wide enough. This option's value, if non-empty, will replace the '/' character to avoid that behavior. Note that '\', ' ', '|', and '-' produce the same behavior ('.', '_', ':', and '::' are known to work - there might be more). Note also that traits regexes are evaluated against the tests' display names (and must thus be consistent with this option). + Test names produced by Google Test might contain the character '/', which makes Visual Studio cut the name after the '/' if the Test Explorer window is not wide enough. This option's value, if non-empty, will replace the '/' character to avoid that behavior. Note that '\', ' ', '|', and '-' produce the same behavior ('.', '_', ':', and '::' are known to work). Note also that traits regexes are evaluated against the tests' display names (and must thus be consistent with this option). Timestamp output @@ -479,7 +479,7 @@ Default regex: If true, a timestamp is added to test and debug output. - Allows to override/add traits for testcases matching a regex. Traits are build up in 3 phases: 1st, traits are assigned to tests according to the 'Traits before' option. 2nd, the tests' traits (defined via the macros in GTA_Traits.h) are added to the tests, overriding traits from phase 1 with new values. 3rd, the 'Traits after' option is evaluated, again in an overriding manner. + Allows to override/add traits for testcases matching a regex. Traits are build up in 3 phases. First, traits are assigned to tests according to the 'Traits before' option. Next, the tests' traits (defined via the macros in GTA_Traits.h) are added to the tests, overriding traits from phase 1 with new values. Finally, the 'Traits after' option is evaluated, again in an overriding manner. Syntax: {0} separates the regex from the traits, the trait's name and value are separated by {1} and each pair of regex and trait is separated by {2}. Example: MySuite\.*{0}Type{1}Small{2}MySuite2\.*|MySuite3\.*{0}Type{1}Medium {0} represents a string used to separate a regex from its traits. {1} represents a string used to separate names and values. {2} represents a string used to separate regexs. diff --git a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs index 3ba7ae5cd..680dc54b9 100644 --- a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs +++ b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs @@ -55,38 +55,6 @@ public class SettingsWrapper private Thread _currentThread; private IGoogleTestAdapterSettings _currentSettings; - static SettingsWrapper() - { - DescriptionOfPlaceholdersForBatches = - string.Format(Resources.DescriptionOfPlaceholdersForBatches, TestDirPlaceholder, ThreadIdPlaceholder) + - "\n" + DescriptionOfSolutionDirPlaceHolder; - - DescriptionOfPlaceholdersForExecutables = - DescriptionOfPlaceholdersForBatches + "\n" + - string.Format(Resources.DescriptionOfPlaceholdersForExecutables, ExecutablePlaceholder) + - "\n" + DescriptionOfExecutableDirPlaceHolder; - - OptionWorkingDirDescription = - string.Format(Resources.OptionWorkingDirDescription, DescriptionOfExecutableDirPlaceHolder, SolutionDirPlaceholder) + - "\n" + DescriptionOfExecutableDirPlaceHolder + "\n" + DescriptionOfSolutionDirPlaceHolder; - - OptionPathExtensionDescription = - string.Format(Resources.OptionPathExtensionDescription, ExecutableDirPlaceholder) + - "\n" + DescriptionOfExecutableDirPlaceHolder; - - OptionAdditionalTestExecutionParamsDescription = - Resources.OptionAdditionalTestExecutionParamsDescription + - "\n" + DescriptionOfPlaceholdersForExecutables; - - OptionBatchForTestSetupDescription = - Resources.OptionBatchForTestSetupDescription + - "\n" + DescriptionOfPlaceholdersForBatches; - - OptionBatchForTestTeardownDescription = - Resources.OptionBatchForTestTeardownDescription + - "\n" + DescriptionOfPlaceholdersForBatches; - } - public SettingsWrapper(IGoogleTestAdapterSettingsContainer settingsContainer) { _settingsContainer = settingsContainer; @@ -230,11 +198,11 @@ public static string ReplacePlaceholders(string userParameters, string executabl } - public static string CategoryTestExecutionName = Resources.CategoryTestExecutionName; - public static string CategoryTraitsName = Resources.CategoryTraitsName; - public static string CategoryRuntimeBehaviorName = Resources.CategoryRuntimeBehaviorName; - public static string CategoryParallelizationName = Resources.CategoryParallelizationName; - public static string CategoryMiscName = Resources.CategoryMiscName; + public static readonly string CategoryTestExecutionName = Resources.CategoryTestExecutionName; + public static readonly string CategoryTraitsName = Resources.CategoryTraitsName; + public static readonly string CategoryRuntimeBehaviorName = Resources.CategoryRuntimeBehaviorName; + public static readonly string CategoryParallelizationName = Resources.CategoryParallelizationName; + public static readonly string CategoryMiscName = Resources.CategoryMiscName; public const string SolutionDirPlaceholder = "$(SolutionDir)"; public const string TestDirPlaceholder = "$(TestDir)"; @@ -242,46 +210,49 @@ public static string ReplacePlaceholders(string userParameters, string executabl public const string ExecutablePlaceholder = "$(Executable)"; public const string ExecutableDirPlaceholder = "$(ExecutableDir)"; - private static string DescriptionOfSolutionDirPlaceHolder = + private static readonly string DescriptionOfSolutionDirPlaceHolder = string.Format(Resources.DescriptionOfSolutionDirPlaceHolder, SolutionDirPlaceholder); - private static string DescriptionOfExecutableDirPlaceHolder = + private static readonly string DescriptionOfExecutableDirPlaceHolder = string.Format(Resources.DescriptionOfExecutableDirPlaceHolder, ExecutableDirPlaceholder); - // Set in constructor because it depends on other strings - private static string DescriptionOfPlaceholdersForBatches; + private static readonly string DescriptionOfPlaceholdersForBatches = + string.Format(Resources.DescriptionOfPlaceholdersForBatches, TestDirPlaceholder, ThreadIdPlaceholder) + + "\n" + DescriptionOfSolutionDirPlaceHolder; - // Set in constructor because it depends on other strings - private static string DescriptionOfPlaceholdersForExecutables; + private static readonly string DescriptionOfPlaceholdersForExecutables = + DescriptionOfPlaceholdersForBatches + "\n" + + string.Format(Resources.DescriptionOfPlaceholdersForExecutables, ExecutablePlaceholder) + + "\n" + DescriptionOfExecutableDirPlaceHolder; #region GeneralOptionsPage public virtual string DebuggingNamedPipeId => _currentSettings.DebuggingNamedPipeId; - public static string OptionUseNewTestExecutionFramework = Resources.OptionUseNewTestExecutionFramework; + public static readonly string OptionUseNewTestExecutionFramework = Resources.OptionUseNewTestExecutionFramework; public const bool OptionUseNewTestExecutionFrameworkDefaultValue = true; - public static string OptionUseNewTestExecutionFrameworkDescription = Resources.OptionUseNewTestExecutionFrameworkDescription; + public static readonly string OptionUseNewTestExecutionFrameworkDescription = Resources.OptionUseNewTestExecutionFrameworkDescription; public virtual bool UseNewTestExecutionFramework => _currentSettings.UseNewTestExecutionFramework ?? OptionUseNewTestExecutionFrameworkDefaultValue; - public static string OptionPrintTestOutput = Resources.OptionPrintTestOutput; + public static readonly string OptionPrintTestOutput = Resources.OptionPrintTestOutput; public const bool OptionPrintTestOutputDefaultValue = false; - public static string OptionPrintTestOutputDescription = Resources.OptionPrintTestOutputDescription; + public static readonly string OptionPrintTestOutputDescription = Resources.OptionPrintTestOutputDescription; public virtual bool PrintTestOutput => _currentSettings.PrintTestOutput ?? OptionPrintTestOutputDefaultValue; - public static string OptionTestDiscoveryRegex = Resources.OptionTestDiscoveryRegex; + public static readonly string OptionTestDiscoveryRegex = Resources.OptionTestDiscoveryRegex; public const string OptionTestDiscoveryRegexDefaultValue = ""; - public static string OptionTestDiscoveryRegexDescription = Resources.OptionTestDiscoveryRegexDescription + TestFinderRegex; + public static readonly string OptionTestDiscoveryRegexDescription = string.Format(Resources.OptionTestDiscoveryRegexDescription, TestFinderRegex); public virtual string TestDiscoveryRegex => _currentSettings.TestDiscoveryRegex ?? OptionTestDiscoveryRegexDefaultValue; - public static string OptionTestDiscoveryTimeoutInSeconds = Resources.OptionTestDiscoveryTimeoutInSeconds; + public static readonly string OptionTestDiscoveryTimeoutInSeconds = Resources.OptionTestDiscoveryTimeoutInSeconds; public const int OptionTestDiscoveryTimeoutInSecondsDefaultValue = 30; - public static string OptionTestDiscoveryTimeoutInSecondsDescription = Resources.OptionTestDiscoveryTimeoutInSecondsDescription; + public static readonly string OptionTestDiscoveryTimeoutInSecondsDescription = Resources.OptionTestDiscoveryTimeoutInSecondsDescription; public virtual int TestDiscoveryTimeoutInSeconds { get @@ -295,18 +266,20 @@ public virtual int TestDiscoveryTimeoutInSeconds { } - public static string OptionWorkingDir = Resources.OptionWorkingDir; + public static readonly string OptionWorkingDir = Resources.OptionWorkingDir; public const string OptionWorkingDirDefaultValue = ExecutableDirPlaceholder; - // Set in constructor because it depends on other strings - public static string OptionWorkingDirDescription; + public static readonly string OptionWorkingDirDescription = + string.Format(Resources.OptionWorkingDirDescription, DescriptionOfExecutableDirPlaceHolder, SolutionDirPlaceholder) + + "\n" + DescriptionOfExecutableDirPlaceHolder + "\n" + DescriptionOfSolutionDirPlaceHolder; public virtual string WorkingDir => _currentSettings.WorkingDir ?? OptionWorkingDirDefaultValue; - public static string OptionPathExtension = Resources.OptionPathExtension; + public static readonly string OptionPathExtension = Resources.OptionPathExtension; public const string OptionPathExtensionDefaultValue = ""; - // Set in constructor because it depends on other strings - public static string OptionPathExtensionDescription; + public static readonly string OptionPathExtensionDescription = + string.Format(Resources.OptionPathExtensionDescription, ExecutableDirPlaceholder) + + "\n" + DescriptionOfExecutableDirPlaceHolder; public virtual string PathExtension => _currentSettings.PathExtension ?? OptionPathExtensionDefaultValue; @@ -315,13 +288,13 @@ public virtual int TestDiscoveryTimeoutInSeconds { public const string TraitsRegexesRegexSeparator = "///"; public const string TraitsRegexesTraitSeparator = ","; public const string OptionTraitsRegexesDefaultValue = ""; - public static string OptionTraitsDescription = string.Format( + public static readonly string OptionTraitsDescription = string.Format( Resources.OptionTraitsDescription, TraitsRegexesRegexSeparator, TraitsRegexesTraitSeparator, TraitsRegexesPairSeparator); - public static string OptionTraitsRegexesBefore = Resources.OptionTraitsRegexesBefore; + public static readonly string OptionTraitsRegexesBefore = Resources.OptionTraitsRegexesBefore; public virtual List TraitsRegexesBefore { @@ -332,7 +305,7 @@ public virtual List TraitsRegexesBefore } } - public static string OptionTraitsRegexesAfter = Resources.OptionTraitsRegexesAfter; + public static readonly string OptionTraitsRegexesAfter = Resources.OptionTraitsRegexesAfter; public virtual List TraitsRegexesAfter { @@ -344,67 +317,70 @@ public virtual List TraitsRegexesAfter } - public static string OptionTestNameSeparator = Resources.OptionTestNameSeparator; + public static readonly string OptionTestNameSeparator = Resources.OptionTestNameSeparator; public const string OptionTestNameSeparatorDefaultValue = ""; - public static string OptionTestNameSeparatorDescription = Resources.OptionTestNameSeparatorDescription; + public static readonly string OptionTestNameSeparatorDescription = Resources.OptionTestNameSeparatorDescription; public virtual string TestNameSeparator => _currentSettings.TestNameSeparator ?? OptionTestNameSeparatorDefaultValue; - public static string OptionParseSymbolInformation = Resources.OptionParseSymbolInformation; + public static readonly string OptionParseSymbolInformation = Resources.OptionParseSymbolInformation; public const bool OptionParseSymbolInformationDefaultValue = true; - public static string OptionParseSymbolInformationDescription = Resources.OptionParseSymbolInformationDescription; + public static readonly string OptionParseSymbolInformationDescription = Resources.OptionParseSymbolInformationDescription; public virtual bool ParseSymbolInformation => _currentSettings.ParseSymbolInformation ?? OptionParseSymbolInformationDefaultValue; - public static string OptionDebugMode = Resources.OptionDebugMode; + public static readonly string OptionDebugMode = Resources.OptionDebugMode; public const bool OptionDebugModeDefaultValue = false; - public static string OptionDebugModeDescription = Resources.OptionDebugModeDescription; + public static readonly string OptionDebugModeDescription = Resources.OptionDebugModeDescription; public virtual bool DebugMode => _currentSettings.DebugMode ?? OptionDebugModeDefaultValue; - public static string OptionTimestampOutput = Resources.OptionTimestampOutput; + public static readonly string OptionTimestampOutput = Resources.OptionTimestampOutput; public const bool OptionTimestampOutputDefaultValue = false; - public static string OptionTimestampOutputDescription = Resources.OptionTimestampOutputDescription; + public static readonly string OptionTimestampOutputDescription = Resources.OptionTimestampOutputDescription; public virtual bool TimestampOutput => _currentSettings.TimestampOutput ?? OptionTimestampOutputDefaultValue; - public static string OptionShowReleaseNotes = Resources.OptionShowReleaseNotes; + public static readonly string OptionShowReleaseNotes = Resources.OptionShowReleaseNotes; public const bool OptionShowReleaseNotesDefaultValue = true; - public static string OptionShowReleaseNotesDescription = Resources.OptionShowReleaseNotesDescription; + public static readonly string OptionShowReleaseNotesDescription = Resources.OptionShowReleaseNotesDescription; public virtual bool ShowReleaseNotes => _currentSettings.ShowReleaseNotes ?? OptionShowReleaseNotesDefaultValue; - public static string OptionAdditionalTestExecutionParams = Resources.OptionAdditionalTestExecutionParams; + public static readonly string OptionAdditionalTestExecutionParams = Resources.OptionAdditionalTestExecutionParams; public const string OptionAdditionalTestExecutionParamsDefaultValue = ""; - // Set in constructor because it depends on other strings - public static string OptionAdditionalTestExecutionParamsDescription; + public static readonly string OptionAdditionalTestExecutionParamsDescription = + Resources.OptionAdditionalTestExecutionParamsDescription + + "\n" + DescriptionOfPlaceholdersForExecutables; public virtual string AdditionalTestExecutionParam => _currentSettings.AdditionalTestExecutionParam ?? OptionAdditionalTestExecutionParamsDefaultValue; - public static string OptionBatchForTestSetup = Resources.OptionBatchForTestSetup; + public static readonly string OptionBatchForTestSetup = Resources.OptionBatchForTestSetup; public const string OptionBatchForTestSetupDefaultValue = ""; - // Set in constructor because it depends on other strings - public static string OptionBatchForTestSetupDescription; + public static readonly string OptionBatchForTestSetupDescription = + Resources.OptionBatchForTestSetupDescription + + "\n" + DescriptionOfPlaceholdersForBatches; public virtual string BatchForTestSetup => _currentSettings.BatchForTestSetup ?? OptionBatchForTestSetupDefaultValue; - public static string OptionBatchForTestTeardown = Resources.OptionBatchForTestTeardown; + public static readonly string OptionBatchForTestTeardown = Resources.OptionBatchForTestTeardown; public const string OptionBatchForTestTeardownDefaultValue = ""; - // Set in constructor because it depends on other strings - public static string OptionBatchForTestTeardownDescription; + public static readonly string OptionBatchForTestTeardownDescription = + Resources.OptionBatchForTestTeardownDescription + + "\n" + DescriptionOfPlaceholdersForBatches; public virtual string BatchForTestTeardown => _currentSettings.BatchForTestTeardown ?? OptionBatchForTestTeardownDefaultValue; - public static string OptionKillProcessesOnCancel = Resources.OptionKillProcessesOnCancel; + public static readonly string OptionKillProcessesOnCancel = Resources.OptionKillProcessesOnCancel; public const bool OptionKillProcessesOnCancelDefaultValue = false; - public static string OptionKillProcessesOnCancelDescription = Resources.OptionKillProcessesOnCancelDescription; + public static readonly string OptionKillProcessesOnCancelDescription = Resources.OptionKillProcessesOnCancelDescription; public virtual bool KillProcessesOnCancel => _currentSettings.KillProcessesOnCancel ?? OptionKillProcessesOnCancelDefaultValue; @@ -412,16 +388,16 @@ public virtual List TraitsRegexesAfter #region ParallelizationOptionsPage - public static string OptionEnableParallelTestExecution = Resources.OptionEnableParallelTestExecution; + public static readonly string OptionEnableParallelTestExecution = Resources.OptionEnableParallelTestExecution; public const bool OptionEnableParallelTestExecutionDefaultValue = false; - public static string OptionEnableParallelTestExecutionDescription = Resources.OptionEnableParallelTestExecutionDescription; + public static readonly string OptionEnableParallelTestExecutionDescription = Resources.OptionEnableParallelTestExecutionDescription; public virtual bool ParallelTestExecution => _currentSettings.ParallelTestExecution ?? OptionEnableParallelTestExecutionDefaultValue; - public static string OptionMaxNrOfThreads = Resources.OptionMaxNrOfThreads; + public static readonly string OptionMaxNrOfThreads = Resources.OptionMaxNrOfThreads; public const int OptionMaxNrOfThreadsDefaultValue = 0; - public static string OptionMaxNrOfThreadsDescription = Resources.OptionMaxNrOfThreadsDescription; + public static readonly string OptionMaxNrOfThreadsDescription = Resources.OptionMaxNrOfThreadsDescription; public virtual int MaxNrOfThreads { @@ -440,33 +416,33 @@ public virtual int MaxNrOfThreads #region GoogleTestOptionsPage - public static string OptionCatchExceptions = Resources.OptionCatchExceptions; + public static readonly string OptionCatchExceptions = Resources.OptionCatchExceptions; public const bool OptionCatchExceptionsDefaultValue = true; - public static string OptionCatchExceptionsDescription = + public static readonly string OptionCatchExceptionsDescription = string.Format(Resources.OptionCatchExceptionsDescription, GoogleTestConstants.CatchExceptions); public virtual bool CatchExceptions => _currentSettings.CatchExceptions ?? OptionCatchExceptionsDefaultValue; - public static string OptionBreakOnFailure = Resources.OptionBreakOnFailure; + public static readonly string OptionBreakOnFailure = Resources.OptionBreakOnFailure; public const bool OptionBreakOnFailureDefaultValue = false; - public static string OptionBreakOnFailureDescription = + public static readonly string OptionBreakOnFailureDescription = string.Format(Resources.OptionBreakOnFailureDescription, GoogleTestConstants.BreakOnFailure); public virtual bool BreakOnFailure => _currentSettings.BreakOnFailure ?? OptionBreakOnFailureDefaultValue; - public static string OptionRunDisabledTests = Resources.OptionRunDisabledTests; + public static readonly string OptionRunDisabledTests = Resources.OptionRunDisabledTests; public const bool OptionRunDisabledTestsDefaultValue = false; - public static string OptionRunDisabledTestsDescription = + public static readonly string OptionRunDisabledTestsDescription = string.Format(Resources.OptionRunDisabledTestsDescription, GoogleTestConstants.AlsoRunDisabledTestsOption); public virtual bool RunDisabledTests => _currentSettings.RunDisabledTests ?? OptionRunDisabledTestsDefaultValue; - public static string OptionNrOfTestRepetitions = Resources.OptionNrOfTestRepetitions; + public static readonly string OptionNrOfTestRepetitions = Resources.OptionNrOfTestRepetitions; public const int OptionNrOfTestRepetitionsDefaultValue = 1; - public static string OptionNrOfTestRepetitionsDescription = + public static readonly string OptionNrOfTestRepetitionsDescription = string.Format(Resources.OptionNrOfTestRepetitionsDescription, GoogleTestConstants.NrOfRepetitionsOption); public virtual int NrOfTestRepetitions @@ -483,17 +459,17 @@ public virtual int NrOfTestRepetitions } - public static string OptionShuffleTests = Resources.OptionShuffleTests; + public static readonly string OptionShuffleTests = Resources.OptionShuffleTests; public const bool OptionShuffleTestsDefaultValue = false; - public static string OptionShuffleTestsDescription = + public static readonly string OptionShuffleTestsDescription = string.Format(Resources.OptionShuffleTestsDescription, GoogleTestConstants.ShuffleTestsOption); public virtual bool ShuffleTests => _currentSettings.ShuffleTests ?? OptionShuffleTestsDefaultValue; - public static string OptionShuffleTestsSeed = Resources.OptionShuffleTestsSeed; + public static readonly string OptionShuffleTestsSeed = Resources.OptionShuffleTestsSeed; public const int OptionShuffleTestsSeedDefaultValue = GoogleTestConstants.ShuffleTestsSeedDefaultValue; - public static string OptionShuffleTestsSeedDescription = string.Format( + public static readonly string OptionShuffleTestsSeedDescription = string.Format( Resources.OptionShuffleTestsSeedDescription, GoogleTestConstants.ShuffleTestsSeedMaxValueAsString, Resources.OptionShuffleTests, diff --git a/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs b/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs index f92de9a1d..1e32e64bf 100644 --- a/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs +++ b/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs @@ -16,7 +16,7 @@ public class StandardOutputTestResultParser public const string Failed = "[ FAILED ]"; public const string Passed = "[ OK ]"; - public static string CrashText = Resources.CrashText; + public static readonly string CrashText = Resources.CrashText; /// /// 1000 ticks = 0.1ms to make sure VS shows "<1ms" diff --git a/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx b/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx index b7433bf70..c8e034b88 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx +++ b/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx @@ -133,8 +133,10 @@ Parallelization + The name of page of options Google Test + The name of page of options \ No newline at end of file From 1f8ee414c6ceb5d1c1de030c4ab930a1c6f94907 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Fri, 15 Sep 2017 13:28:26 -0700 Subject: [PATCH 21/96] Clarify Google Test localization --- GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx b/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx index c8e034b88..d35349059 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx +++ b/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx @@ -137,6 +137,6 @@ Google Test - The name of page of options + The name of page of options. Google Test is the name of a library and should not be localized. \ No newline at end of file From 9b1f7affe576a1c26e5a07ecd7674461c0afd8e6 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Fri, 15 Sep 2017 16:33:39 -0700 Subject: [PATCH 22/96] Address FxCop globalization rules --- .../Core/TestCases/NewTestCaseResolver.cs | 4 +-- .../TestCases/StreamingListTestsParser.cs | 8 +++-- .../Core/TestCases/TestCaseFactory.cs | 4 +-- .../Core/TestResults/ErrorMessageParser.cs | 6 ++-- .../StandardOutputTestResultParser.cs | 6 ++-- GoogleTestAdapter/DiaResolver/DiaFactory.cs | 2 +- .../NewProjectWizard/WizardImplementation.cs | 23 ++++++++++++-- .../TestAdapter/Framework/VsVersion.cs | 11 +++---- Tools/GoogleTestAdapter.FxCop | 30 +++++++++++++++++++ 9 files changed, 73 insertions(+), 21 deletions(-) diff --git a/GoogleTestAdapter/Core/TestCases/NewTestCaseResolver.cs b/GoogleTestAdapter/Core/TestCases/NewTestCaseResolver.cs index 9a937c24a..8d61e29b5 100644 --- a/GoogleTestAdapter/Core/TestCases/NewTestCaseResolver.cs +++ b/GoogleTestAdapter/Core/TestCases/NewTestCaseResolver.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 9/2017. using System; using System.Collections.Generic; @@ -106,7 +106,7 @@ public static List GetTraits(SourceFileLocation nativeSymbol, IEnumerable // ReSharper disable once LoopCanBeConvertedToQuery foreach (SourceFileLocation nativeTraitSymbol in allTraitSymbols) { - if (nativeSymbol.Symbol.StartsWith(nativeTraitSymbol.TestClassSignature)) + if (nativeSymbol.Symbol.StartsWith(nativeTraitSymbol.TestClassSignature, StringComparison.Ordinal)) { int lengthOfSerializedTrait = nativeTraitSymbol.Symbol.Length - nativeTraitSymbol.IndexOfSerializedTrait - TraitAppendix.Length; string serializedTrait = nativeTraitSymbol.Symbol.Substring(nativeTraitSymbol.IndexOfSerializedTrait, lengthOfSerializedTrait); diff --git a/GoogleTestAdapter/Core/TestCases/StreamingListTestsParser.cs b/GoogleTestAdapter/Core/TestCases/StreamingListTestsParser.cs index 2acaa0c4d..53ece6249 100644 --- a/GoogleTestAdapter/Core/TestCases/StreamingListTestsParser.cs +++ b/GoogleTestAdapter/Core/TestCases/StreamingListTestsParser.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 9/2017. + +using System; using System.Text.RegularExpressions; namespace GoogleTestAdapter.TestCases @@ -30,7 +32,7 @@ public class TestCaseDescriptorCreatedEventArgs : EventArgs public void ReportLine(string line) { string trimmedLine = line.Trim('.', '\n', '\r'); - if (trimmedLine.StartsWith(" ")) + if (trimmedLine.StartsWith(" ", StringComparison.Ordinal)) { TestCaseDescriptor descriptor = CreateDescriptor(_currentSuite, trimmedLine.Substring(2)); TestCaseDescriptorCreated?.Invoke(this, @@ -86,7 +88,7 @@ private static string GetDisplayName(string fullyQalifiedName, string typeParam, private static string GetEnclosedTypeParam(string typeParam) { - if (typeParam.EndsWith(">")) + if (typeParam.EndsWith(">", StringComparison.Ordinal)) { typeParam += " "; } diff --git a/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs b/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs index ca2fdc79a..18d09a126 100644 --- a/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs +++ b/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 9/2017. using System; using System.Collections.Generic; @@ -249,7 +249,7 @@ private TestCase CreateTestCase(TestCaseDescriptor descriptor, TestCaseLocation internal static string StripTestSymbolNamespace(string symbol) { var suffixLength = GoogleTestConstants.TestBodySignature.Length; - var namespaceEnd = symbol.LastIndexOf("::", symbol.Length - suffixLength - 1); + var namespaceEnd = symbol.LastIndexOf("::", symbol.Length - suffixLength - 1, StringComparison.Ordinal); var nameStart = namespaceEnd >= 0 ? namespaceEnd + 2 : 0; return symbol.Substring(nameStart); } diff --git a/GoogleTestAdapter/Core/TestResults/ErrorMessageParser.cs b/GoogleTestAdapter/Core/TestResults/ErrorMessageParser.cs index d981355aa..fd4f6664d 100644 --- a/GoogleTestAdapter/Core/TestResults/ErrorMessageParser.cs +++ b/GoogleTestAdapter/Core/TestResults/ErrorMessageParser.cs @@ -1,4 +1,6 @@ -using System; +// This file has been modified by Microsoft on 9/2017. + +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -68,7 +70,7 @@ public void Parse() if (_outputBeforeFirstFailure != "") { - if (!_outputBeforeFirstFailure.EndsWith("\n") && !_outputBeforeFirstFailure.EndsWith("\r\n")) + if (!_outputBeforeFirstFailure.EndsWith("\n", StringComparison.Ordinal) && !_outputBeforeFirstFailure.EndsWith("\r\n", StringComparison.Ordinal)) _outputBeforeFirstFailure += "\n"; ErrorMessage = $"{_outputBeforeFirstFailure}{ErrorMessage}"; } diff --git a/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs b/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs index 1e32e64bf..c3d4af2a6 100644 --- a/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs +++ b/GoogleTestAdapter/Core/TestResults/StandardOutputTestResultParser.cs @@ -201,17 +201,17 @@ public static TestCase FindTestcase(string qualifiedTestname, IList te public static bool IsRunLine(string line) { - return line.StartsWith(Run); + return line.StartsWith(Run, StringComparison.Ordinal); } public static bool IsPassedLine(string line) { - return line.StartsWith(Passed); + return line.StartsWith(Passed, StringComparison.Ordinal); } public static bool IsFailedLine(string line) { - return line.StartsWith(Failed); + return line.StartsWith(Failed, StringComparison.Ordinal); } public static string RemovePrefix(string line) diff --git a/GoogleTestAdapter/DiaResolver/DiaFactory.cs b/GoogleTestAdapter/DiaResolver/DiaFactory.cs index 4e8753e8f..4f4f453d2 100644 --- a/GoogleTestAdapter/DiaResolver/DiaFactory.cs +++ b/GoogleTestAdapter/DiaResolver/DiaFactory.cs @@ -48,7 +48,7 @@ private static bool Is32Bit() return IntPtr.Size == 4; } - [DllImport("Kernel32.dll")] + [DllImport("Kernel32.dll", CharSet = CharSet.Unicode)] private static extern IntPtr LoadLibrary(string path); [DllImport(DiaDll, ExactSpelling = true, PreserveSig = false)] diff --git a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs index daf9ce783..4857a8966 100644 --- a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs +++ b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs @@ -8,6 +8,7 @@ using NewProjectWizard.Properties; using System; using System.Collections.Generic; +using System.Globalization; using System.IO; using System.Linq; using System.Reflection; @@ -129,7 +130,7 @@ public void RunStarted(object automationObject, } catch (Exception) { - MessageBox.Show(Resources.NuGetInteropNotFound); + ShowRtlAwareMessageBox(Resources.NuGetInteropNotFound); throw; } @@ -152,7 +153,7 @@ public void RunStarted(object automationObject, if (latestSdk == null) { - MessageBox.Show(Resources.WinSDKNotFound); + ShowRtlAwareMessageBox(Resources.WinSDKNotFound); throw new WizardCancelledException(Resources.WinSDKNotFound); } @@ -168,7 +169,7 @@ public void RunStarted(object automationObject, if (latestPlatform == null) { - MessageBox.Show(Resources.WinSDKNotFound); + ShowRtlAwareMessageBox(Resources.WinSDKNotFound); throw new WizardCancelledException(Resources.WinSDKNotFound); } @@ -199,6 +200,22 @@ public bool ShouldAddProjectItem(string filePath) } #endregion + private void ShowRtlAwareMessageBox(string text) + { + MessageBoxOptions options = 0; + if (CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft) + { + options |= MessageBoxOptions.RtlReading | MessageBoxOptions.RightAlign; + } + MessageBox.Show( + text, + Resources.WizardTitle, + MessageBoxButtons.OK, + MessageBoxIcon.Error, + MessageBoxDefaultButton.Button1, + options); + } + private static IEnumerable GetAllPlatformSdks() { IEnumerable platformSdks = ToolLocationHelper.GetTargetPlatformSdks(); diff --git a/GoogleTestAdapter/TestAdapter/Framework/VsVersion.cs b/GoogleTestAdapter/TestAdapter/Framework/VsVersion.cs index 2a2b6b7d5..f0085cea1 100644 --- a/GoogleTestAdapter/TestAdapter/Framework/VsVersion.cs +++ b/GoogleTestAdapter/TestAdapter/Framework/VsVersion.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 9/2017. using System; using System.Diagnostics; @@ -8,6 +8,7 @@ using GoogleTestAdapter.Common; using GoogleTestAdapter.TestAdapter.Helpers; using Process = System.Diagnostics.Process; +using System.Globalization; namespace GoogleTestAdapter.TestAdapter.Framework { @@ -97,12 +98,12 @@ private static VsVersion GetVsVersionFromProcess() private static Process FindVsOrVsTestConsoleExe() { var process = Process.GetCurrentProcess(); - string executable = Path.GetFileName(process.MainModule.FileName).Trim().ToLower(); - while (executable != null && executable != "devenv.exe" && executable != "vstest.console.exe") + string executable = Path.GetFileName(process.MainModule.FileName).Trim().ToUpperInvariant(); + while (executable != null && executable != "DEVENV.EXE" && executable != "VSTEST.CONSOLE.EXE") { process = ParentProcessUtils.GetParentProcess(process.Id); - executable = process != null - ? Path.GetFileName(process.MainModule.FileName).Trim().ToLower() + executable = process != null + ? Path.GetFileName(process.MainModule.FileName).Trim().ToUpperInvariant() : null; } return process; diff --git a/Tools/GoogleTestAdapter.FxCop b/Tools/GoogleTestAdapter.FxCop index cccecd78f..97c9d99f8 100644 --- a/Tools/GoogleTestAdapter.FxCop +++ b/Tools/GoogleTestAdapter.FxCop @@ -44,6 +44,7 @@ + @@ -323,6 +324,15 @@ + + + + + NewProjectWizard.Properties + + + + @@ -337,6 +347,15 @@ + + + + + XamlGeneratedNamespace + + + + @@ -345,9 +364,20 @@ + + Replace the generic method {0} called in {1} with a generic method that does not require JIT compilation at runtime for precompiled assemblies. If this is not an precompiled assembly this message should be suppressed or this rule should be disabled. + Redefine the types in namespace '{0}' in the Microsoft or System namespace. Public types that will never ship externally can be defined in the MS namespace. Consider disabling this rule when analyzing code that does not ship externally. + + Because the behavior of {0} could vary based on the current user's locale settings, replace this call in {1} with a call to {2}. If the result of {2} will be based on input from the user, specify {3} as the 'IFormatProvider' parameter. Otherwise, if the result will based on input stored and accessed by software, such as when it is loaded from disk or from a database, specify {4}. + Because the behavior of {0} could vary based on the current user's locale settings, replace this call in {1} with a call to {2}. If the result of {2} will be displayed to the user, specify {3} as the 'IFormatProvider' parameter. Otherwise, if the result will be stored and accessed by software, such as when it is persisted to disk or to a database, specify {4}. + + + To reduce security risk, marshal field {0} as Unicode, by setting StructLayout.CharSet on {1} to CharSet.Unicode, or by explicitly marshaling the field as UnmanagedType.LPWStr. If you need to marshal this string as ANSI or system-dependent, specify MarshalAs explicitly, use the BestFitMapping attribute to turn best-fit mapping off, and for added security, to turn ThrowOnUnmappableChar on. + To reduce security risk, marshal parameter {0} as Unicode, by setting DllImport.CharSet to CharSet.Unicode, or by explicitly marshaling the parameter as UnmanagedType.LPWStr. If you need to marshal this string as ANSI or system-dependent, set BestFitMapping=false; for added security, also set ThrowOnUnmappableChar=true. + From 427476fabcdcd569b1c6a43480a3d51c01eecb92 Mon Sep 17 00:00:00 2001 From: csigs Date: Tue, 19 Sep 2017 19:38:13 +0000 Subject: [PATCH 23/96] LEGO: check in for dev15loc to temporary branch. --- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../CHS/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../CHS/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/CHS/NewProjectWizard.dll.lcl | 14 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../CHT/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../CHT/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/CHT/NewProjectWizard.dll.lcl | 14 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../CSY/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../CSY/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/CSY/NewProjectWizard.dll.lcl | 14 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../DEU/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../DEU/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/DEU/NewProjectWizard.dll.lcl | 14 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../ESN/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../ESN/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/ESN/NewProjectWizard.dll.lcl | 14 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../FRA/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../FRA/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/FRA/NewProjectWizard.dll.lcl | 14 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../ITA/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../ITA/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/ITA/NewProjectWizard.dll.lcl | 14 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../JPN/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../JPN/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/JPN/NewProjectWizard.dll.lcl | 14 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../KOR/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../KOR/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/KOR/NewProjectWizard.dll.lcl | 14 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../PLK/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../PLK/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/PLK/NewProjectWizard.dll.lcl | 14 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../PTB/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../PTB/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/PTB/NewProjectWizard.dll.lcl | 14 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../RUS/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../RUS/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/RUS/NewProjectWizard.dll.lcl | 14 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 14 +- loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl | 221 +----------------- .../TRK/GoogleTestAdapter.DiaResolver.dll.lcl | 23 +- .../TRK/GoogleTestAdapter.TestAdapter.dll.lcl | 83 +------ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/TRK/NewProjectWizard.dll.lcl | 14 +- 78 files changed, 585 insertions(+), 4173 deletions(-) diff --git a/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl index 0fcb8162a..6dcae528e 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl index 9838b619d..b973d6518 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl index 9fd6af8d3..0c61072aa 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl index 40505ca5a..0c211218b 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index ce451cbd3..8a35fbd87 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/CHS/NewProjectWizard.dll.lcl b/loc/lcl/CHS/NewProjectWizard.dll.lcl index e9d37cbce..9f3801dee 100644 --- a/loc/lcl/CHS/NewProjectWizard.dll.lcl +++ b/loc/lcl/CHS/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + diff --git a/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl index ce7433481..2907dccd5 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl index 33b45bdb3..f78c1da06 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl index 51d3dcb09..a77b99c00 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl index 4e4785aeb..1fbde33f2 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index b96610ded..3c4e6c58a 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/CHT/NewProjectWizard.dll.lcl b/loc/lcl/CHT/NewProjectWizard.dll.lcl index cfc2636c0..1563c6b84 100644 --- a/loc/lcl/CHT/NewProjectWizard.dll.lcl +++ b/loc/lcl/CHT/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + diff --git a/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl index 81253e9e9..0f8498501 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl index f572cfefe..d2146bb5a 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl index a7e4c31e3..0a8d85b66 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl index 67f2af0b7..ff7e9151a 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 1ef09bd41..143aedbc0 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/CSY/NewProjectWizard.dll.lcl b/loc/lcl/CSY/NewProjectWizard.dll.lcl index fd5d13716..c6c7dfd27 100644 --- a/loc/lcl/CSY/NewProjectWizard.dll.lcl +++ b/loc/lcl/CSY/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl index f8fe6e6dd..dab2b02b1 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl index b1a969ea3..7c70c01da 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl index 9e3defbdc..a46e3b9e9 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl index b19d93ab9..fecabe619 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 19cf4731f..8fe9ba1e9 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/DEU/NewProjectWizard.dll.lcl b/loc/lcl/DEU/NewProjectWizard.dll.lcl index f7afbd98d..f39e03c76 100644 --- a/loc/lcl/DEU/NewProjectWizard.dll.lcl +++ b/loc/lcl/DEU/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl index efdd44853..3a92d12d7 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl index 0c4fdd219..d2db0e186 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl index 393d2e0b9..aff21034d 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl index 2e105df40..9b3ba8524 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 0d2a983be..c4737a32e 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/ESN/NewProjectWizard.dll.lcl b/loc/lcl/ESN/NewProjectWizard.dll.lcl index 1152c39d9..6318bb7fa 100644 --- a/loc/lcl/ESN/NewProjectWizard.dll.lcl +++ b/loc/lcl/ESN/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + diff --git a/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl index 8582c59db..645acec6e 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl index d9a9a5261..f3b85624e 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl index f6f388bb1..1350faf8a 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl index 6aae0c724..a666d8fda 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 8235ab491..5ecba8865 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/FRA/NewProjectWizard.dll.lcl b/loc/lcl/FRA/NewProjectWizard.dll.lcl index ea7ea45f5..02788a7fe 100644 --- a/loc/lcl/FRA/NewProjectWizard.dll.lcl +++ b/loc/lcl/FRA/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + diff --git a/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl index 347dd6cd5..7da733e3e 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl index 19a974491..036e4afc3 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl index 943ab8a43..d31a232ae 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl index 02ff82338..b08392889 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 79de303f3..a1d6c026a 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/ITA/NewProjectWizard.dll.lcl b/loc/lcl/ITA/NewProjectWizard.dll.lcl index 63e7572bb..ace36a7c7 100644 --- a/loc/lcl/ITA/NewProjectWizard.dll.lcl +++ b/loc/lcl/ITA/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl index 5629073be..19060d1a3 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl index bcead714b..48cd9e045 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl index c06b89988..d7ae8a33a 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl index 9bd233d58..35045a66f 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index bf5785415..5d934e14d 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/JPN/NewProjectWizard.dll.lcl b/loc/lcl/JPN/NewProjectWizard.dll.lcl index 770787ba8..2d6170092 100644 --- a/loc/lcl/JPN/NewProjectWizard.dll.lcl +++ b/loc/lcl/JPN/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl index 958c3024b..dff88d85a 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl index 70c070e29..c3718ed7e 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl index 62172a34b..da93d446b 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl index 39d5b5c24..bab845c56 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 825a1aa45..2fec7d2ca 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/KOR/NewProjectWizard.dll.lcl b/loc/lcl/KOR/NewProjectWizard.dll.lcl index 26f333cc4..1a67e3eb4 100644 --- a/loc/lcl/KOR/NewProjectWizard.dll.lcl +++ b/loc/lcl/KOR/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + diff --git a/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl index 7900ee48b..22c7af543 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl index d05c6ee66..0143051c3 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl index eb9bb5b63..bab3d5663 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl index d7e3180a3..c55aad293 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 073e0b2f7..4cbda9b65 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/PLK/NewProjectWizard.dll.lcl b/loc/lcl/PLK/NewProjectWizard.dll.lcl index b28e2672c..352e2b4d2 100644 --- a/loc/lcl/PLK/NewProjectWizard.dll.lcl +++ b/loc/lcl/PLK/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + diff --git a/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl index e70ccc984..e8fef4f9d 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl index 81a45f904..fb7513db0 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl index 7755ec067..1eab2ba8d 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl index 6094897b1..6cd2e8da2 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index d6d1f7cf4..aa471ee4f 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/PTB/NewProjectWizard.dll.lcl b/loc/lcl/PTB/NewProjectWizard.dll.lcl index 1f64e5b70..4c2f9d429 100644 --- a/loc/lcl/PTB/NewProjectWizard.dll.lcl +++ b/loc/lcl/PTB/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + diff --git a/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl index 27beb0a06..26faed5ef 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl index 07a13f8df..146509a2f 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl index 27d01a5c7..a4e197c6b 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl index c4a430915..4d5cbc453 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 47dfd17de..af3b419c9 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/RUS/NewProjectWizard.dll.lcl b/loc/lcl/RUS/NewProjectWizard.dll.lcl index b30c3a709..e711f6b65 100644 --- a/loc/lcl/RUS/NewProjectWizard.dll.lcl +++ b/loc/lcl/RUS/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + diff --git a/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl index c80c297fa..bde6da008 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -1,4 +1,4 @@ - + @@ -33,9 +33,6 @@ - - - @@ -59,12 +56,18 @@ + + + + + + @@ -95,6 +98,9 @@ + + + diff --git a/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl index ea09859a2..7b066d720 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,342 +15,228 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -363,9 +249,6 @@ - - - @@ -384,18 +267,12 @@ - - - - - - @@ -408,18 +285,12 @@ - - - >>>>>>>>>>>>>> Output of command '{1} {2}']]> - - - @@ -432,108 +303,72 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -546,99 +381,66 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -657,27 +459,18 @@ - - - - - - - - - @@ -696,18 +489,12 @@ - - - - - - @@ -740,6 +527,9 @@ + + + @@ -770,6 +560,9 @@ + + + diff --git a/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl index a30cb87c1..5b876ce99 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,9 +15,6 @@ - - - @@ -30,36 +27,24 @@ - - - - - - - - - - - - @@ -107,6 +92,9 @@ + + + @@ -137,6 +125,9 @@ + + + diff --git a/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl index d4e3eaa21..12fe34b1f 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl @@ -1,4 +1,4 @@ - + @@ -15,27 +15,18 @@ - - - - - - - - - @@ -48,72 +39,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -138,18 +105,12 @@ - - - - - - @@ -162,18 +123,12 @@ - - - - - - @@ -192,90 +147,60 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -308,6 +233,9 @@ + + + @@ -338,6 +266,9 @@ + + + diff --git a/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 01cce00e7..dcc7b254f 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -1,4 +1,4 @@ - + @@ -101,12 +101,18 @@ + + + + + + @@ -137,6 +143,9 @@ + + + diff --git a/loc/lcl/TRK/NewProjectWizard.dll.lcl b/loc/lcl/TRK/NewProjectWizard.dll.lcl index fec54f53b..9d8e64d13 100644 --- a/loc/lcl/TRK/NewProjectWizard.dll.lcl +++ b/loc/lcl/TRK/NewProjectWizard.dll.lcl @@ -1,4 +1,4 @@ - + @@ -18,9 +18,6 @@ - - - @@ -45,9 +42,6 @@ ]]> - - - @@ -60,9 +54,6 @@ - - - @@ -122,6 +113,9 @@ + + + From 5950ef8e631319f9e42d9db1262170b1bc2bfa16 Mon Sep 17 00:00:00 2001 From: csigs Date: Wed, 20 Sep 2017 19:38:04 +0000 Subject: [PATCH 24/96] LEGO: check in for dev15loc to temporary branch. --- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 ++ loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl | 252 ++++++++++++++++++ .../PTB/GoogleTestAdapter.DiaResolver.dll.lcl | 36 +++ .../PTB/GoogleTestAdapter.TestAdapter.dll.lcl | 105 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 ++ loc/lcl/PTB/NewProjectWizard.dll.lcl | 46 +++- 6 files changed, 482 insertions(+), 2 deletions(-) diff --git a/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl index e8fef4f9d..db041b8e0 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl index fb7513db0..eaa3b7a90 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl @@ -13,486 +13,729 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>> Saída do comando '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> Estatísticas de agendamento <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -515,12 +758,18 @@ + + + + + + @@ -548,6 +797,9 @@ + + + diff --git a/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl index 1eab2ba8d..3745b942b 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,54 +13,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -80,12 +107,18 @@ + + + + + + @@ -113,6 +146,9 @@ + + + diff --git a/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl index 6cd2e8da2..feb85b4d8 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,192 +13,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -221,12 +317,18 @@ + + + + + + @@ -254,6 +356,9 @@ + + + diff --git a/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index aa471ee4f..73fff0b74 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -27,6 +27,9 @@ + + + @@ -36,6 +39,9 @@ + + + @@ -45,6 +51,9 @@ + + + @@ -54,6 +63,9 @@ + + + @@ -63,6 +75,9 @@ + + + @@ -73,12 +88,18 @@ + + + + + + @@ -95,6 +116,9 @@ + + + @@ -131,6 +155,9 @@ + + + diff --git a/loc/lcl/PTB/NewProjectWizard.dll.lcl b/loc/lcl/PTB/NewProjectWizard.dll.lcl index 4c2f9d429..1f2895853 100644 --- a/loc/lcl/PTB/NewProjectWizard.dll.lcl +++ b/loc/lcl/PTB/NewProjectWizard.dll.lcl @@ -16,66 +16,99 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + + @@ -91,13 +124,13 @@ - + - + @@ -122,6 +155,9 @@ + + + @@ -140,6 +176,9 @@ + + + @@ -152,6 +191,9 @@ + + + From a8a7c4bd9d3424c7c7e228afa01dce62e7632037 Mon Sep 17 00:00:00 2001 From: csigs Date: Thu, 21 Sep 2017 01:38:03 +0000 Subject: [PATCH 25/96] LEGO: check in for dev15loc to temporary branch. --- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 ++ loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl | 246 ++++++++++++++++++ .../ITA/GoogleTestAdapter.DiaResolver.dll.lcl | 36 +++ .../ITA/GoogleTestAdapter.TestAdapter.dll.lcl | 105 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 ++ loc/lcl/ITA/NewProjectWizard.dll.lcl | 40 ++- 6 files changed, 470 insertions(+), 2 deletions(-) diff --git a/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl index 7da733e3e..d52063ace 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl index 036e4afc3..ce62f2995 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl @@ -13,12 +13,18 @@ + + + + + + @@ -31,384 +37,576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>> Output del comando '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> Statistiche di pianificazione <<<]]> + + + + + + + + + + + + + + + + + + + @@ -421,78 +619,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -515,12 +752,18 @@ + + + + + + @@ -548,6 +791,9 @@ + + + diff --git a/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl index d31a232ae..67e62e519 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,54 +13,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -80,12 +107,18 @@ + + + + + + @@ -113,6 +146,9 @@ + + + diff --git a/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl index b08392889..f95696efc 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,192 +13,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -221,12 +317,18 @@ + + + + + + @@ -254,6 +356,9 @@ + + + diff --git a/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index a1d6c026a..d6fba7a3a 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -27,6 +27,9 @@ + + + @@ -36,6 +39,9 @@ + + + @@ -45,6 +51,9 @@ + + + @@ -54,6 +63,9 @@ + + + @@ -63,6 +75,9 @@ + + + @@ -73,12 +88,18 @@ + + + + + + @@ -95,6 +116,9 @@ + + + @@ -131,6 +155,9 @@ + + + diff --git a/loc/lcl/ITA/NewProjectWizard.dll.lcl b/loc/lcl/ITA/NewProjectWizard.dll.lcl index ace36a7c7..010d0c38f 100644 --- a/loc/lcl/ITA/NewProjectWizard.dll.lcl +++ b/loc/lcl/ITA/NewProjectWizard.dll.lcl @@ -16,66 +16,99 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + + @@ -91,13 +124,13 @@ - + - + @@ -140,6 +173,9 @@ + + + From 73d4974dd96c8b2fd18d657d34ceed882c3ddf36 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 20 Sep 2017 20:53:31 -0700 Subject: [PATCH 26/96] Add setup components for use with insertion into VS (#45) * add proj/vsix stuff for setup * add swix targets for VS setup build * split swixproj and vsmanproj for building * add gitversioning and packages.config for nuget * add solution name to swixproj so outputpath is correct * import nuget props after common props so we know about the restore location * use the right SolutionName * fix in vsmanproj as well * explicit extensiondir * Update Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr remove double \ --- .../Packaging.TAfGT/Packaging.TAfGT.csproj | 1 + .../source.extension.vsixmanifest | 1 + ...o.VC.Ide.TestAdapterForGoogleTest.swixproj | 44 +++++++++++++++++++ ...Studio.VC.Ide.TestAdapterForGoogleTest.swr | 11 +++++ ....VC.Ide.TestAdapterForGoogleTest.vsmanproj | 21 +++++++++ swix/packages.config | 5 +++ ...o.VC.Ide.TestAdapterForGoogleTest.swixproj | 42 ++++++++++++++++++ ...Studio.VC.Ide.TestAdapterForGoogleTest.swr | 14 ++++++ ....VC.Ide.TestAdapterForGoogleTest.vsmanproj | 24 ++++++++++ 9 files changed, 163 insertions(+) create mode 100644 swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj create mode 100644 swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr create mode 100644 swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj create mode 100644 swix/packages.config create mode 100644 swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj create mode 100644 swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr create mode 100644 swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index 0b68cf812..aea1d8304 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -26,6 +26,7 @@ true true false + true true diff --git a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest index 7eec2d75c..f66f5d3c1 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest +++ b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest @@ -4,6 +4,7 @@ Test Adapter for Google Test Enables Visual Studio's testing tools with unit tests written for Google Test. + Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest https://go.microsoft.com/fwlink/?linkid=848768 use.txt ReleaseNotes.txt diff --git a/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj b/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj new file mode 100644 index 000000000..3bc04440a --- /dev/null +++ b/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj @@ -0,0 +1,44 @@ + + + + neutral + false + Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest + manifest + true + 15.0 + 16.0 + GoogleTestAdapter + + + + + + + $(OutputPath)..\Packaging.TAfGT + + + + + + + + + + + $(PackagePreprocessorDefinitions); + VsixOutDir=$(VsixOutDir); + Version=$(BuildVersion); + VSGeneralVersion=$(VSGeneralVersion); + VSNextGeneralVersion=$(VSNextGeneralVersion); + + + + + + + + + diff --git a/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr b/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr new file mode 100644 index 000000000..8e63ae9af --- /dev/null +++ b/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr @@ -0,0 +1,11 @@ +use vs + +package name=Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest + version=$(Version) + vs.package.type=vsix + vs.package.installSize=22265856 + vs.package.vsixId=GoogleTestAdapterVSIX.8486b54e-5768-482b-b224-7d069ca509d8 + vs.package.extensionDir=[installdir]\Common7\IDE\CommonExtensions\VC\TestAdapterForGoogleTest + +vs.payloads + vs.payload source=$(VsixOutDir)\Packaging.TAfGT.vsix diff --git a/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj b/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj new file mode 100644 index 000000000..6a73ff1d4 --- /dev/null +++ b/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj @@ -0,0 +1,21 @@ + + + + true + true + + + false + GoogleTestAdapter + + + + + + + + + + + \ No newline at end of file diff --git a/swix/packages.config b/swix/packages.config new file mode 100644 index 000000000..263143fe4 --- /dev/null +++ b/swix/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj b/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj new file mode 100644 index 000000000..f3f032461 --- /dev/null +++ b/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj @@ -0,0 +1,42 @@ + + + + + + + neutral + false + Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest + manifest + true + 15.0 + 16.0 + + + + $(OutputPath)..\Packaging.TAfGT + + + + + + + + + + + $(PackagePreprocessorDefinitions); + VsixOutDir=$(VsixOutDir); + Version=$(BuildVersion); + VSGeneralVersion=$(VSGeneralVersion); + VSNextGeneralVersion=$(VSNextGeneralVersion); + + + + + + + + diff --git a/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr b/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr new file mode 100644 index 000000000..5b9f0a956 --- /dev/null +++ b/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr @@ -0,0 +1,14 @@ +use vs + +package name=Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest + version=$(Version) + vs.package.type=vsix + vs.package.installSize=22265856 + vs.package.vsixId=GoogleTestAdapterVSIX.8486b54e-5768-482b-b224-7d069ca509d8 + +vs.payloads + vs.payload source=$(VsixOutDir)\Packaging.TAfGT.vsix + +vs.dependencies + vs.dependency id=Microsoft.VisualStudio.MinShell + version=[$(VSGeneralVersion),$(VSNextGeneralVersion)) diff --git a/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj b/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj new file mode 100644 index 000000000..b50ad5f61 --- /dev/null +++ b/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj @@ -0,0 +1,24 @@ + + + + + + + true + true + + + false + + + + + + + + + + + + \ No newline at end of file From aa370dc8d3c9c3eec1fe5d31b3424a57f4056251 Mon Sep 17 00:00:00 2001 From: csigs Date: Thu, 21 Sep 2017 07:38:07 +0000 Subject: [PATCH 27/96] LEGO: check in for dev15loc to temporary branch. --- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 ++ loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl | 252 ++++++++++++++++++ .../CHS/GoogleTestAdapter.DiaResolver.dll.lcl | 36 +++ .../CHS/GoogleTestAdapter.TestAdapter.dll.lcl | 105 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 ++ loc/lcl/CHS/NewProjectWizard.dll.lcl | 46 +++- 6 files changed, 482 insertions(+), 2 deletions(-) diff --git a/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl index 6dcae528e..b911ad45d 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl index b973d6518..4a9a21c07 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl @@ -13,486 +13,729 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>> 命令“{1} {2}”的输出]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> 计划统计信息 <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -515,12 +758,18 @@ + + + + + + @@ -548,6 +797,9 @@ + + + diff --git a/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl index 0c61072aa..c2552f85f 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,54 +13,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -80,12 +107,18 @@ + + + + + + @@ -113,6 +146,9 @@ + + + diff --git a/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl index 0c211218b..05f915983 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,192 +13,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -221,12 +317,18 @@ + + + + + + @@ -254,6 +356,9 @@ + + + diff --git a/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 8a35fbd87..4915237fc 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -27,6 +27,9 @@ + + + @@ -36,6 +39,9 @@ + + + @@ -45,6 +51,9 @@ + + + @@ -54,6 +63,9 @@ + + + @@ -63,6 +75,9 @@ + + + @@ -73,12 +88,18 @@ + + + + + + @@ -95,6 +116,9 @@ + + + @@ -131,6 +155,9 @@ + + + diff --git a/loc/lcl/CHS/NewProjectWizard.dll.lcl b/loc/lcl/CHS/NewProjectWizard.dll.lcl index 9f3801dee..bab3e1b50 100644 --- a/loc/lcl/CHS/NewProjectWizard.dll.lcl +++ b/loc/lcl/CHS/NewProjectWizard.dll.lcl @@ -16,66 +16,99 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + + @@ -91,13 +124,13 @@ - + - + @@ -122,6 +155,9 @@ + + + @@ -140,6 +176,9 @@ + + + @@ -152,6 +191,9 @@ + + + From 2265579e8f389b47373c59dfc46fe5aa21f3a3bd Mon Sep 17 00:00:00 2001 From: csigs Date: Thu, 21 Sep 2017 13:38:10 +0000 Subject: [PATCH 28/96] LEGO: check in for dev15loc to temporary branch. --- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 ++ loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl | 252 ++++++++++++++++++ .../CHT/GoogleTestAdapter.DiaResolver.dll.lcl | 36 +++ .../CHT/GoogleTestAdapter.TestAdapter.dll.lcl | 105 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 ++ loc/lcl/CHT/NewProjectWizard.dll.lcl | 46 +++- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 ++ loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl | 252 ++++++++++++++++++ .../JPN/GoogleTestAdapter.DiaResolver.dll.lcl | 36 +++ .../JPN/GoogleTestAdapter.TestAdapter.dll.lcl | 105 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 ++ loc/lcl/JPN/NewProjectWizard.dll.lcl | 46 +++- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 ++ loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl | 252 ++++++++++++++++++ .../KOR/GoogleTestAdapter.DiaResolver.dll.lcl | 36 +++ .../KOR/GoogleTestAdapter.TestAdapter.dll.lcl | 105 ++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 ++ loc/lcl/KOR/NewProjectWizard.dll.lcl | 46 +++- 18 files changed, 1446 insertions(+), 6 deletions(-) diff --git a/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl index 2907dccd5..80bb88f0f 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl index f78c1da06..1b6ae6240 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl @@ -13,486 +13,729 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>> 命令 '{1} {2}' 的輸出]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> 正在排程統計資料 <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -515,12 +758,18 @@ + + + + + + @@ -548,6 +797,9 @@ + + + diff --git a/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl index a77b99c00..453752a6e 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,54 +13,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -80,12 +107,18 @@ + + + + + + @@ -113,6 +146,9 @@ + + + diff --git a/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl index 1fbde33f2..dac72533c 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,192 +13,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -221,12 +317,18 @@ + + + + + + @@ -254,6 +356,9 @@ + + + diff --git a/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 3c4e6c58a..34a26ce0a 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -27,6 +27,9 @@ + + + @@ -36,6 +39,9 @@ + + + @@ -45,6 +51,9 @@ + + + @@ -54,6 +63,9 @@ + + + @@ -63,6 +75,9 @@ + + + @@ -73,12 +88,18 @@ + + + + + + @@ -95,6 +116,9 @@ + + + @@ -131,6 +155,9 @@ + + + diff --git a/loc/lcl/CHT/NewProjectWizard.dll.lcl b/loc/lcl/CHT/NewProjectWizard.dll.lcl index 1563c6b84..18ff31b58 100644 --- a/loc/lcl/CHT/NewProjectWizard.dll.lcl +++ b/loc/lcl/CHT/NewProjectWizard.dll.lcl @@ -16,66 +16,99 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + + @@ -91,13 +124,13 @@ - + - + @@ -122,6 +155,9 @@ + + + @@ -140,6 +176,9 @@ + + + @@ -152,6 +191,9 @@ + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl index 19060d1a3..b24950c64 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl index 48cd9e045..8d5d1a230 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl @@ -13,486 +13,729 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>>コマンドの出力 '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> スケジュールの統計情報 <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -515,12 +758,18 @@ + + + + + + @@ -548,6 +797,9 @@ + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl index d7ae8a33a..09347ab71 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,54 +13,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -80,12 +107,18 @@ + + + + + + @@ -113,6 +146,9 @@ + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl index 35045a66f..af81a4b6d 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,192 +13,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -221,12 +317,18 @@ + + + + + + @@ -254,6 +356,9 @@ + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 5d934e14d..e43ffd274 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -27,6 +27,9 @@ + + + @@ -36,6 +39,9 @@ + + + @@ -45,6 +51,9 @@ + + + @@ -54,6 +63,9 @@ + + + @@ -63,6 +75,9 @@ + + + @@ -73,12 +88,18 @@ + + + + + + @@ -95,6 +116,9 @@ + + + @@ -131,6 +155,9 @@ + + + diff --git a/loc/lcl/JPN/NewProjectWizard.dll.lcl b/loc/lcl/JPN/NewProjectWizard.dll.lcl index 2d6170092..57e900357 100644 --- a/loc/lcl/JPN/NewProjectWizard.dll.lcl +++ b/loc/lcl/JPN/NewProjectWizard.dll.lcl @@ -16,66 +16,99 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + + @@ -91,13 +124,13 @@ - + - + @@ -122,6 +155,9 @@ + + + @@ -140,6 +176,9 @@ + + + @@ -152,6 +191,9 @@ + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl index dff88d85a..9bb58f5a5 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl index c3718ed7e..695839eb4 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl @@ -13,486 +13,729 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>> 명령 출력 '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> 예약 통계 <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -515,12 +758,18 @@ + + + + + + @@ -548,6 +797,9 @@ + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl index da93d446b..207611307 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,54 +13,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -80,12 +107,18 @@ + + + + + + @@ -113,6 +146,9 @@ + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl index bab845c56..3d06ea7ba 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,192 +13,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -221,12 +317,18 @@ + + + + + + @@ -254,6 +356,9 @@ + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 2fec7d2ca..0a4c0b242 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -27,6 +27,9 @@ + + + @@ -36,6 +39,9 @@ + + + @@ -45,6 +51,9 @@ + + + @@ -54,6 +63,9 @@ + + + @@ -63,6 +75,9 @@ + + + @@ -73,12 +88,18 @@ + + + + + + @@ -95,6 +116,9 @@ + + + @@ -131,6 +155,9 @@ + + + diff --git a/loc/lcl/KOR/NewProjectWizard.dll.lcl b/loc/lcl/KOR/NewProjectWizard.dll.lcl index 1a67e3eb4..18b671280 100644 --- a/loc/lcl/KOR/NewProjectWizard.dll.lcl +++ b/loc/lcl/KOR/NewProjectWizard.dll.lcl @@ -16,66 +16,99 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + + @@ -91,13 +124,13 @@ - + - + @@ -122,6 +155,9 @@ + + + @@ -140,6 +176,9 @@ + + + @@ -152,6 +191,9 @@ + + + From 61f191ff11cd1a527c6cd93674bf5d97c16d98d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mendakiewicz?= Date: Thu, 21 Sep 2017 15:52:12 -0700 Subject: [PATCH 29/96] Replace icons (#49) --- GoogleTestAdapter/Resources/Icons/Icon.ico | Bin 40049 -> 64782 bytes .../Resources/Icons/Icon_128.png | Bin 20497 -> 2667 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/GoogleTestAdapter/Resources/Icons/Icon.ico b/GoogleTestAdapter/Resources/Icons/Icon.ico index 80db10f04f6f0cc41a1d0d94aedef0ca629e168e..3f71a88c40dc3d6179ea3c2949cd19de7c916667 100644 GIT binary patch literal 64782 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 literal 40049 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 literal 20497 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 From bc654e2f7cf24223dcd3a3a5973dbd2ef2f686db Mon Sep 17 00:00:00 2001 From: csigs Date: Fri, 22 Sep 2017 13:38:15 +0000 Subject: [PATCH 30/96] LEGO: check in for dev15loc to temporary branch. --- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 + loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl | 624 +++++++++++++++++- .../CSY/GoogleTestAdapter.DiaResolver.dll.lcl | 42 +- .../CSY/GoogleTestAdapter.TestAdapter.dll.lcl | 129 +++- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 51 +- loc/lcl/CSY/NewProjectWizard.dll.lcl | 52 +- loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl | 384 ++++++++++- .../DEU/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +- .../DEU/GoogleTestAdapter.TestAdapter.dll.lcl | 39 +- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +- loc/lcl/DEU/NewProjectWizard.dll.lcl | 22 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 + loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl | 621 ++++++++++++++++- .../ESN/GoogleTestAdapter.DiaResolver.dll.lcl | 39 +- .../ESN/GoogleTestAdapter.TestAdapter.dll.lcl | 129 +++- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 51 +- loc/lcl/ESN/NewProjectWizard.dll.lcl | 52 +- 17 files changed, 2256 insertions(+), 51 deletions(-) diff --git a/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl index 0f8498501..2f794d6f5 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl index d2146bb5a..9ca253ab4 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl @@ -13,486 +13,1095 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>> Výstup příkazu {1} {2}]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> Statistika plánování <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -508,19 +1117,25 @@ - + + + + + + + @@ -535,7 +1150,7 @@ - + @@ -548,6 +1163,9 @@ + + + @@ -568,7 +1186,7 @@ - + diff --git a/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl index 0a8d85b66..6e81f78fd 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,54 +13,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -73,19 +100,25 @@ - + + + + + + + @@ -100,7 +133,7 @@ - + @@ -113,6 +146,9 @@ + + + @@ -133,7 +169,7 @@ - + diff --git a/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl index ff7e9151a..2fbf7fbe9 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,195 +10,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -214,19 +328,25 @@ - + + + + + + + @@ -241,7 +361,7 @@ - + @@ -254,6 +374,9 @@ + + + @@ -274,7 +397,7 @@ - + diff --git a/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 143aedbc0..8a487b4e9 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -27,6 +27,9 @@ + + + @@ -36,6 +39,9 @@ + + + @@ -45,6 +51,9 @@ + + + @@ -54,6 +63,9 @@ + + + @@ -63,6 +75,9 @@ + + + @@ -73,12 +88,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -88,13 +127,16 @@ - + + + + @@ -118,7 +160,7 @@ - + @@ -131,6 +173,9 @@ + + + @@ -151,7 +196,7 @@ - + diff --git a/loc/lcl/CSY/NewProjectWizard.dll.lcl b/loc/lcl/CSY/NewProjectWizard.dll.lcl index c6c7dfd27..83c0ca270 100644 --- a/loc/lcl/CSY/NewProjectWizard.dll.lcl +++ b/loc/lcl/CSY/NewProjectWizard.dll.lcl @@ -16,66 +16,99 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + + @@ -91,13 +124,13 @@ - + - + @@ -106,7 +139,7 @@ - + @@ -122,12 +155,15 @@ + + + - + @@ -140,6 +176,9 @@ + + + @@ -152,12 +191,15 @@ + + + - + diff --git a/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl index 7c70c01da..395fb69ee 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl @@ -52,6 +52,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -94,18 +124,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -127,6 +193,9 @@ + + + @@ -151,6 +220,9 @@ + + + @@ -274,6 +346,300 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -283,6 +649,9 @@ + + + @@ -397,6 +766,9 @@ + + + @@ -436,6 +808,12 @@ + + + + + + @@ -508,7 +886,7 @@ - + @@ -535,7 +913,7 @@ - + @@ -568,7 +946,7 @@ - + diff --git a/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl index a46e3b9e9..89086e1e4 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl @@ -73,13 +73,16 @@ - + + + + @@ -100,7 +103,7 @@ - + @@ -133,7 +136,7 @@ - + diff --git a/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl index fecabe619..82c4ffa0d 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,6 +10,12 @@ + + + + + + @@ -55,6 +61,9 @@ + + + @@ -73,6 +82,9 @@ + + + @@ -100,12 +112,24 @@ + + + + + + + + + + + + @@ -151,6 +175,9 @@ + + + @@ -187,6 +214,9 @@ + + + @@ -199,6 +229,9 @@ + + + @@ -214,7 +247,7 @@ - + @@ -241,7 +274,7 @@ - + @@ -274,7 +307,7 @@ - + diff --git a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 8fe9ba1e9..b76d5b2f5 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -36,6 +36,9 @@ + + + @@ -82,13 +85,31 @@ + + + + + + + + + + + + + + + + + + - + @@ -118,7 +139,7 @@ - + @@ -151,7 +172,7 @@ - + diff --git a/loc/lcl/DEU/NewProjectWizard.dll.lcl b/loc/lcl/DEU/NewProjectWizard.dll.lcl index f39e03c76..c37c68ffd 100644 --- a/loc/lcl/DEU/NewProjectWizard.dll.lcl +++ b/loc/lcl/DEU/NewProjectWizard.dll.lcl @@ -52,6 +52,9 @@ + + + @@ -76,6 +79,9 @@ + + + @@ -91,13 +97,13 @@ - + - + @@ -106,7 +112,7 @@ - + @@ -122,12 +128,15 @@ + + + - + @@ -152,12 +161,15 @@ + + + - + diff --git a/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl index 3a92d12d7..edf7731a5 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl index d2db0e186..201443b28 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl @@ -13,72 +13,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -91,408 +157,948 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>> Salida del comando "{1} {2}"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> Estadísticas de programación <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -508,19 +1114,25 @@ - + + + + + + + @@ -535,7 +1147,7 @@ - + @@ -548,6 +1160,9 @@ + + + @@ -568,7 +1183,7 @@ - + diff --git a/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl index aff21034d..90f19a27d 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,42 +13,63 @@ + + + + + + + + + + + + + + + + + + + + + @@ -61,6 +82,9 @@ + + + @@ -73,19 +97,25 @@ - + + + + + + + @@ -100,7 +130,7 @@ - + @@ -113,6 +143,9 @@ + + + @@ -133,7 +166,7 @@ - + diff --git a/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl index 9b3ba8524..3e6fbc7dd 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,195 +10,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -214,19 +328,25 @@ - + + + + + + + @@ -241,7 +361,7 @@ - + @@ -254,6 +374,9 @@ + + + @@ -274,7 +397,7 @@ - + diff --git a/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index c4737a32e..d537f7553 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -27,6 +27,9 @@ + + + @@ -36,6 +39,9 @@ + + + @@ -45,6 +51,9 @@ + + + @@ -54,6 +63,9 @@ + + + @@ -63,6 +75,9 @@ + + + @@ -73,12 +88,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -88,13 +127,16 @@ - + + + + @@ -118,7 +160,7 @@ - + @@ -131,6 +173,9 @@ + + + @@ -151,7 +196,7 @@ - + diff --git a/loc/lcl/ESN/NewProjectWizard.dll.lcl b/loc/lcl/ESN/NewProjectWizard.dll.lcl index 6318bb7fa..9c0403a09 100644 --- a/loc/lcl/ESN/NewProjectWizard.dll.lcl +++ b/loc/lcl/ESN/NewProjectWizard.dll.lcl @@ -16,66 +16,99 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + + @@ -91,13 +124,13 @@ - + - + @@ -106,7 +139,7 @@ - + @@ -122,12 +155,15 @@ + + + - + @@ -140,6 +176,9 @@ + + + @@ -152,12 +191,15 @@ + + + - + From d43227e5fbb9b92833c65fec54ca8f1e6ebdf53c Mon Sep 17 00:00:00 2001 From: csigs Date: Fri, 22 Sep 2017 19:38:04 +0000 Subject: [PATCH 31/96] LEGO: check in for dev15loc to temporary branch. --- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 + loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl | 240 +++++++ .../DEU/GoogleTestAdapter.DiaResolver.dll.lcl | 33 + .../DEU/GoogleTestAdapter.TestAdapter.dll.lcl | 90 +++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 24 + loc/lcl/DEU/NewProjectWizard.dll.lcl | 30 + loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl | 3 + .../ESN/GoogleTestAdapter.DiaResolver.dll.lcl | 3 + .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 + loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl | 624 +++++++++++++++++- .../FRA/GoogleTestAdapter.DiaResolver.dll.lcl | 42 +- .../FRA/GoogleTestAdapter.TestAdapter.dll.lcl | 129 +++- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 51 +- loc/lcl/FRA/NewProjectWizard.dll.lcl | 52 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 + loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl | 624 +++++++++++++++++- .../RUS/GoogleTestAdapter.DiaResolver.dll.lcl | 42 +- .../RUS/GoogleTestAdapter.TestAdapter.dll.lcl | 129 +++- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 51 +- loc/lcl/RUS/NewProjectWizard.dll.lcl | 52 +- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 + loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl | 624 +++++++++++++++++- .../TRK/GoogleTestAdapter.DiaResolver.dll.lcl | 42 +- .../TRK/GoogleTestAdapter.TestAdapter.dll.lcl | 129 +++- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 51 +- loc/lcl/TRK/NewProjectWizard.dll.lcl | 52 +- 26 files changed, 3138 insertions(+), 51 deletions(-) diff --git a/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl index dab2b02b1..ab9d11df0 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl index 395fb69ee..11faeb6fb 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl @@ -13,42 +13,63 @@ + + + + + + + + + + + + + + + + + + + + + @@ -85,42 +106,63 @@ + + + + + + + + + + + + + + + + + + + + + @@ -133,6 +175,9 @@ + + + @@ -145,6 +190,9 @@ + + + @@ -175,18 +223,27 @@ + + + + + + + + + @@ -202,18 +259,27 @@ + + + + + + + + + @@ -229,120 +295,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -643,6 +769,9 @@ + + + @@ -658,108 +787,162 @@ >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>> Ausgabe des Befehls "{1} {2}"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> Statistiken werden geplant <<<]]> + + + + + + + + + + @@ -775,36 +958,54 @@ + + + + + + + + + + + + + + + + + + @@ -817,60 +1018,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -893,12 +1124,18 @@ + + + + + + @@ -926,6 +1163,9 @@ + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl index 89086e1e4..1b4acf1ac 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,54 +13,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -89,6 +116,9 @@ + + + @@ -116,6 +146,9 @@ + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl index 82c4ffa0d..2295b46bb 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl @@ -19,42 +19,63 @@ + + + + + + + + + + + + + + + + + + + + + @@ -70,12 +91,18 @@ + + + + + + @@ -91,24 +118,36 @@ + + + + + + + + + + + + @@ -121,6 +160,9 @@ + + + @@ -133,42 +175,63 @@ + + + + + + + + + + + + + + + + + + + + + @@ -184,30 +247,45 @@ + + + + + + + + + + + + + + + @@ -223,6 +301,9 @@ + + + @@ -254,12 +335,18 @@ + + + + + + @@ -287,6 +374,9 @@ + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index b76d5b2f5..a0c2b9ec4 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -27,6 +27,9 @@ + + + @@ -48,6 +51,9 @@ + + + @@ -57,6 +63,9 @@ + + + @@ -66,6 +75,9 @@ + + + @@ -76,12 +88,18 @@ + + + + + + @@ -116,6 +134,9 @@ + + + @@ -152,6 +173,9 @@ + + + diff --git a/loc/lcl/DEU/NewProjectWizard.dll.lcl b/loc/lcl/DEU/NewProjectWizard.dll.lcl index c37c68ffd..0eea0b2f7 100644 --- a/loc/lcl/DEU/NewProjectWizard.dll.lcl +++ b/loc/lcl/DEU/NewProjectWizard.dll.lcl @@ -16,36 +16,54 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + @@ -61,18 +79,27 @@ + + + + + + + + + @@ -149,6 +176,9 @@ + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl index 201443b28..8215804eb 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl @@ -151,6 +151,9 @@ + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl index 90f19a27d..68f538957 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl @@ -76,6 +76,9 @@ + + + diff --git a/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl index 645acec6e..ccb867877 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl index f3b85624e..6ccacefbe 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl @@ -13,486 +13,1095 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>> Sortie de la commande '{1} {2}']]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> Statistiques de planification <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -508,19 +1117,25 @@ - + + + + + + + @@ -535,7 +1150,7 @@ - + @@ -548,6 +1163,9 @@ + + + @@ -568,7 +1186,7 @@ - + diff --git a/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl index 1350faf8a..cf0ab7cc3 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,54 +13,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -73,19 +100,25 @@ - + + + + + + + @@ -100,7 +133,7 @@ - + @@ -113,6 +146,9 @@ + + + @@ -133,7 +169,7 @@ - + diff --git a/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl index a666d8fda..69b8039eb 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,195 +10,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -214,19 +328,25 @@ - + + + + + + + @@ -241,7 +361,7 @@ - + @@ -254,6 +374,9 @@ + + + @@ -274,7 +397,7 @@ - + diff --git a/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 5ecba8865..27e21dcd6 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -27,6 +27,9 @@ + + + @@ -36,6 +39,9 @@ + + + @@ -45,6 +51,9 @@ + + + @@ -54,6 +63,9 @@ + + + @@ -63,6 +75,9 @@ + + + @@ -73,12 +88,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -88,13 +127,16 @@ - + + + + @@ -118,7 +160,7 @@ - + @@ -131,6 +173,9 @@ + + + @@ -151,7 +196,7 @@ - + diff --git a/loc/lcl/FRA/NewProjectWizard.dll.lcl b/loc/lcl/FRA/NewProjectWizard.dll.lcl index 02788a7fe..ec624435e 100644 --- a/loc/lcl/FRA/NewProjectWizard.dll.lcl +++ b/loc/lcl/FRA/NewProjectWizard.dll.lcl @@ -16,66 +16,99 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + + @@ -91,13 +124,13 @@ - + - + @@ -106,7 +139,7 @@ - + @@ -122,12 +155,15 @@ + + + - + @@ -140,6 +176,9 @@ + + + @@ -152,12 +191,15 @@ + + + - + diff --git a/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl index 26faed5ef..7986709e2 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl index 146509a2f..b5c97f708 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl @@ -13,486 +13,1095 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>> Выходные данные команды "{1} {2}"]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> Статистика планирования <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -508,19 +1117,25 @@ - + + + + + + + @@ -535,7 +1150,7 @@ - + @@ -548,6 +1163,9 @@ + + + @@ -568,7 +1186,7 @@ - + diff --git a/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl index a4e197c6b..43ae1774c 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,54 +13,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -73,19 +100,25 @@ - + + + + + + + @@ -100,7 +133,7 @@ - + @@ -113,6 +146,9 @@ + + + @@ -133,7 +169,7 @@ - + diff --git a/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl index 4d5cbc453..c0174f379 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,195 +10,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -214,19 +328,25 @@ - + + + + + + + @@ -241,7 +361,7 @@ - + @@ -254,6 +374,9 @@ + + + @@ -274,7 +397,7 @@ - + diff --git a/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index af3b419c9..8484f7aae 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -27,6 +27,9 @@ + + + @@ -36,6 +39,9 @@ + + + @@ -45,6 +51,9 @@ + + + @@ -54,6 +63,9 @@ + + + @@ -63,6 +75,9 @@ + + + @@ -73,12 +88,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -88,13 +127,16 @@ - + + + + @@ -118,7 +160,7 @@ - + @@ -131,6 +173,9 @@ + + + @@ -151,7 +196,7 @@ - + diff --git a/loc/lcl/RUS/NewProjectWizard.dll.lcl b/loc/lcl/RUS/NewProjectWizard.dll.lcl index e711f6b65..567ac0501 100644 --- a/loc/lcl/RUS/NewProjectWizard.dll.lcl +++ b/loc/lcl/RUS/NewProjectWizard.dll.lcl @@ -16,66 +16,99 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + + @@ -91,13 +124,13 @@ - + - + @@ -106,7 +139,7 @@ - + @@ -122,12 +155,15 @@ + + + - + @@ -140,6 +176,9 @@ + + + @@ -152,12 +191,15 @@ + + + - + diff --git a/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl index bde6da008..51dccaae7 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl index 7b066d720..18039d113 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl @@ -13,486 +13,1095 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>> '{1} {2}' komutunun çıkışı]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> Zamanlama istatistikleri <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -508,19 +1117,25 @@ - + + + + + + + @@ -535,7 +1150,7 @@ - + @@ -548,6 +1163,9 @@ + + + @@ -568,7 +1186,7 @@ - + diff --git a/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl index 5b876ce99..a60067f76 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,54 +13,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -73,19 +100,25 @@ - + + + + + + + @@ -100,7 +133,7 @@ - + @@ -113,6 +146,9 @@ + + + @@ -133,7 +169,7 @@ - + diff --git a/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl index 12fe34b1f..2cca2d370 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,195 +10,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -214,19 +328,25 @@ - + + + + + + + @@ -241,7 +361,7 @@ - + @@ -254,6 +374,9 @@ + + + @@ -274,7 +397,7 @@ - + diff --git a/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index dcc7b254f..ae35a1be7 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -27,6 +27,9 @@ + + + @@ -36,6 +39,9 @@ + + + @@ -45,6 +51,9 @@ + + + @@ -54,6 +63,9 @@ + + + @@ -63,6 +75,9 @@ + + + @@ -73,12 +88,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -88,13 +127,16 @@ - + + + + @@ -118,7 +160,7 @@ - + @@ -131,6 +173,9 @@ + + + @@ -151,7 +196,7 @@ - + diff --git a/loc/lcl/TRK/NewProjectWizard.dll.lcl b/loc/lcl/TRK/NewProjectWizard.dll.lcl index 9d8e64d13..b1d7c0d8e 100644 --- a/loc/lcl/TRK/NewProjectWizard.dll.lcl +++ b/loc/lcl/TRK/NewProjectWizard.dll.lcl @@ -16,66 +16,99 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + + @@ -91,13 +124,13 @@ - + - + @@ -106,7 +139,7 @@ - + @@ -122,12 +155,15 @@ + + + - + @@ -140,6 +176,9 @@ + + + @@ -152,12 +191,15 @@ + + + - + From a148d6335ed0ebd5265e0cec4832a0bde3af6009 Mon Sep 17 00:00:00 2001 From: csigs Date: Mon, 25 Sep 2017 13:38:10 +0000 Subject: [PATCH 32/96] LEGO: check in for dev15loc to temporary branch. --- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 18 + loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl | 624 +++++++++++++++++- .../PLK/GoogleTestAdapter.DiaResolver.dll.lcl | 42 +- .../PLK/GoogleTestAdapter.TestAdapter.dll.lcl | 129 +++- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 53 +- loc/lcl/PLK/NewProjectWizard.dll.lcl | 52 +- 6 files changed, 900 insertions(+), 18 deletions(-) diff --git a/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl index 22c7af543..89a536a80 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -13,24 +13,36 @@ + + + + + + + + + + + + @@ -50,6 +62,9 @@ + + + @@ -86,6 +101,9 @@ + + + diff --git a/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl index 0143051c3..9c8535290 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl @@ -13,486 +13,1095 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >>>>>>>>>>>>>> Output of command '{1} {2}']]> + + >>>>>>>>>>>>>> Dane wyjściowe polecenia „{1} {2}”]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + >> Scheduling statistics <<<]]> + + >> Statystyki planowania <<<]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -508,19 +1117,25 @@ - + + + + + + + @@ -535,7 +1150,7 @@ - + @@ -548,6 +1163,9 @@ + + + @@ -568,7 +1186,7 @@ - + diff --git a/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl index bab3d5663..53f465d45 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl @@ -13,54 +13,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -73,19 +100,25 @@ - + + + + + + + @@ -100,7 +133,7 @@ - + @@ -113,6 +146,9 @@ + + + @@ -133,7 +169,7 @@ - + diff --git a/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl index c55aad293..6447e0153 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,195 +10,309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -214,19 +328,25 @@ - + + + + + + + @@ -241,7 +361,7 @@ - + @@ -254,6 +374,9 @@ + + + @@ -274,7 +397,7 @@ - + diff --git a/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 4cbda9b65..fc2ef840f 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -27,6 +27,9 @@ + + + @@ -36,6 +39,9 @@ + + + @@ -45,6 +51,9 @@ + + + @@ -54,6 +63,9 @@ + + + @@ -63,6 +75,9 @@ + + + @@ -73,12 +88,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -88,13 +127,16 @@ - + + + + @@ -118,7 +160,7 @@ - + @@ -131,6 +173,9 @@ + + + @@ -151,7 +196,7 @@ - + diff --git a/loc/lcl/PLK/NewProjectWizard.dll.lcl b/loc/lcl/PLK/NewProjectWizard.dll.lcl index 352e2b4d2..cb5e24f65 100644 --- a/loc/lcl/PLK/NewProjectWizard.dll.lcl +++ b/loc/lcl/PLK/NewProjectWizard.dll.lcl @@ -16,66 +16,99 @@ + + + + + + + + + + + + ]]> + + ]]> + + + + + + + + + + + + + + + + + + + @@ -91,13 +124,13 @@ - + - + @@ -106,7 +139,7 @@ - + @@ -122,12 +155,15 @@ + + + - + @@ -140,6 +176,9 @@ + + + @@ -152,12 +191,15 @@ + + + - + From 19f56115e26fa24e2804e04904f0d421079b556f Mon Sep 17 00:00:00 2001 From: Lukasz Mendakiewicz Date: Mon, 25 Sep 2017 12:39:36 -0700 Subject: [PATCH 33/96] Delay load the package until VCProject and Test Explorer are present --- .../VsPackage.GTA/GoogleTestExtensionOptionsPage.cs | 5 ++++- .../VsPackage.Shared/GoogleTestExtensionOptionsPage.cs | 1 - .../VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs | 9 +++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs index e866667b5..e49755ce4 100644 --- a/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs @@ -1,12 +1,15 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 9/2017. using GoogleTestAdapter.VsPackage.ReleaseNotes; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; using System; using System.IO; using System.Threading; namespace GoogleTestAdapter.VsPackage { + [ProvideAutoLoad(UIContextGuids.SolutionExists)] public partial class GoogleTestExtensionOptionsPage { private const string PackageGuidString = "e7c90fcb-0943-4908-9ae8-3b6a9d22ec9e"; diff --git a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs index 0c40173ee..90bb61a3f 100644 --- a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs @@ -26,7 +26,6 @@ namespace GoogleTestAdapter.VsPackage [ProvideOptionPage(typeof(GeneralOptionsDialogPage), OptionsCategoryName, "General", 110, 501, true)] [ProvideOptionPage(typeof(ParallelizationOptionsDialogPage), OptionsCategoryName, "Parallelization", 110, 502, true)] [ProvideOptionPage(typeof(GoogleTestOptionsDialogPage), OptionsCategoryName, "Google Test", 110, 503, true)] - [ProvideAutoLoad(UIContextGuids.SolutionExists)] [ProvideMenuResource("Menus.ctmenu", 1)] public sealed partial class GoogleTestExtensionOptionsPage : Package, IGoogleTestExtensionOptionsPage, IDisposable { diff --git a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs index b89e50381..3e58b1888 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs @@ -1,11 +1,20 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. +using Microsoft.VisualStudio; +using Microsoft.VisualStudio.Shell; + namespace GoogleTestAdapter.VsPackage { + [ProvideAutoLoad(UIContextGuid)] + [ProvideUIContextRule(UIContextGuid, OptionsCategoryName, "VCProject & TestExplorer", + new string[] { "VCProject", "TestExplorer" }, + new string[] { VSConstants.UICONTEXT.VCProject_string, TestExplorerContextGuid })] public partial class GoogleTestExtensionOptionsPage { private const string PackageGuidString = "1db31773-234b-424b-a887-b451fb1ba837"; + private const string UIContextGuid = "7517f9ae-397f-48e1-8e1b-dac609d9f52d"; + private const string TestExplorerContextGuid = "ec25b527-d893-4ec0-a814-d2c9f1782997"; private const string OptionsCategoryName = "Test Adapter for Google Test"; private void DisplayReleaseNotesIfNecessary() From 08639874ca3c1b0f6916d339044689d5cd592f3c Mon Sep 17 00:00:00 2001 From: csigs Date: Tue, 26 Sep 2017 19:38:02 +0000 Subject: [PATCH 34/96] LEGO: check in for dev15loc to temporary branch. --- loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl | 183 ++++++++++++++++++ .../RUS/GoogleTestAdapter.TestAdapter.dll.lcl | 9 + .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- 3 files changed, 202 insertions(+), 1 deletion(-) diff --git a/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl index b5c97f708..ea1fae8d4 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.Core.dll.lcl @@ -76,30 +76,45 @@ + + + + + + + + + + + + + + + @@ -169,6 +184,9 @@ + + + @@ -184,6 +202,9 @@ + + + @@ -199,24 +220,36 @@ + + + + + + + + + + + + @@ -475,294 +508,441 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1012,6 +1192,9 @@ + + + diff --git a/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl index c0174f379..76e6bce44 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,6 +13,9 @@ + + + @@ -154,6 +157,9 @@ + + + @@ -169,6 +175,9 @@ + + + diff --git a/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 8484f7aae..dee7554ab 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -106,18 +106,27 @@ + + + + + + + + + From f5d38f4a08fbe6f9bd8b547e84c13f059dfe6afc Mon Sep 17 00:00:00 2001 From: Christian Soltenborn Date: Thu, 20 Jul 2017 20:06:42 +0200 Subject: [PATCH 35/96] Merge pull request #147 from csoltenborn/#121_ImprovedTestExecutableDetection Cherry-pick bb018b761194375b9e45fcf6447ce6ba2f84f9b6 Conflicts: GoogleTestAdapter/Core/GoogleTestDiscoverer.cs GoogleTestAdapter/Core/Helpers/Utils.cs GoogleTestAdapter/Core/Settings/SettingsWrapper.cs GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs GoogleTestAdapter/Tests.Common/TestResources.cs --- .../Core.Tests/Core.Tests.csproj | 1 + .../Core.Tests/GoogleTestDiscovererTests.cs | 37 ++------ .../Core.Tests/Helpers/ByteUtilsTests.cs | 75 ++++++++++++++++ .../Core.Tests/Helpers/UtilsTests.cs | 44 +++++++++- GoogleTestAdapter/Core/Core.csproj | 1 + GoogleTestAdapter/Core/GoogleTestConstants.cs | 10 ++- .../Core/GoogleTestDiscoverer.cs | 68 ++++++-------- GoogleTestAdapter/Core/Helpers/ByteUtils.cs | 88 +++++++++++++++++++ GoogleTestAdapter/Core/Helpers/Utils.cs | 11 ++- .../Core/Settings/SettingsWrapper.cs | 2 - .../Core/TestCases/TestCaseFactory.cs | 12 +-- .../Tests.Common/TestResources.cs | 3 +- README.md | 2 +- SampleTests/SampleTests.gta.runsettings | 2 +- 14 files changed, 273 insertions(+), 83 deletions(-) create mode 100644 GoogleTestAdapter/Core.Tests/Helpers/ByteUtilsTests.cs create mode 100644 GoogleTestAdapter/Core/Helpers/ByteUtils.cs diff --git a/GoogleTestAdapter/Core.Tests/Core.Tests.csproj b/GoogleTestAdapter/Core.Tests/Core.Tests.csproj index c46d1d6d2..3c3ad7990 100644 --- a/GoogleTestAdapter/Core.Tests/Core.Tests.csproj +++ b/GoogleTestAdapter/Core.Tests/Core.Tests.csproj @@ -88,6 +88,7 @@ + diff --git a/GoogleTestAdapter/Core.Tests/GoogleTestDiscovererTests.cs b/GoogleTestAdapter/Core.Tests/GoogleTestDiscovererTests.cs index f14924f9c..5da01e4ef 100644 --- a/GoogleTestAdapter/Core.Tests/GoogleTestDiscovererTests.cs +++ b/GoogleTestAdapter/Core.Tests/GoogleTestDiscovererTests.cs @@ -25,27 +25,6 @@ namespace GoogleTestAdapter public class GoogleTestDiscovererTests : TestsBase { - [TestMethod] - [TestCategory(Unit)] - public void IsGoogleTestExecutable_MatchingExamples_AreMatched() - { - AssertIsGoogleTestExecutable("MyGoogleTests.exe", true); - AssertIsGoogleTestExecutable("MyGoogleTests.exe", true); - AssertIsGoogleTestExecutable("MyGoogleTest.exe", true); - AssertIsGoogleTestExecutable("mygoogletests.exe", true); - AssertIsGoogleTestExecutable("mygoogletest.exe", true); - } - - [TestMethod] - [TestCategory(Unit)] - public void IsGoogleTestExecutable_NotMatchingExamples_AreNotMatched() - { - AssertIsGoogleTestExecutable("MyGoogleTes.exe", false); - AssertIsGoogleTestExecutable("TotallyWrong.exe", false); - AssertIsGoogleTestExecutable("TestStuff.exe", false); - AssertIsGoogleTestExecutable("TestLibrary.exe", false); - } - [TestMethod] [TestCategory(Unit)] public void IsGoogleTestExecutable_WithRegexFromOptions_MatchesCorrectly() @@ -59,7 +38,7 @@ public void IsGoogleTestExecutable_WithRegexFromOptions_MatchesCorrectly() [TestCategory(Unit)] public void IsGoogleTestExecutable_WithUnparsableRegexFromOptions_ProducesErrorMessage() { - bool result = new GoogleTestDiscoverer(TestEnvironment.Logger, TestEnvironment.Options).IsGoogleTestExecutable("my.exe", "d[ddd["); + bool result = GoogleTestDiscoverer.IsGoogleTestExecutable("my.exe", "d[ddd[", TestEnvironment.Logger); result.Should().BeFalse(); MockLogger.Verify(l => l.LogError(It.Is(s => s.Contains("'d[ddd['"))), Times.Exactly(1)); @@ -72,8 +51,8 @@ public void IsGoogleTestExecutable_WithIndicatorFile_IsRecognizedAsTestExecutabl string testExecutable = SetupIndicatorFileTest(true); try { - bool result = new GoogleTestDiscoverer(TestEnvironment.Logger, TestEnvironment.Options) - .IsGoogleTestExecutable(testExecutable); + bool result = GoogleTestDiscoverer + .IsGoogleTestExecutable(testExecutable, "", TestEnvironment.Logger); result.Should().BeTrue(); } @@ -86,15 +65,15 @@ public void IsGoogleTestExecutable_WithIndicatorFile_IsRecognizedAsTestExecutabl [TestMethod] [TestCategory(Unit)] - public void IsGoogleTestExecutable_WithoutIndicatorFile_IsNotRecognizedAsTestExecutable() + public void IsGoogleTestExecutable_WithoutIndicatorFile_IsRecognizedAsTestExecutable() { string testExecutable = SetupIndicatorFileTest(false); try { - bool result = new GoogleTestDiscoverer(TestEnvironment.Logger, TestEnvironment.Options) - .IsGoogleTestExecutable(testExecutable); + bool result = GoogleTestDiscoverer + .IsGoogleTestExecutable(testExecutable, "", TestEnvironment.Logger); - result.Should().BeFalse(); + result.Should().BeTrue(); } finally { @@ -320,7 +299,7 @@ public void GetTestsFromExecutable_LoadTests_AreFoundInReasonableTime() private void AssertIsGoogleTestExecutable(string executable, bool isGoogleTestExecutable, string regex = "") { - new GoogleTestDiscoverer(TestEnvironment.Logger, TestEnvironment.Options).IsGoogleTestExecutable(executable, regex) + GoogleTestDiscoverer.IsGoogleTestExecutable(executable, regex, TestEnvironment.Logger) .Should() .Be(isGoogleTestExecutable); } diff --git a/GoogleTestAdapter/Core.Tests/Helpers/ByteUtilsTests.cs b/GoogleTestAdapter/Core.Tests/Helpers/ByteUtilsTests.cs new file mode 100644 index 000000000..d3eb56049 --- /dev/null +++ b/GoogleTestAdapter/Core.Tests/Helpers/ByteUtilsTests.cs @@ -0,0 +1,75 @@ +using System.Text; +using FluentAssertions; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using static GoogleTestAdapter.Tests.Common.TestMetadata.TestCategories; + +namespace GoogleTestAdapter.Helpers +{ + [TestClass] + public class ByteUtilsTests + { + [TestMethod] + [TestCategory(Unit)] + public void IndexOf_FooEmptyPattern_ReturnsFound() + { + var bytes = Encoding.ASCII.GetBytes("foo"); + var pattern = Encoding.ASCII.GetBytes(""); + bytes.IndexOf(pattern).Should().Be(0); + } + + [TestMethod] + [TestCategory(Unit)] + public void IndexOf_EmptyBytesFoo_ReturnsNotFound() + { + var bytes = Encoding.ASCII.GetBytes(""); + var pattern = Encoding.ASCII.GetBytes("foo"); + bytes.IndexOf(pattern).Should().Be(-1); + } + + [TestMethod] + [TestCategory(Unit)] + public void IndexOf_EmptyBytesEmptyPattern_ReturnsFound() + { + var bytes = Encoding.ASCII.GetBytes(""); + var pattern = Encoding.ASCII.GetBytes(""); + bytes.IndexOf(pattern).Should().Be(0); + } + + [TestMethod] + [TestCategory(Unit)] + public void IndexOf_FooBar_ReturnsNotFound() + { + var bytes = Encoding.ASCII.GetBytes("foofoofoo"); + var pattern = Encoding.ASCII.GetBytes("bar"); + bytes.IndexOf(pattern).Should().Be(-1); + } + + [TestMethod] + [TestCategory(Unit)] + public void IndexOf_FooAtBeginning_ReturnsFound() + { + var bytes = Encoding.ASCII.GetBytes("fooxxx"); + var pattern = Encoding.ASCII.GetBytes("foo"); + bytes.IndexOf(pattern).Should().Be(0); + } + + [TestMethod] + [TestCategory(Unit)] + public void IndexOf_FooAtEnd_ReturnsFound() + { + var bytes = Encoding.ASCII.GetBytes("xxxfoo"); + var pattern = Encoding.ASCII.GetBytes("foo"); + bytes.IndexOf(pattern).Should().Be(3); + } + + [TestMethod] + [TestCategory(Unit)] + public void IndexOf_FooInMiddle_ReturnsFound() + { + var bytes = Encoding.ASCII.GetBytes("xxxfooxxx"); + var pattern = Encoding.ASCII.GetBytes("foo"); + bytes.IndexOf(pattern).Should().Be(3); + } + + } +} \ No newline at end of file diff --git a/GoogleTestAdapter/Core.Tests/Helpers/UtilsTests.cs b/GoogleTestAdapter/Core.Tests/Helpers/UtilsTests.cs index a37e97bfa..17b1a856f 100644 --- a/GoogleTestAdapter/Core.Tests/Helpers/UtilsTests.cs +++ b/GoogleTestAdapter/Core.Tests/Helpers/UtilsTests.cs @@ -1,6 +1,7 @@ using System; using System.Diagnostics; using System.IO; +using System.Text; using System.Threading; using FluentAssertions; using GoogleTestAdapter.Tests.Common; @@ -12,7 +13,6 @@ namespace GoogleTestAdapter.Helpers [TestClass] public class UtilsTests { - [TestMethod] [TestCategory(Unit)] public void DeleteDirectory_CanNotBeDeleted_ReturnsFalseAndMessage() @@ -45,6 +45,48 @@ public void GetTempDirectory__DirectoryDoesExistAndCanBeDeleted() Utils.DeleteDirectory(dir, out errorMessage).Should().BeTrue(); } + [TestMethod] + [TestCategory(Unit)] + public void BinaryFileContainsStrings_TestX86Release_ShouldContainGoogleTestIndicator() + { + Utils.BinaryFileContainsStrings(TestResources.Tests_ReleaseX86, Encoding.ASCII, GoogleTestConstants.GoogleTestExecutableMarkers).Should().BeTrue(); + } + + [TestMethod] + [TestCategory(Unit)] + public void BinaryFileContainsStrings_TestX64Release_ShouldContainGoogleTestIndicator() + { + Utils.BinaryFileContainsStrings(TestResources.Tests_ReleaseX64, Encoding.ASCII, GoogleTestConstants.GoogleTestExecutableMarkers).Should().BeTrue(); + } + + [TestMethod] + [TestCategory(Unit)] + public void BinaryFileContainsStrings_TestX86Debug_ShouldContainGoogleTestIndicator() + { + Utils.BinaryFileContainsStrings(TestResources.Tests_DebugX86, Encoding.ASCII, GoogleTestConstants.GoogleTestExecutableMarkers).Should().BeTrue(); + } + + [TestMethod] + [TestCategory(Unit)] + public void BinaryFileContainsStrings_TestX64Debug_ShouldContainGoogleTestIndicator() + { + Utils.BinaryFileContainsStrings(TestResources.Tests_DebugX64, Encoding.ASCII, GoogleTestConstants.GoogleTestExecutableMarkers).Should().BeTrue(); + } + + [TestMethod] + [TestCategory(Unit)] + public void BinaryFileContainsStrings_TenSecondsWaiter_ShouldNotContainGoogleTestIndicator() + { + Utils.BinaryFileContainsStrings(TestResources.TenSecondsWaiter, Encoding.ASCII, GoogleTestConstants.GoogleTestExecutableMarkers).Should().BeFalse(); + } + + [TestMethod] + [TestCategory(Unit)] + public void BinaryFileContainsStrings_EmptyFile_ShouldNotContainGoogleTestIndicator() + { + Utils.BinaryFileContainsStrings(TestResources.TenSecondsWaiter, Encoding.ASCII, GoogleTestConstants.GoogleTestExecutableMarkers).Should().BeFalse(); + } + [TestMethod] [TestCategory(Unit)] public void TimestampMessage_MessageIsNullOrEmpty_ResultIsTheSame() diff --git a/GoogleTestAdapter/Core/Core.csproj b/GoogleTestAdapter/Core/Core.csproj index 70a98ea32..a1c45d83e 100644 --- a/GoogleTestAdapter/Core/Core.csproj +++ b/GoogleTestAdapter/Core/Core.csproj @@ -70,6 +70,7 @@ + diff --git a/GoogleTestAdapter/Core/GoogleTestConstants.cs b/GoogleTestAdapter/Core/GoogleTestConstants.cs index 6aa8cb19c..21ea8346b 100644 --- a/GoogleTestAdapter/Core/GoogleTestConstants.cs +++ b/GoogleTestAdapter/Core/GoogleTestConstants.cs @@ -23,13 +23,21 @@ public static class GoogleTestConstants public const int ShuffleTestsSeedMinValue = 0; public static readonly int ShuffleTestsSeedMaxValue = int.Parse(ShuffleTestsSeedMaxValueAsString); - public const string ListTestsOption = " --gtest_list_tests"; + public const string ListTestsOption = "--gtest_list_tests"; public const string FilterOption = " --gtest_filter="; public const string TestBodySignature = "::TestBody"; public const string ParameterizedTestMarker = " # GetParam() = "; public const string TypedTestMarker = ". # TypeParam = "; + public static readonly string[] GoogleTestExecutableMarkers = + { + "This program contains tests written using Google Test. You can use the", + "For more information, please read the Google Test documentation at", + "Run only the tests whose name matches one of the positive patterns but", + ListTestsOption + }; + public static string GetResultXmlFileOption(string resultXmlFile) { return "--gtest_output=\"xml:" + resultXmlFile + "\""; diff --git a/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs b/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs index c6559e381..e5a36091c 100644 --- a/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs +++ b/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 9/2017. using GoogleTestAdapter.Common; using GoogleTestAdapter.DiaResolver; @@ -12,6 +12,7 @@ using System.IO; using System.Linq; using System.Security.Policy; +using System.Text; using System.Text.RegularExpressions; namespace GoogleTestAdapter @@ -20,8 +21,6 @@ public class GoogleTestDiscoverer { public const string GoogleTestIndicator = ".is_google_test"; - private static readonly Regex CompiledTestFinderRegex = new Regex(SettingsWrapper.TestFinderRegex, RegexOptions.Compiled); - private readonly ILogger _logger; private readonly SettingsWrapper _settings; private readonly IDiaResolverFactory _diaResolverFactory; @@ -35,25 +34,25 @@ public GoogleTestDiscoverer(ILogger logger, SettingsWrapper settings, IDiaResolv public void DiscoverTests(IEnumerable executables, ITestFrameworkReporter reporter) { - IList googleTestExecutables = GetAllGoogleTestExecutables(executables); if (_settings.UseNewTestExecutionFramework) { - var discoveryActions = googleTestExecutables + var discoveryActions = executables .Select(e => (Action)(() => DiscoverTests(e, reporter, _settings.Clone(), _logger, _diaResolverFactory))) .ToArray(); Utils.SpawnAndWait(discoveryActions); } else { - foreach (string executable in googleTestExecutables) + foreach (string executable in executables) { _settings.ExecuteWithSettingsForExecutable(executable, () => { - if (!VerifyExecutableTrust(executable, _logger)) - return; - - IList testCases = GetTestsFromExecutable(executable); - reporter.ReportTestsFound(testCases); + if (VerifyExecutableTrust(executable, _logger) && + IsGoogleTestExecutable(executable, _settings.TestDiscoveryRegex, _logger)) + { + IList testCases = GetTestsFromExecutable(executable); + reporter.ReportTestsFound(testCases); + } }, _logger); } } @@ -63,7 +62,8 @@ private static void DiscoverTests(string executable, ITestFrameworkReporter repo { settings.ExecuteWithSettingsForExecutable(executable, () => { - if (!VerifyExecutableTrust(executable, logger)) + if (!VerifyExecutableTrust(executable, logger) + || !IsGoogleTestExecutable(executable, settings.TestDiscoveryRegex, logger)) return; int nrOfTestCases = 0; @@ -93,7 +93,7 @@ public IList GetTestsFromExecutable(string executable) return testCases; } - public bool IsGoogleTestExecutable(string executable, string customRegex = "") + public static bool IsGoogleTestExecutable(string executable, string customRegex, ILogger logger) { string googleTestIndicatorFile = $"{executable}{GoogleTestIndicator}"; if (File.Exists(googleTestIndicatorFile)) @@ -101,41 +101,29 @@ public bool IsGoogleTestExecutable(string executable, string customRegex = "") _logger.DebugInfo(String.Format(Resources.FileFound, executable)); return true; } - _logger.DebugInfo(String.Format(Resources.FileNotFound, executable)); - bool matches; - string regex; if (string.IsNullOrWhiteSpace(customRegex)) { - regex = SettingsWrapper.TestFinderRegex; - matches = CompiledTestFinderRegex.IsMatch(executable); - _logger.DebugInfo(String.Format(matches ? Resources.MatchesDefault : Resources.DoesntMatchDefault, executable, regex)); + if (Utils.BinaryFileContainsStrings(executable, Encoding.ASCII, GoogleTestConstants.GoogleTestExecutableMarkers)) + { + logger.DebugInfo($"Google Test indicators found in executable {executable}"); + return true; + } } else { - regex = customRegex; - matches = SafeMatches(executable, customRegex); - _logger.DebugInfo(String.Format(matches ? Resources.MatchesCustom : Resources.DoesntMatchCustom, executable, regex)); - } - - return matches; - } - - private IList GetAllGoogleTestExecutables(IEnumerable allExecutables) - { - IList testExecutables = new List(); - foreach (string executable in allExecutables) - { - _settings.ExecuteWithSettingsForExecutable(executable, () => + if (SafeMatches(executable, customRegex, logger)) { - if (IsGoogleTestExecutable(executable, _settings.TestDiscoveryRegex)) - testExecutables.Add(Path.GetFullPath(executable)); - }, _logger); + logger.DebugInfo($"Custom regex '{customRegex}' matches executable '{executable}'"); + return true; + } } - return testExecutables; + + logger.DebugInfo($"File does not seem to be Google Test executable: '{executable}'"); + return false; } - private bool SafeMatches(string executable, string regex) + private static bool SafeMatches(string executable, string regex, ILogger logger) { bool matches = false; try @@ -144,11 +132,11 @@ private bool SafeMatches(string executable, string regex) } catch (ArgumentException e) { - _logger.LogError(String.Format(Resources.RegexParseError, regex, e.Message)); + logger.LogError(String.Format(Resources.RegexParseError, regex, e.Message)); } catch (RegexMatchTimeoutException e) { - _logger.LogError(String.Format(Resources.RegexTimedOut, regex, e.Message)); + logger.LogError(String.Format(Resources.RegexTimedOut, regex, e.Message)); } return matches; } diff --git a/GoogleTestAdapter/Core/Helpers/ByteUtils.cs b/GoogleTestAdapter/Core/Helpers/ByteUtils.cs new file mode 100644 index 000000000..fa772a2e0 --- /dev/null +++ b/GoogleTestAdapter/Core/Helpers/ByteUtils.cs @@ -0,0 +1,88 @@ +using System; + +namespace GoogleTestAdapter.Helpers +{ + public static class ByteUtils + { + /// + /// Implementation of the Boyer-Moore algorithm + /// (after https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm, Java version) + /// + /// Index of the first occurence of pattern, or -1 if pattern is not contained in bytes + public static int IndexOf(this byte[] bytes, byte[] pattern) + { + if (pattern.Length == 0) + return 0; + + int[] byteBasedJumpTable = CreateByteBasedJumpTable(pattern); + int[] offsetBasedJumpTable = CreateOffsetBasedJumpTable(pattern); + + for (int posInBytes = pattern.Length - 1; posInBytes < bytes.Length;) + { + int posInPattern; + for (posInPattern = pattern.Length - 1; pattern[posInPattern] == bytes[posInBytes]; --posInBytes, --posInPattern) + { + if (posInPattern == 0) + return posInBytes; + } + + posInBytes += Math.Max(offsetBasedJumpTable[pattern.Length - 1 - posInPattern], byteBasedJumpTable[bytes[posInBytes]]); + } + + return -1; + } + + private static int[] CreateByteBasedJumpTable(byte[] pattern) + { + int[] table = new int[byte.MaxValue + 1]; + for (int i = 0; i < table.Length; ++i) + { + table[i] = pattern.Length; + } + for (int i = 0; i < pattern.Length - 1; ++i) + { + table[pattern[i]] = pattern.Length - 1 - i; + } + return table; + } + + private static int[] CreateOffsetBasedJumpTable(byte[] pattern) + { + int[] table = new int[pattern.Length]; + int lastPrefixPosition = pattern.Length; + for (int i = pattern.Length; i > 0; i--) + { + if (IsPrefix(pattern, i)) + lastPrefixPosition = i; + + table[pattern.Length - i] = lastPrefixPosition - i + pattern.Length; + } + for (int i = 0; i < pattern.Length - 1; i++) + { + int suffixLength = GetSuffixLength(pattern, i); + table[suffixLength] = pattern.Length - 1 - i + suffixLength; + } + return table; + } + + private static bool IsPrefix(byte[] pattern, int position) + { + for (int i = position, j = 0; i < pattern.Length; i++, j++) + { + if (pattern[i] != pattern[j]) + return false; + } + return true; + } + + private static int GetSuffixLength(byte[] pattern, int position) + { + int length = 0; + for (int i = position, j = pattern.Length - 1; i >= 0 && pattern[i] == pattern[j]; i--, j--) + { + length++; + } + return length; + } + } +} \ No newline at end of file diff --git a/GoogleTestAdapter/Core/Helpers/Utils.cs b/GoogleTestAdapter/Core/Helpers/Utils.cs index 8158d2d93..91f797300 100644 --- a/GoogleTestAdapter/Core/Helpers/Utils.cs +++ b/GoogleTestAdapter/Core/Helpers/Utils.cs @@ -1,8 +1,11 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 9/2017. using System; +using System.Collections.Generic; using System.Globalization; using System.IO; +using System.Linq; +using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; @@ -65,6 +68,12 @@ public static bool SpawnAndWait(Action[] actions, int timeoutInMs = Timeout.Infi return Task.WaitAll(tasks, timeoutInMs); } + public static bool BinaryFileContainsStrings(string executable, Encoding encoding, IEnumerable strings) + { + byte[] file = File.ReadAllBytes(executable); + return strings.All(s => file.IndexOf(encoding.GetBytes(s)) >= 0); + } + public static void ValidateRegex(string pattern) { try diff --git a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs index 680dc54b9..7253913e8 100644 --- a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs +++ b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs @@ -45,8 +45,6 @@ public class SettingsWrapper .OrderBy(p => p.Name) .ToArray(); - public const string TestFinderRegex = @"[Tt]est[s]?[0-9]*\.exe"; - private readonly IGoogleTestAdapterSettingsContainer _settingsContainer; public RegexTraitParser RegexTraitParser { private get; set; } diff --git a/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs b/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs index 18d09a126..a3eeb6b68 100644 --- a/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs +++ b/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs @@ -45,7 +45,7 @@ public IList CreateTestCases(Action reportTestCase = null) { var launcher = new ProcessLauncher(_logger, _settings.GetPathExtension(_executable), null); int processExitCode; - standardOutput = launcher.GetOutputOfCommand("", _executable, GoogleTestConstants.ListTestsOption.Trim(), + standardOutput = launcher.GetOutputOfCommand("", _executable, GoogleTestConstants.ListTestsOption, false, false, out processExitCode); if (!CheckProcessExitCode(processExitCode, standardOutput)) @@ -54,7 +54,7 @@ public IList CreateTestCases(Action reportTestCase = null) catch (Exception e) { SequentialTestRunner.LogExecutionError(_logger, _executable, Path.GetFullPath(""), - GoogleTestConstants.ListTestsOption.Trim(), e); + GoogleTestConstants.ListTestsOption, e); return new List(); } @@ -136,7 +136,7 @@ private IList NewCreateTestcases(Action reportTestCase, List executor = new ProcessExecutor(null, _logger); processExitCode = executor.ExecuteCommandBlocking( _executable, - GoogleTestConstants.ListTestsOption.Trim(), + GoogleTestConstants.ListTestsOption, "", _settings.GetPathExtension(_executable), lineAction); @@ -149,7 +149,7 @@ private IList NewCreateTestcases(Action reportTestCase, List string dir = Path.GetDirectoryName(_executable); string file = Path.GetFileName(_executable); - string command = $@"cd ""{dir}""{Environment.NewLine}{file} {GoogleTestConstants.ListTestsOption.Trim()}"; + string command = $@"cd ""{dir}""{Environment.NewLine}{file} {GoogleTestConstants.ListTestsOption}"; _logger.LogError(String.Format(Resources.TestDiscoveryCancelled, _settings.TestDiscoveryTimeoutInSeconds, _executable)); _logger.DebugError(String.Format(Resources.TestCommandCanBeRun, Environment.NewLine, command)); @@ -172,7 +172,7 @@ private IList NewCreateTestcases(Action reportTestCase, List catch (Exception e) { SequentialTestRunner.LogExecutionError(_logger, _executable, Path.GetFullPath(""), - GoogleTestConstants.ListTestsOption.Trim(), e); + GoogleTestConstants.ListTestsOption, e); return new List(); } return testCases; @@ -183,7 +183,7 @@ private bool CheckProcessExitCode(int processExitCode, ICollection stand if (processExitCode != 0) { string messsage = String.Format(Resources.CouldNotListTestCases, _executable, processExitCode); - messsage += Environment.NewLine + String.Format(Resources.CommandExecuted, _executable, GoogleTestConstants.ListTestsOption.Trim(), Path.GetDirectoryName(_executable)); + messsage += Environment.NewLine + String.Format(Resources.CommandExecuted, _executable, GoogleTestConstants.ListTestsOption, Path.GetDirectoryName(_executable)); if (standardOutput.Count(s => !string.IsNullOrEmpty(s)) > 0) messsage += Environment.NewLine + Resources.OutputOfCommand + Environment.NewLine + string.Join(Environment.NewLine, standardOutput); else diff --git a/GoogleTestAdapter/Tests.Common/TestResources.cs b/GoogleTestAdapter/Tests.Common/TestResources.cs index fcd50d4bc..3ececf7e3 100644 --- a/GoogleTestAdapter/Tests.Common/TestResources.cs +++ b/GoogleTestAdapter/Tests.Common/TestResources.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 7/2017. +// This file has been modified by Microsoft on 9/2017. using System; using System.Diagnostics.CodeAnalysis; @@ -34,6 +34,7 @@ public static class TestResources public const string Tests_DebugX86 = SampleTestsBuildDir + @"Debug\Tests_gta.exe"; public const string Tests_ReleaseX86 = SampleTestsBuildDir + @"Release\Tests_gta.exe"; public const string Tests_DebugX86_Gtest170 = SampleTestsBuildDir + @"Debug\Tests_1.7.0_gta.exe"; + public const string Tests_DebugX64 = SampleTestsSolutionDir + @"Debug-x64\Tests_gta.exe"; public const string Tests_ReleaseX64 = SampleTestsBuildDir + @"Release-x64\Tests_gta.exe"; public const string Tests_ReleaseX64_Output = TestdataDir + @"Tests_gta_exe_output.txt"; public const int NrOfTests = 94; diff --git a/README.md b/README.md index 8eeea343a..c4642bf5a 100644 --- a/README.md +++ b/README.md @@ -136,8 +136,8 @@ If you need to perform some setup or teardown tasks in addition to the setup/tea ##### None or not all of my tests show up * Switch on *Debug mode* at *Tools/Options/Google Test Adapter/General*, which will show on the test console whether your test executables are found by GTA. If they are not, you have two options: - * Configure a *Test discovery regex* at the same place. In case of GTA installation via NuGet, do not forget to add the regex to the solution config file (which might be a good idea anyways). * If your test executable is `..\FooTests.exe`, make sure that a file `..\FooTests.exe.is_google_test` exists. + * Configure a *Test discovery regex*. In case of GTA installation via NuGet, do not forget to add the regex to the solution config file (which might be a good idea anyways). * Your test executable can not run with command line option `--gtest_list_tests`, e.g. because it crashes. Make sure that your tests can be listed via command line; if they do not, debug your test executable, e.g. by making the according test project the startup project of your solution, and placing a breakpoint at the main method of your test executable. * If your project configuration contains references to DLLs which do not end up in the build directory (e.g. through *Project/Properties/Linker/Input/Additional Dependencies*), these DLLs will not be found when running your tests. Use option *PATH extension* to add the directories containing these DLLs to the test executables' PATH variable. * If your project happens to be a makefile project, there's a pitfall which will prevent GTA from discovering your tests: It appears that when importing a makefile project into VS, the *Output* setting of the project is populated from the makefile's content. However, if the makefile is edited later on such that the location of the generated test executable changes, VS does not find the test executable any more. One symptom of this is that your project can not be launched any more with `F5`. Make sure that the *Output* setting of the project is consistent with its makefile to avoid this problem. diff --git a/SampleTests/SampleTests.gta.runsettings b/SampleTests/SampleTests.gta.runsettings index 09e79336f..dc6cf34ce 100644 --- a/SampleTests/SampleTests.gta.runsettings +++ b/SampleTests/SampleTests.gta.runsettings @@ -6,13 +6,13 @@ -testdirectory=$(TestDir) Tests\Returns0.bat Tests\Returns0.bat - .*Tests.*_gta.exe $(SolutionDir) Tests\Returns1.bat + .*Tests.*_gta.exe Tests\Returns1.bat From fd0578330e1bdaee75603ccfc0a3eb3c455e3e2b Mon Sep 17 00:00:00 2001 From: csigs Date: Wed, 27 Sep 2017 01:38:01 +0000 Subject: [PATCH 36/96] LEGO: check in for dev15loc to temporary branch. --- loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl | 555 +++++++++++++++++- .../PTB/GoogleTestAdapter.TestAdapter.dll.lcl | 33 +- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 35 +- 3 files changed, 613 insertions(+), 10 deletions(-) diff --git a/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl index eaa3b7a90..b117a5377 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.Core.dll.lcl @@ -73,6 +73,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -136,6 +181,15 @@ + + + + + + + + + @@ -145,6 +199,15 @@ + + + + + + + + + @@ -154,6 +217,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -406,6 +505,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -649,6 +1189,15 @@ + + + + + + + + + @@ -751,7 +1300,7 @@ - + @@ -784,7 +1333,7 @@ - + @@ -820,7 +1369,7 @@ - + diff --git a/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl index feb85b4d8..5303162a8 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + @@ -145,6 +154,15 @@ + + + + + + + + + @@ -154,6 +172,15 @@ + + + + + + + + + @@ -310,7 +337,7 @@ - + @@ -343,7 +370,7 @@ - + @@ -379,7 +406,7 @@ - + diff --git a/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 73fff0b74..14c4902fa 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -103,13 +103,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -142,7 +169,7 @@ - + @@ -178,7 +205,7 @@ - + From 88f005e9a1fe41c8bd867175f699330d37065ddd Mon Sep 17 00:00:00 2001 From: Lukasz Mendakiewicz Date: Tue, 26 Sep 2017 15:43:31 -0700 Subject: [PATCH 37/96] Merge fix-ups --- GoogleTestAdapter/Core/GoogleTestDiscoverer.cs | 4 ++-- GoogleTestAdapter/Core/Settings/SettingsWrapper.cs | 2 +- GoogleTestAdapter/Tests.Common/TestResources.cs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs b/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs index e5a36091c..f3e6fb0bd 100644 --- a/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs +++ b/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs @@ -98,7 +98,7 @@ public static bool IsGoogleTestExecutable(string executable, string customRegex, string googleTestIndicatorFile = $"{executable}{GoogleTestIndicator}"; if (File.Exists(googleTestIndicatorFile)) { - _logger.DebugInfo(String.Format(Resources.FileFound, executable)); + logger.DebugInfo(String.Format(Resources.FileFound, executable)); return true; } @@ -143,7 +143,7 @@ private static bool SafeMatches(string executable, string regex, ILogger logger) private static bool VerifyExecutableTrust(string executable, ILogger logger) { - var zone = Zone.CreateFromUrl(executable); + var zone = Zone.CreateFromUrl(Path.GetFullPath(executable)); if (zone.SecurityZone != System.Security.SecurityZone.MyComputer) { logger.LogError(String.Format(Resources.ExecutableError, executable)); diff --git a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs index 7253913e8..b60174ed0 100644 --- a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs +++ b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs @@ -243,7 +243,7 @@ public static string ReplacePlaceholders(string userParameters, string executabl public static readonly string OptionTestDiscoveryRegex = Resources.OptionTestDiscoveryRegex; public const string OptionTestDiscoveryRegexDefaultValue = ""; - public static readonly string OptionTestDiscoveryRegexDescription = string.Format(Resources.OptionTestDiscoveryRegexDescription, TestFinderRegex); + public static readonly string OptionTestDiscoveryRegexDescription = string.Format(Resources.OptionTestDiscoveryRegexDescription, String.Empty); public virtual string TestDiscoveryRegex => _currentSettings.TestDiscoveryRegex ?? OptionTestDiscoveryRegexDefaultValue; diff --git a/GoogleTestAdapter/Tests.Common/TestResources.cs b/GoogleTestAdapter/Tests.Common/TestResources.cs index 3ececf7e3..a7a2852bc 100644 --- a/GoogleTestAdapter/Tests.Common/TestResources.cs +++ b/GoogleTestAdapter/Tests.Common/TestResources.cs @@ -34,7 +34,7 @@ public static class TestResources public const string Tests_DebugX86 = SampleTestsBuildDir + @"Debug\Tests_gta.exe"; public const string Tests_ReleaseX86 = SampleTestsBuildDir + @"Release\Tests_gta.exe"; public const string Tests_DebugX86_Gtest170 = SampleTestsBuildDir + @"Debug\Tests_1.7.0_gta.exe"; - public const string Tests_DebugX64 = SampleTestsSolutionDir + @"Debug-x64\Tests_gta.exe"; + public const string Tests_DebugX64 = SampleTestsBuildDir + @"Debug-x64\Tests_gta.exe"; public const string Tests_ReleaseX64 = SampleTestsBuildDir + @"Release-x64\Tests_gta.exe"; public const string Tests_ReleaseX64_Output = TestdataDir + @"Tests_gta_exe_output.txt"; public const int NrOfTests = 94; From 5d0897ecb6f2690acd24f9173141fe31977286f6 Mon Sep 17 00:00:00 2001 From: Lukasz Mendakiewicz Date: Tue, 26 Sep 2017 16:11:09 -0700 Subject: [PATCH 38/96] Adjust debug messages to avoid resource changes --- GoogleTestAdapter/Core/GoogleTestDiscoverer.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs b/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs index f3e6fb0bd..c6831ffb3 100644 --- a/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs +++ b/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs @@ -106,7 +106,6 @@ public static bool IsGoogleTestExecutable(string executable, string customRegex, { if (Utils.BinaryFileContainsStrings(executable, Encoding.ASCII, GoogleTestConstants.GoogleTestExecutableMarkers)) { - logger.DebugInfo($"Google Test indicators found in executable {executable}"); return true; } } @@ -114,12 +113,12 @@ public static bool IsGoogleTestExecutable(string executable, string customRegex, { if (SafeMatches(executable, customRegex, logger)) { - logger.DebugInfo($"Custom regex '{customRegex}' matches executable '{executable}'"); + logger.DebugInfo(String.Format(Resources.MatchesCustom, executable, customRegex)); return true; } } - logger.DebugInfo($"File does not seem to be Google Test executable: '{executable}'"); + logger.DebugInfo(String.Format(Resources.FileNotFound, executable)); return false; } From bd3c4ad4dde455d86421477a04645098abfb1bf3 Mon Sep 17 00:00:00 2001 From: csigs Date: Wed, 27 Sep 2017 07:38:11 +0000 Subject: [PATCH 39/96] LEGO: check in for dev15loc to temporary branch. --- loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl | 555 +++++++++++++++++- .../JPN/GoogleTestAdapter.TestAdapter.dll.lcl | 33 +- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 35 +- 3 files changed, 613 insertions(+), 10 deletions(-) diff --git a/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl index 8d5d1a230..13f33fc68 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.Core.dll.lcl @@ -73,6 +73,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -136,6 +181,15 @@ + + + + + + + + + @@ -145,6 +199,15 @@ + + + + + + + + + @@ -154,6 +217,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -406,6 +505,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -649,6 +1189,15 @@ + + + + + + + + + @@ -751,7 +1300,7 @@ - + @@ -784,7 +1333,7 @@ - + @@ -820,7 +1369,7 @@ - + diff --git a/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl index af81a4b6d..5cf22d665 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + @@ -145,6 +154,15 @@ + + + + + + + + + @@ -154,6 +172,15 @@ + + + + + + + + + @@ -310,7 +337,7 @@ - + @@ -343,7 +370,7 @@ - + @@ -379,7 +406,7 @@ - + diff --git a/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index e43ffd274..39775af47 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -103,13 +103,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -142,7 +169,7 @@ - + @@ -178,7 +205,7 @@ - + From a0c32a27b993219b090bc32eb2f9b4be23a27164 Mon Sep 17 00:00:00 2001 From: csigs Date: Wed, 27 Sep 2017 13:38:12 +0000 Subject: [PATCH 40/96] LEGO: check in for dev15loc to temporary branch. --- loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl | 555 +++++++++++++++++- .../CHS/GoogleTestAdapter.TestAdapter.dll.lcl | 33 +- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 35 +- loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl | 183 ++++++ .../CSY/GoogleTestAdapter.TestAdapter.dll.lcl | 9 + .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl | 183 ++++++ .../ESN/GoogleTestAdapter.TestAdapter.dll.lcl | 9 + .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl | 555 +++++++++++++++++- .../KOR/GoogleTestAdapter.TestAdapter.dll.lcl | 33 +- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 35 +- loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl | 183 ++++++ .../PLK/GoogleTestAdapter.TestAdapter.dll.lcl | 9 + .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 9 + 15 files changed, 1831 insertions(+), 22 deletions(-) diff --git a/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl index 4a9a21c07..1c9fb4283 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.Core.dll.lcl @@ -73,6 +73,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -136,6 +181,15 @@ + + + + + + + + + @@ -145,6 +199,15 @@ + + + + + + + + + @@ -154,6 +217,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -406,6 +505,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -649,6 +1189,15 @@ + + + + + + + + + @@ -751,7 +1300,7 @@ - + @@ -784,7 +1333,7 @@ - + @@ -820,7 +1369,7 @@ - + diff --git a/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl index 05f915983..7a335ccd2 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + @@ -145,6 +154,15 @@ + + + + + + + + + @@ -154,6 +172,15 @@ + + + + + + + + + @@ -310,7 +337,7 @@ - + @@ -343,7 +370,7 @@ - + @@ -379,7 +406,7 @@ - + diff --git a/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 4915237fc..788623e32 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -103,13 +103,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -142,7 +169,7 @@ - + @@ -178,7 +205,7 @@ - + diff --git a/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl index 9ca253ab4..2f3efec76 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.Core.dll.lcl @@ -76,30 +76,45 @@ + + + + + + + + + + + + + + + @@ -169,6 +184,9 @@ + + + @@ -184,6 +202,9 @@ + + + @@ -199,24 +220,36 @@ + + + + + + + + + + + + @@ -475,294 +508,441 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1012,6 +1192,9 @@ + + + diff --git a/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl index 2fbf7fbe9..83b0ef44e 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,6 +13,9 @@ + + + @@ -154,6 +157,9 @@ + + + @@ -169,6 +175,9 @@ + + + diff --git a/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 8a487b4e9..23834d4c1 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -106,18 +106,27 @@ + + + + + + + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl index 8215804eb..0210e09fd 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.Core.dll.lcl @@ -76,30 +76,45 @@ + + + + + + + + + + + + + + + @@ -169,6 +184,9 @@ + + + @@ -184,6 +202,9 @@ + + + @@ -199,24 +220,36 @@ + + + + + + + + + + + + @@ -475,294 +508,441 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1012,6 +1192,9 @@ + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl index 3e6fbc7dd..9ef0fe39c 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,6 +13,9 @@ + + + @@ -154,6 +157,9 @@ + + + @@ -169,6 +175,9 @@ + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index d537f7553..062b49ead 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -106,18 +106,27 @@ + + + + + + + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl index 695839eb4..d17dcb854 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.Core.dll.lcl @@ -73,6 +73,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -136,6 +181,15 @@ + + + + + + + + + @@ -145,6 +199,15 @@ + + + + + + + + + @@ -154,6 +217,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -406,6 +505,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -649,6 +1189,15 @@ + + + + + + + + + @@ -751,7 +1300,7 @@ - + @@ -784,7 +1333,7 @@ - + @@ -820,7 +1369,7 @@ - + diff --git a/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl index 3d06ea7ba..45b373da8 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + @@ -145,6 +154,15 @@ + + + + + + + + + @@ -154,6 +172,15 @@ + + + + + + + + + @@ -310,7 +337,7 @@ - + @@ -343,7 +370,7 @@ - + @@ -379,7 +406,7 @@ - + diff --git a/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 0a4c0b242..3d092701a 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -103,13 +103,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -142,7 +169,7 @@ - + @@ -178,7 +205,7 @@ - + diff --git a/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl index 9c8535290..2f2ffc65d 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.Core.dll.lcl @@ -76,30 +76,45 @@ + + + + + + + + + + + + + + + @@ -169,6 +184,9 @@ + + + @@ -184,6 +202,9 @@ + + + @@ -199,24 +220,36 @@ + + + + + + + + + + + + @@ -475,294 +508,441 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1012,6 +1192,9 @@ + + + diff --git a/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl index 6447e0153..45a6af12a 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,6 +13,9 @@ + + + @@ -154,6 +157,9 @@ + + + @@ -169,6 +175,9 @@ + + + diff --git a/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index fc2ef840f..dfaf8f5d9 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -106,18 +106,27 @@ + + + + + + + + + From b798bed0308d48264083a297a1262a0a74b651c6 Mon Sep 17 00:00:00 2001 From: csigs Date: Wed, 27 Sep 2017 19:38:04 +0000 Subject: [PATCH 41/96] LEGO: check in for dev15loc to temporary branch. --- loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl | 555 +++++++++++++++++- .../CHT/GoogleTestAdapter.TestAdapter.dll.lcl | 33 +- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 35 +- loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl | 183 ++++++ .../FRA/GoogleTestAdapter.TestAdapter.dll.lcl | 9 + .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl | 183 ++++++ .../TRK/GoogleTestAdapter.TestAdapter.dll.lcl | 9 + .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 11 +- 9 files changed, 1017 insertions(+), 12 deletions(-) diff --git a/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl index 1b6ae6240..4fdde988c 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.Core.dll.lcl @@ -73,6 +73,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -136,6 +181,15 @@ + + + + + + + + + @@ -145,6 +199,15 @@ + + + + + + + + + @@ -154,6 +217,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -406,6 +505,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -649,6 +1189,15 @@ + + + + + + + + + @@ -751,7 +1300,7 @@ - + @@ -784,7 +1333,7 @@ - + @@ -820,7 +1369,7 @@ - + diff --git a/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl index dac72533c..b31ca8e63 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + @@ -145,6 +154,15 @@ + + + + + + + + + @@ -154,6 +172,15 @@ + + + + + + + + + @@ -310,7 +337,7 @@ - + @@ -343,7 +370,7 @@ - + @@ -379,7 +406,7 @@ - + diff --git a/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 34a26ce0a..79e7097a7 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -103,13 +103,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -142,7 +169,7 @@ - + @@ -178,7 +205,7 @@ - + diff --git a/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl index 6ccacefbe..cc1e527d5 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.Core.dll.lcl @@ -76,30 +76,45 @@ + + + + + + + + + + + + + + + @@ -169,6 +184,9 @@ + + + @@ -184,6 +202,9 @@ + + + @@ -199,24 +220,36 @@ + + + + + + + + + + + + @@ -475,294 +508,441 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1012,6 +1192,9 @@ + + + diff --git a/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl index 69b8039eb..fc1390ae9 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,6 +13,9 @@ + + + @@ -154,6 +157,9 @@ + + + @@ -169,6 +175,9 @@ + + + diff --git a/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 27e21dcd6..3c0582d95 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -106,18 +106,27 @@ + + + + + + + + + diff --git a/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl index 18039d113..1ae72a4c8 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl @@ -76,30 +76,45 @@ + + + + + + + + + + + + + + + @@ -169,6 +184,9 @@ + + + @@ -184,6 +202,9 @@ + + + @@ -199,24 +220,36 @@ + + + + + + + + + + + + @@ -475,294 +508,441 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1012,6 +1192,9 @@ + + + diff --git a/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl index 2cca2d370..481651d3b 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,6 +13,9 @@ + + + @@ -154,6 +157,9 @@ + + + @@ -169,6 +175,9 @@ + + + diff --git a/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index ae35a1be7..94b799f05 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -106,18 +106,27 @@ + + + + + + + + + From 0318762acbd486b18947f0bbd0bffa202a33f8bf Mon Sep 17 00:00:00 2001 From: Lukasz Mendakiewicz Date: Wed, 27 Sep 2017 15:58:09 -0700 Subject: [PATCH 42/96] Discover dynamically linked Google Test executables --- .../Core.Tests/GoogleTestDiscovererTests.cs | 22 ++++- GoogleTestAdapter/Core/GoogleTestConstants.cs | 4 +- .../Core/GoogleTestDiscoverer.cs | 3 +- GoogleTestAdapter/DiaResolver/PeParser.cs | 29 +++++- .../FakeGtestDll/Application.cpp | 6 ++ .../FakeGtestDllApplication-x64.vcxproj | 97 +++++++++++++++++++ ...akeGtestDllApplication-x64.vcxproj.filters | 6 ++ .../FakeGtestDllApplication.vcxproj | 97 +++++++++++++++++++ .../FakeGtestDllApplication.vcxproj.filters | 6 ++ .../FakeGtestDllLibrary-x64.vcxproj | 94 ++++++++++++++++++ .../FakeGtestDllLibrary-x64.vcxproj.filters | 6 ++ .../FakeGtestDll/FakeGtestDllLibrary.vcxproj | 94 ++++++++++++++++++ .../FakeGtestDllLibrary.vcxproj.filters | 6 ++ GoogleTestAdapter/FakeGtestDll/Library.cpp | 1 + GoogleTestAdapter/GoogleTestAdapter.sln | 28 ++++++ .../Tests.Common/TestResources.cs | 2 + 16 files changed, 494 insertions(+), 7 deletions(-) create mode 100644 GoogleTestAdapter/FakeGtestDll/Application.cpp create mode 100644 GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication-x64.vcxproj create mode 100644 GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication-x64.vcxproj.filters create mode 100644 GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication.vcxproj create mode 100644 GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication.vcxproj.filters create mode 100644 GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary-x64.vcxproj create mode 100644 GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary-x64.vcxproj.filters create mode 100644 GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary.vcxproj create mode 100644 GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary.vcxproj.filters create mode 100644 GoogleTestAdapter/FakeGtestDll/Library.cpp diff --git a/GoogleTestAdapter/Core.Tests/GoogleTestDiscovererTests.cs b/GoogleTestAdapter/Core.Tests/GoogleTestDiscovererTests.cs index 5da01e4ef..4f8debd4b 100644 --- a/GoogleTestAdapter/Core.Tests/GoogleTestDiscovererTests.cs +++ b/GoogleTestAdapter/Core.Tests/GoogleTestDiscovererTests.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 9/2017. using System; using System.Collections.Generic; @@ -82,6 +82,26 @@ public void IsGoogleTestExecutable_WithoutIndicatorFile_IsRecognizedAsTestExecut } } + [TestMethod] + [TestCategory(Unit)] + public void IsGoogleTestExecutable_DependingOnGtestDll_IsRecognizedAsTestExecutable() + { + bool result = GoogleTestDiscoverer + .IsGoogleTestExecutable(TestResources.FakeGtestDllExe, "", TestEnvironment.Logger); + + result.Should().BeTrue(); + } + + [TestMethod] + [TestCategory(Unit)] + public void IsGoogleTestExecutable_DependingOnGtestDllX64_IsRecognizedAsTestExecutable() + { + bool result = GoogleTestDiscoverer + .IsGoogleTestExecutable(TestResources.FakeGtestDllExeX64, "", TestEnvironment.Logger); + + result.Should().BeTrue(); + } + [TestMethod] [TestCategory(Integration)] public void GetTestsFromExecutable_SampleTestsDebug_FindsTestsWithLocation() diff --git a/GoogleTestAdapter/Core/GoogleTestConstants.cs b/GoogleTestAdapter/Core/GoogleTestConstants.cs index 21ea8346b..23f9b895e 100644 --- a/GoogleTestAdapter/Core/GoogleTestConstants.cs +++ b/GoogleTestAdapter/Core/GoogleTestConstants.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 9/2017. using System; @@ -30,6 +30,8 @@ public static class GoogleTestConstants public const string ParameterizedTestMarker = " # GetParam() = "; public const string TypedTestMarker = ". # TypeParam = "; + public const string GoogleTestDllMarker = "gtest.dll"; + public static readonly string[] GoogleTestExecutableMarkers = { "This program contains tests written using Google Test. You can use the", diff --git a/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs b/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs index c6831ffb3..398eb5149 100644 --- a/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs +++ b/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs @@ -104,7 +104,8 @@ public static bool IsGoogleTestExecutable(string executable, string customRegex, if (string.IsNullOrWhiteSpace(customRegex)) { - if (Utils.BinaryFileContainsStrings(executable, Encoding.ASCII, GoogleTestConstants.GoogleTestExecutableMarkers)) + if (PeParser.FindImport(executable, GoogleTestConstants.GoogleTestDllMarker, StringComparison.OrdinalIgnoreCase, logger) + || Utils.BinaryFileContainsStrings(executable, Encoding.ASCII, GoogleTestConstants.GoogleTestExecutableMarkers)) { return true; } diff --git a/GoogleTestAdapter/DiaResolver/PeParser.cs b/GoogleTestAdapter/DiaResolver/PeParser.cs index 794e45123..7da561970 100644 --- a/GoogleTestAdapter/DiaResolver/PeParser.cs +++ b/GoogleTestAdapter/DiaResolver/PeParser.cs @@ -246,22 +246,43 @@ private static void ParsePeFile(string executable, ILogger logger, Action ParseImports(string executable, ILogger logger) + private static void ProcessImports(string executable, ILogger logger, Func predicate) { - var imports = new List(); ParsePeFile(executable, logger, (image) => { + bool shouldContinue = true; uint size = 0u; var directoryEntry = (IMAGE_IMPORT_DESCRIPTOR*)NativeMethods.ImageDirectoryEntryToData(image.MappedAddress, 0, 1, &size); - while (directoryEntry->OriginalFirstThunk != 0u) + while (shouldContinue && directoryEntry->OriginalFirstThunk != 0u) { - imports.Add(GetString(image, directoryEntry->Name)); + shouldContinue = predicate(GetString(image, directoryEntry->Name)); directoryEntry++; } }); + } + + public static List ParseImports(string executable, ILogger logger) + { + var imports = new List(); + ProcessImports(executable, logger, (import) => + { + imports.Add(import); + return true; // Always continue. + }); return imports; } + public static bool FindImport(string executable, string import, StringComparison comparisonType, ILogger logger) + { + var found = false; + ProcessImports(executable, logger, (currentImport) => + { + found = String.Compare(import, currentImport, comparisonType) == 0; + return !found; // Continue only if not found yet. + }); + return found; + } + private static string PtrToStringUtf8(IntPtr ptr) { if (ptr == IntPtr.Zero) diff --git a/GoogleTestAdapter/FakeGtestDll/Application.cpp b/GoogleTestAdapter/FakeGtestDll/Application.cpp new file mode 100644 index 000000000..c83a138d7 --- /dev/null +++ b/GoogleTestAdapter/FakeGtestDll/Application.cpp @@ -0,0 +1,6 @@ +__declspec(dllimport) void FakeGtestDllLibrary_ExportedFunction(); + +int main() +{ + FakeGtestDllLibrary_ExportedFunction(); +} diff --git a/GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication-x64.vcxproj b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication-x64.vcxproj new file mode 100644 index 000000000..75991a89d --- /dev/null +++ b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication-x64.vcxproj @@ -0,0 +1,97 @@ + + + + + Debug + x64 + + + Release + x64 + + + + {05C435E1-603C-4402-B28C-E54932F3131C} + Win32Proj + FakeGtestDllApplication + 8.1 + + + + + Application + true + v100 + v110 + v120 + v140 + v141 + Unicode + + + Application + false + v100 + v110 + v120 + v140 + v141 + true + Unicode + + + + + + + + + + + + + + + true + + + false + + + + Level3 + Disabled + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + + Console + true + + + + + Level3 + Disabled + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + + Console + true + + + + + + + + {8c66b902-b3b3-40c1-b178-7f5405f654b0} + + + + + + \ No newline at end of file diff --git a/GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication-x64.vcxproj.filters b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication-x64.vcxproj.filters new file mode 100644 index 000000000..ebc9c0a7b --- /dev/null +++ b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication-x64.vcxproj.filters @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication.vcxproj b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication.vcxproj new file mode 100644 index 000000000..49430806f --- /dev/null +++ b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication.vcxproj @@ -0,0 +1,97 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {C2601F9E-8B97-4901-85F4-2531102543C8} + Win32Proj + FakeGtestDllApplication + 8.1 + + + + + Application + true + v100 + v110 + v120 + v140 + v141 + Unicode + + + Application + false + v100 + v110 + v120 + v140 + v141 + true + Unicode + + + + + + + + + + + + + + + true + + + false + + + + Level3 + Disabled + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + + Console + true + + + + + Level3 + Disabled + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + + Console + true + + + + + + + + {db701549-3f79-4d1d-9db9-ca55683d679e} + + + + + + \ No newline at end of file diff --git a/GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication.vcxproj.filters b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication.vcxproj.filters new file mode 100644 index 000000000..ebc9c0a7b --- /dev/null +++ b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllApplication.vcxproj.filters @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary-x64.vcxproj b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary-x64.vcxproj new file mode 100644 index 000000000..9a69bc133 --- /dev/null +++ b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary-x64.vcxproj @@ -0,0 +1,94 @@ + + + + + Debug + x64 + + + Release + x64 + + + + {8C66B902-B3B3-40C1-B178-7F5405F654B0} + Win32Proj + FakeGtestDllLibrary + 8.1 + + + + + DynamicLibrary + true + v100 + v110 + v120 + v140 + v141 + Unicode + + + DynamicLibrary + false + v100 + v110 + v120 + v140 + v141 + true + Unicode + + + + + + + + + + + + + + + true + gtest + + + false + gtest + + + + Level3 + Disabled + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + + Windows + true + + + + + Level3 + Disabled + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + + Windows + true + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary-x64.vcxproj.filters b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary-x64.vcxproj.filters new file mode 100644 index 000000000..e82218324 --- /dev/null +++ b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary-x64.vcxproj.filters @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary.vcxproj b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary.vcxproj new file mode 100644 index 000000000..ee54d657c --- /dev/null +++ b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary.vcxproj @@ -0,0 +1,94 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {DB701549-3F79-4D1D-9DB9-CA55683D679E} + Win32Proj + FakeGtestDllLibrary + 8.1 + + + + + DynamicLibrary + true + v100 + v110 + v120 + v140 + v141 + Unicode + + + DynamicLibrary + false + v100 + v110 + v120 + v140 + v141 + true + Unicode + + + + + + + + + + + + + + + true + gtest + + + false + gtest + + + + Level3 + Disabled + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + + Windows + true + + + + + Level3 + Disabled + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + + Windows + true + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary.vcxproj.filters b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary.vcxproj.filters new file mode 100644 index 000000000..e82218324 --- /dev/null +++ b/GoogleTestAdapter/FakeGtestDll/FakeGtestDllLibrary.vcxproj.filters @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GoogleTestAdapter/FakeGtestDll/Library.cpp b/GoogleTestAdapter/FakeGtestDll/Library.cpp new file mode 100644 index 000000000..7b03763d7 --- /dev/null +++ b/GoogleTestAdapter/FakeGtestDll/Library.cpp @@ -0,0 +1 @@ +__declspec(dllexport) void FakeGtestDllLibrary_ExportedFunction() {} \ No newline at end of file diff --git a/GoogleTestAdapter/GoogleTestAdapter.sln b/GoogleTestAdapter/GoogleTestAdapter.sln index 7a4a8f57b..e80257e60 100644 --- a/GoogleTestAdapter/GoogleTestAdapter.sln +++ b/GoogleTestAdapter/GoogleTestAdapter.sln @@ -132,6 +132,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SemaphoreExe", "SemaphoreEx EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnicodeNameExe", "UnicodeNameExe\UnicodeNameExe.vcxproj", "{8B27FD59-F03C-468E-B878-CFFC7484B7F7}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FakeGtestDllLibrary", "FakeGtestDll\FakeGtestDllLibrary.vcxproj", "{DB701549-3F79-4D1D-9DB9-CA55683D679E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FakeGtestDllLibrary-x64", "FakeGtestDll\FakeGtestDllLibrary-x64.vcxproj", "{8C66B902-B3B3-40C1-B178-7F5405F654B0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FakeGtestDllApplication", "FakeGtestDll\FakeGtestDllApplication.vcxproj", "{C2601F9E-8B97-4901-85F4-2531102543C8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FakeGtestDllApplication-x64", "FakeGtestDll\FakeGtestDllApplication-x64.vcxproj", "{05C435E1-603C-4402-B28C-E54932F3131C}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution VsPackage.Shared\VsPackage.Shared.projitems*{55294b5f-a075-43f2-b0e9-2b11925e8b91}*SharedItemsImports = 4 @@ -255,6 +263,22 @@ Global {8B27FD59-F03C-468E-B878-CFFC7484B7F7}.Debug|Any CPU.Build.0 = Debug|Win32 {8B27FD59-F03C-468E-B878-CFFC7484B7F7}.Release|Any CPU.ActiveCfg = Release|Win32 {8B27FD59-F03C-468E-B878-CFFC7484B7F7}.Release|Any CPU.Build.0 = Release|Win32 + {DB701549-3F79-4D1D-9DB9-CA55683D679E}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {DB701549-3F79-4D1D-9DB9-CA55683D679E}.Debug|Any CPU.Build.0 = Debug|Win32 + {DB701549-3F79-4D1D-9DB9-CA55683D679E}.Release|Any CPU.ActiveCfg = Release|Win32 + {DB701549-3F79-4D1D-9DB9-CA55683D679E}.Release|Any CPU.Build.0 = Release|Win32 + {8C66B902-B3B3-40C1-B178-7F5405F654B0}.Debug|Any CPU.ActiveCfg = Debug|x64 + {8C66B902-B3B3-40C1-B178-7F5405F654B0}.Debug|Any CPU.Build.0 = Debug|x64 + {8C66B902-B3B3-40C1-B178-7F5405F654B0}.Release|Any CPU.ActiveCfg = Release|x64 + {8C66B902-B3B3-40C1-B178-7F5405F654B0}.Release|Any CPU.Build.0 = Release|x64 + {C2601F9E-8B97-4901-85F4-2531102543C8}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {C2601F9E-8B97-4901-85F4-2531102543C8}.Debug|Any CPU.Build.0 = Debug|Win32 + {C2601F9E-8B97-4901-85F4-2531102543C8}.Release|Any CPU.ActiveCfg = Release|Win32 + {C2601F9E-8B97-4901-85F4-2531102543C8}.Release|Any CPU.Build.0 = Release|Win32 + {05C435E1-603C-4402-B28C-E54932F3131C}.Debug|Any CPU.ActiveCfg = Debug|x64 + {05C435E1-603C-4402-B28C-E54932F3131C}.Debug|Any CPU.Build.0 = Debug|x64 + {05C435E1-603C-4402-B28C-E54932F3131C}.Release|Any CPU.ActiveCfg = Release|x64 + {05C435E1-603C-4402-B28C-E54932F3131C}.Release|Any CPU.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -284,6 +308,10 @@ Global {2E3221EB-86DA-427D-84EC-DEFD3F966D9A} = {1FF56AF6-0ACE-4FE8-B802-4832703EC2DC} {F48AD2EC-96B3-41C6-9F89-3542EC7A3D43} = {475245AA-A07D-41D8-BC84-959C5E12A52C} {8B27FD59-F03C-468E-B878-CFFC7484B7F7} = {475245AA-A07D-41D8-BC84-959C5E12A52C} + {DB701549-3F79-4D1D-9DB9-CA55683D679E} = {475245AA-A07D-41D8-BC84-959C5E12A52C} + {8C66B902-B3B3-40C1-B178-7F5405F654B0} = {475245AA-A07D-41D8-BC84-959C5E12A52C} + {C2601F9E-8B97-4901-85F4-2531102543C8} = {475245AA-A07D-41D8-BC84-959C5E12A52C} + {05C435E1-603C-4402-B28C-E54932F3131C} = {475245AA-A07D-41D8-BC84-959C5E12A52C} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C942DDD5-B04E-4D57-BA9F-A444392C9480} diff --git a/GoogleTestAdapter/Tests.Common/TestResources.cs b/GoogleTestAdapter/Tests.Common/TestResources.cs index a7a2852bc..d5cce83a2 100644 --- a/GoogleTestAdapter/Tests.Common/TestResources.cs +++ b/GoogleTestAdapter/Tests.Common/TestResources.cs @@ -28,6 +28,8 @@ public static class TestResources public const string TenSecondsWaiter = GoogleTestAdapterBuildDir + @"TenSecondsWaiter\TenSecondsWaiter.exe"; public const string AlwaysCrashingExe = GoogleTestAdapterBuildDir + @"CrashingExe\CrashingExe.exe"; public const string AlwaysFailingExe = GoogleTestAdapterBuildDir + @"FailingExe\FailingExe.exe"; + public const string FakeGtestDllExe = GoogleTestAdapterBuildDir + @"FakeGtestDllApplication\FakeGtestDllApplication.exe"; + public const string FakeGtestDllExeX64 = GoogleTestAdapterBuildDir + @"FakeGtestDllApplication-x64\FakeGtestDllApplication-x64.exe"; public const string SemaphoreExe = GoogleTestAdapterBuildDir + @"SemaphoreExe\SemaphoreExe.exe"; public const string UnicodeNameExe = GoogleTestAdapterBuildDir + @"UnicodeNameExe\㐀㕵ExtAxCP936丂狛狜.exe"; From 45f55e6e785eedb2173058534ebc6f5afada827f Mon Sep 17 00:00:00 2001 From: csigs Date: Thu, 28 Sep 2017 01:38:14 +0000 Subject: [PATCH 43/96] LEGO: check in for dev15loc to temporary branch. --- loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl | 555 +++++++++++++++++- .../ITA/GoogleTestAdapter.TestAdapter.dll.lcl | 33 +- .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 35 +- 3 files changed, 613 insertions(+), 10 deletions(-) diff --git a/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl index ce62f2995..26615b476 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.Core.dll.lcl @@ -70,6 +70,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -133,6 +178,15 @@ + + + + + + + + + @@ -142,6 +196,15 @@ + + + + + + + + + @@ -151,6 +214,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -403,6 +502,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -643,6 +1183,15 @@ + + + + + + + + + @@ -745,7 +1294,7 @@ - + @@ -778,7 +1327,7 @@ - + @@ -814,7 +1363,7 @@ - + diff --git a/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl index f95696efc..76508fdb7 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.TestAdapter.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + @@ -145,6 +154,15 @@ + + + + + + + + + @@ -154,6 +172,15 @@ + + + + + + + + + @@ -310,7 +337,7 @@ - + @@ -343,7 +370,7 @@ - + @@ -379,7 +406,7 @@ - + diff --git a/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index d6fba7a3a..56090fa54 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -103,13 +103,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -142,7 +169,7 @@ - + @@ -178,7 +205,7 @@ - + From daccabbacffc1ad8aefbf6b7a03b24e2cb2a1eeb Mon Sep 17 00:00:00 2001 From: csigs Date: Thu, 28 Sep 2017 13:38:16 +0000 Subject: [PATCH 44/96] LEGO: check in for dev15loc to temporary branch. --- loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl | 21 +++++++++++++++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 8 ++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl index 11faeb6fb..c1b8ccb5d 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl @@ -76,24 +76,36 @@ + + + + + + + + + + + + @@ -511,6 +523,9 @@ + + + @@ -631,6 +646,9 @@ + + + @@ -757,6 +775,9 @@ + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index a0c2b9ec4..25745f52c 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -15,7 +15,7 @@ - + @@ -106,12 +106,18 @@ + + + + + + From 6f13c1f2359ee1a16a221d6a56fbb706d9db53ce Mon Sep 17 00:00:00 2001 From: csigs Date: Thu, 28 Sep 2017 19:38:10 +0000 Subject: [PATCH 45/96] LEGO: check in for dev15loc to temporary branch. --- loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl | 162 ++++++++++++++++++ .../DEU/GoogleTestAdapter.TestAdapter.dll.lcl | 9 + .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 3 + 3 files changed, 174 insertions(+) diff --git a/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl index c1b8ccb5d..b1f066930 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.Core.dll.lcl @@ -112,6 +112,9 @@ + + + @@ -181,6 +184,9 @@ + + + @@ -196,6 +202,9 @@ + + + @@ -211,24 +220,36 @@ + + + + + + + + + + + + @@ -487,36 +508,54 @@ + + + + + + + + + + + + + + + + + + @@ -532,114 +571,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -655,120 +751,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -784,6 +940,9 @@ + + + @@ -1033,6 +1192,9 @@ + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl index 2295b46bb..5e0dcc736 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.TestAdapter.dll.lcl @@ -13,6 +13,9 @@ + + + @@ -154,6 +157,9 @@ + + + @@ -169,6 +175,9 @@ + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 25745f52c..f903febfa 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -124,6 +124,9 @@ + + + From eb8121b54977903649729bc79f89a30357e4cac5 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Fri, 29 Sep 2017 15:46:11 -0700 Subject: [PATCH 46/96] Fic loc paths from projects for localization and remove res swix (#63) * fix path for loc files * fix path to lcl files * mark vsix proj at not component * add common dynamic projects to setversion * fix path * remove unnecessary swix res and add option to set isproductcomonent for setup * check if property is set to true in microbuild before setting it * rename microbuild variable for clarity --- .../Common.Dynamic.TAfGT.csproj | 2 +- GoogleTestAdapter/Core/Core.csproj | 2 +- .../DiaResolver/DiaResolver.csproj | 2 +- .../NewProjectWizard/NewProjectWizard.csproj | 2 +- .../Packaging.TAfGT/Packaging.TAfGT.csproj | 2 +- GoogleTestAdapter/SetVersion.ps1 | 6 +++ .../TestAdapter/TestAdapter.csproj | 2 +- .../VsPackage.TAfGT/VsPackage.TAfGT.csproj | 2 +- ...o.VC.Ide.TestAdapterForGoogleTest.swixproj | 42 ------------------- ...Studio.VC.Ide.TestAdapterForGoogleTest.swr | 14 ------- ....VC.Ide.TestAdapterForGoogleTest.vsmanproj | 24 ----------- 11 files changed, 13 insertions(+), 87 deletions(-) delete mode 100644 swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj delete mode 100644 swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr delete mode 100644 swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj b/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj index 8645dc620..f3ad945d6 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj @@ -40,7 +40,7 @@ - $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\GoogleTestAdapter.Common.Dynamic.lcl + $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.Common.Dynamic.dll.lcl Microsoft diff --git a/GoogleTestAdapter/Core/Core.csproj b/GoogleTestAdapter/Core/Core.csproj index a1c45d83e..400d9f7c0 100644 --- a/GoogleTestAdapter/Core/Core.csproj +++ b/GoogleTestAdapter/Core/Core.csproj @@ -42,7 +42,7 @@ - $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\GoogleTestAdapter.Core.lcl + $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.Core.dll.lcl Microsoft diff --git a/GoogleTestAdapter/DiaResolver/DiaResolver.csproj b/GoogleTestAdapter/DiaResolver/DiaResolver.csproj index e088ecb45..92b94911f 100644 --- a/GoogleTestAdapter/DiaResolver/DiaResolver.csproj +++ b/GoogleTestAdapter/DiaResolver/DiaResolver.csproj @@ -44,7 +44,7 @@ - $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\GoogleTestAdapter.DiaResolver.lcl + $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.DiaResolver.dll.lcl Microsoft diff --git a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj index 1cee0ec0e..4e176f362 100644 --- a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj +++ b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj @@ -44,7 +44,7 @@ - $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\NewProjectWizard.lcl + $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\NewProjectWizard.dll.lcl $(LSBuildRoot)\MCP_excludeBaml.lss diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index aea1d8304..49996d3cf 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -26,7 +26,7 @@ true true false - true + true true diff --git a/GoogleTestAdapter/SetVersion.ps1 b/GoogleTestAdapter/SetVersion.ps1 index a1524aef2..bef19a23c 100644 --- a/GoogleTestAdapter/SetVersion.ps1 +++ b/GoogleTestAdapter/SetVersion.ps1 @@ -2,6 +2,9 @@ Param([parameter(Mandatory=$true)] [string] $version) $common_assembly_info = "Common\Properties\AssemblyInfo.cs" +$common_dynamic_gta_assembly_info = "Common.Dynamic.GTA\Properties\AssemblyInfo.cs" +$common_dynamic_tafgt_assembly_info = "Common.Dynamic.TAfGT\Properties\AssemblyInfo.cs" + $core_assembly_info = "Core\Properties\AssemblyInfo.cs" $coretests_assembly_info = "Core.Tests\Properties\AssemblyInfo.cs" @@ -28,6 +31,9 @@ $wizard_assembly_info = "NewProjectWizard\Properties\AssemblyInfo.cs" (Get-Content $common_assembly_info) | ForEach-Object { $_ -replace "0.1.0.0", $version } | Set-Content $common_assembly_info +(Get-Content $common_dynamic_gta_assembly_info) | ForEach-Object { $_ -replace "0.1.0.0", $version } | Set-Content $common_dynamic_gta_assembly_info +(Get-Content $common_dynamic_tafgt_assembly_info) | ForEach-Object { $_ -replace "0.1.0.0", $version } | Set-Content $common_dynamic_tafgt_assembly_info + (Get-Content $core_assembly_info) | ForEach-Object { $_ -replace "0.1.0.0", $version } | Set-Content $core_assembly_info (Get-Content $coretests_assembly_info) | ForEach-Object { $_ -replace "0.1.0.0", $version } | Set-Content $coretests_assembly_info diff --git a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj index 4b5d254fd..68fff4904 100644 --- a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj +++ b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj @@ -44,7 +44,7 @@ - $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\GoogleTestAdapter.TestAdapter.lcl + $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.TestAdapter.dll.lcl Microsoft diff --git a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj index 008709c5d..9cb3a9132 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj +++ b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj @@ -211,7 +211,7 @@ - $(MSBuildThisFileDirectory)..\loc\lcl\{Lang}\GoogleTestAdapter.VsPackage.TAfGT.lcl + $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.VsPackage.TAfGT.dll.lcl Microsoft diff --git a/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj b/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj deleted file mode 100644 index f3f032461..000000000 --- a/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - neutral - false - Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest - manifest - true - 15.0 - 16.0 - - - - $(OutputPath)..\Packaging.TAfGT - - - - - - - - - - - $(PackagePreprocessorDefinitions); - VsixOutDir=$(VsixOutDir); - Version=$(BuildVersion); - VSGeneralVersion=$(VSGeneralVersion); - VSNextGeneralVersion=$(VSNextGeneralVersion); - - - - - - - - diff --git a/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr b/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr deleted file mode 100644 index 5b9f0a956..000000000 --- a/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr +++ /dev/null @@ -1,14 +0,0 @@ -use vs - -package name=Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest - version=$(Version) - vs.package.type=vsix - vs.package.installSize=22265856 - vs.package.vsixId=GoogleTestAdapterVSIX.8486b54e-5768-482b-b224-7d069ca509d8 - -vs.payloads - vs.payload source=$(VsixOutDir)\Packaging.TAfGT.vsix - -vs.dependencies - vs.dependency id=Microsoft.VisualStudio.MinShell - version=[$(VSGeneralVersion),$(VSNextGeneralVersion)) diff --git a/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj b/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj deleted file mode 100644 index b50ad5f61..000000000 --- a/swix/res/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - true - true - - - false - - - - - - - - - - - - \ No newline at end of file From 1b32a3e15c8e86531de25b2eb2af05e9770d7f32 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 4 Oct 2017 17:14:23 -0700 Subject: [PATCH 47/96] remove telemtry collection from TAfGT --- GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs index 4857a8966..2ffa66517 100644 --- a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs +++ b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs @@ -183,11 +183,11 @@ public void RunStarted(object automationObject, replacementsDictionary[TargetPlatformVersion] = versionString; } - Telemetry.LogProjectCreated(nugetPackage); + //Telemetry.LogProjectCreated(nugetPackage); } catch (WizardCancelledException ex) { - Telemetry.LogProjectCancelled(ex.Message); + //Telemetry.LogProjectCancelled(ex.Message); throw; } } From adc9b2139080b71791a102ed18dff85d38e94701 Mon Sep 17 00:00:00 2001 From: Nick Uhlenhuth Date: Thu, 5 Oct 2017 10:46:54 -0700 Subject: [PATCH 48/96] Update README.md Updated the README to generalize between the adapters, and explicitly call out differences --- README.md | 56 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 991818247..cc610b0ae 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ ### Test Adapter for Google Test -The Test Adapter for Google Test is a Visual Studio extension providing test discovery and execution of C++ tests written with the [Google Test](https://github.com/google/googletest) framework. This is a fork of the ![original project](https://github.com/csoltenborn/GoogleTestAdapter) by Christian Soltenborn and Jonas Gefele +This README details the ‘Test Adapter for Google Test’ [TAfGT](https://github.com/Microsoft/TestAdapterForGoogleTest), and the ‘Google Test Adapter’ [GTA](https://github.com/csoltenborn/GoogleTestAdapter). These test adapters are Visual Studio extensions that provide test discovery and execution of C++ tests written with the [Google Test](https://github.com/google/googletest) framework. + +Microsoft [collaborated with the creators of GTA](https://blogs.msdn.microsoft.com/vcblog/2017/05/10/unit-testing-and-the-future-announcing-the-test-adapter-for-google-test/) to fork their project and create ‘Test Adapter for Google Test’. These test adapters share many of the same features and any differences will be explicitly labeled with [TAfGT] or [GTA] in this document. All updates to TAfGT go through Microsoft’s software development cycle. ![Screenshot of Test Explorer](https://raw.githubusercontent.com/csoltenborn/GoogleTestAdapter/master/GoogleTestAdapter/VsPackage/Resources/Screenshot.png "Screenshot of Test Explorer") @@ -27,7 +29,7 @@ The Test Adapter for Google Test is a Visual Studio extension providing test dis * Execution of [parameterized batch files](#test_setup_and_teardown) for test setup/teardown * Test discovery using a [custom regex](#test_discovery_regex) (if needed) or an indicator file * Settings can be [shared via source control](#solution_settings) -* Installable as Visual Studio extension or NuGet development dependency +* Installable as Visual Studio extension or [GTA] NuGet development dependency #### History @@ -44,16 +46,21 @@ The Test Adapter for Google Test is a Visual Studio extension providing test dis The Test Adapter for Google Test can be installed in several ways: -* Install through the Visual Studio Marketplace at *Tools/Extensions and Updates* - search for *Google Test Adapter*. -* Download and launch the VSIX installer from either the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=VisualCPPTeam.TestAdapterforGoogleTest) or [GitHub](https://github.com/Microsoft/TestAdapterForGoogleTest/releases) +* Install through the Visual Studio Marketplace at *Tools/Extensions and Updates* - search for *Test Adapter for Google Test* or *Google Test Adapter*. +* Download and launch the VSIX installer from either the Visual Studio Marketplace ([TAfGT](https://marketplace.visualstudio.com/items?itemName=VisualCPPTeam.TestAdapterforGoogleTest), [GTA](https://marketplace.visualstudio.com/items?itemName=ChristianSoltenborn.GoogleTestAdapter)) or [GitHub](https://github.com/csoltenborn/GoogleTestAdapter/releases/download/v0.10.1/GoogleTestAdapter-0.10.1.vsix) +* [GTA only] Add a NuGet dependency to the [Google test adapter nuget package](https://www.nuget.org/packages/GoogleTestAdapter/) to your Google Test projects. Note, however, that Visual Studio integration is limited this way: VS can discover and run tests, but no debugging, options or toolbar will be available; configuration is only possible through solution config files (see below). -After restarting VS, your tests will be displayed in the Test Explorer at build completion time. If no or not all tests show up, have a look at the [trouble shooting section](#trouble_shooting). +After restarting VS, your tests will be displayed in the Test Explorer at build completion time. If no or not all tests show up, have a look at the [troubleshooting section](#trouble_shooting). #### Configuration There are several different ways to configure the adapter: -* The *Test Adapter for Google Test* section of Visual Studio's *Tools/Options*. These options are referred to as *global options* in the following. -* The toolbar. The most important runtime options (i.e., *Parallel test execution*, *Break on failure*, *Catch exceptions*, and *Print test output*) can also be set via a toolbar; this is equivalent to setting the according options via *Tools/Options/Test Adapter for Google Test*. +* The respective *global options* menus: + * [TAfGT] *Tools/Options/Test Adapter for Google Test* + * [GTA] *Tools/Options/Google Test Adapter* +* The toolbar (not available if installed via NuGet). Using the toolbar, you can set the most important runtime options (i.e., *Parallel test execution*, *Break on failure*, *Catch exceptions*, and *Print test output*); this is equivalent to setting the according options via *Tools/Options* menus detailed above. Open the toolbar via: + * [TAfGT] Tools/Customize…/Test Adapter for Google Test + * [GTA] Tools/Customize…/Google Test Adapter * Solution settings files (not available if run via [VsTest.Console.exe](https://msdn.microsoft.com/en-us/library/jj155800.aspx)). They are provided by means of an XML configuration file; this allows sharing of settings via source control. The configuration file must be placed in the same folder as the solution's `.sln` file, and must have the same name as that file, but with extension `.gta.runsettings`. E.g., if the solution file's name is `Foo.sln`, the settings file must be named `Foo.gta.runsettings`. * Visual Studio user settings files. VS allows for the selection of [test settings](https://msdn.microsoft.com/en-us/library/jj635153.aspx) files via the *Test/Test Settings* menu, and to pass such settings files to `VsTest.Console.exe` via the `/Settings` parameter. @@ -70,17 +77,17 @@ Overall, given a test executable `mytests.exe`, the following settings apply to 4. Solution settings of a solution settings file. 5. Global settings. -Note that due to the overriding hierarchy described above, you probably want to provide only a subset of the nodes in your configuration files. For instance, providing the node `true` in a shared solution settings file will make sure that all sharing developers will run GTA with debug output, no matter what the developer's individual settings at *Tools/Options/Test Adapter for Google Test* are (and unless the developer has selected a test settings file via VS, which would override the solution setting). +Note that due to the overriding hierarchy described above, you probably want to provide only a subset of the nodes in your configuration files. For instance, providing the node `true` in a shared solution settings file will make sure that all sharing developers will run the test adapter with debug output, no matter what the developer's individual settings at *Tools/Options/Test Adapter for Google Test* are (and unless the developer has selected a test settings file via VS, which would override the solution setting). For reference, see a settings file [AllTestSettings.gta.runsettings](https://raw.githubusercontent.com/csoltenborn/GoogleTestAdapter/master/GoogleTestAdapter/Resources/AllTestSettings.gta.runsettings) containing all available settings, a more realistic solution settings file [SampleTests.gta.runsettings](https://raw.githubusercontent.com/csoltenborn/GoogleTestAdapter/master/SampleTests/SampleTests.gta.runsettings) as delivered with the SampleTests solution, and a user settings file [NonDeterministic.runsettings](https://raw.githubusercontent.com/csoltenborn/GoogleTestAdapter/master/SampleTests/NonDeterministic.runsettings) as used by GTA's end-to-end tests. #### Assigning traits to tests -GTA has full support for [traits](http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/09/how-to-manage-unit-tests-in-visual-studio-2012-update-1-part-1-using-traits-in-the-unit-test-explorer.aspx), which can be assigned to tests in two ways: +The test adapters have full support for [traits](http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/09/how-to-manage-unit-tests-in-visual-studio-2012-update-1-part-1-using-traits-in-the-unit-test-explorer.aspx), which can be assigned to tests in two ways: * You can make use of the custom test macros provided in [GTA_Traits_1.8.0.h](https://raw.githubusercontent.com/csoltenborn/GoogleTestAdapter/master/GoogleTestAdapter/Core/Resources/GTA_Traits_1.8.0.h) (or [GTA_Traits_1.7.0.h](https://raw.githubusercontent.com/csoltenborn/GoogleTestAdapter/master/GoogleTestAdapter/Core/Resources/GTA_Traits_1.7.0.h) if you are still on Google Test 1.7.0), which contain macros for all test types of the Google Test framework. The macros do not change behavior of the tests; they only add some information to the generated test code which encodes the traits assigned to the respective test. All GTA provided macros follow the same naming schema `_TRAITS`, where, obviously, `` is the name of the according macro in Google Test. Each test can be assigned up to 8 traits. -* Combinations of regular expressions and traits can be specified under the GTA options: If a test's name matches one of these regular expressions, the according trait is assigned to that test. +* Combinations of regular expressions and traits can be specified under the test adapter's options: If a test's name matches one of these regular expressions, the according trait is assigned to that test. More precisely, traits are assigned to tests in three phases: @@ -92,11 +99,11 @@ Note that traits are assigned in an additive manner within each phase, and in an #### Running tests from command line with `VSTest.Console.exe` -GTA can be used to run tests from the command line, which can be done making use of VS's [VSTest.Console.exe](https://msdn.microsoft.com/en-us/library/jj155800.aspx). GTA supports all the tool's command line options, including `/UseVsixExtensions` and `/TestAdapterPath`. +The test adapters can be used to run tests from the command line, which can be done making use of VS's [VSTest.Console.exe](https://msdn.microsoft.com/en-us/library/jj155800.aspx). They support all the tool's command line options, including `/UseVsixExtensions` and `/TestAdapterPath`. -Note, however, that VSTest.Console.exe will not make use of GTA solution settings (if the solution containing the tests happens to use such settings). All settings to be used by VSTest.Console.exe need to be passed using the `/Settings` command line option. Note also that the `$(SolutionDir)` placeholder is neither available in the *Test setup/teardown batch file* options nor in the *Additional test execution parameters* option. +Note, however, that VSTest.Console.exe will not make use of TAfGT/GTA solution settings (if the solution containing the tests happens to use such settings). All settings to be used by VSTest.Console.exe need to be passed using the `/Settings` command line option. Note also that the `$(SolutionDir)` placeholder is neither available in the *Test setup/teardown batch file* options nor in the *Additional test execution parameters* option. -The tests to be run can be selected via the `/TestCaseFilter` option. Filters need to follow the syntax as described in this [blog entry](http://blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter.aspx). GTA supports the following test properties: +The tests to be run can be selected via the `/TestCaseFilter` option. Filters need to follow the syntax as described in this [blog entry](http://blogs.msdn.com/b/vikramagrawal/archive/2012/07/23/running-selective-unit-tests-in-vs-2012-rc-using-testcasefilter.aspx). The adapters support the following test properties: * DisplayName * FullyQualifiedName @@ -116,9 +123,9 @@ Additionally, traits can be used in test case filters. E.g., all tests having a Tests are run sequentially by default. If parallel test execution is enabled, the tests will be distributed to the available cores of your machine. To support parallel test execution, additional command line parameters can be passed to the Google Test executables (note that this feature is not restricted to parallel test execution); they can then be parsed by the test code at run time and e.g. be used to improve test isolation. -GTA remembers the durations of the executed tests to improve test scheduling for later test runs. The durations are stored in files with endings `.gta.testdurations` - make sure your version control system ignores these files. +This test adapter remembers the durations of the executed tests to improve test scheduling for later test runs. The durations are stored in files with endings `.gta.testdurations` - make sure your version control system ignores these files. -Note that since VS 2015 update 1, VS allows for the parallel execution of tests (again); since update 2, Test Explorer has an own *Run tests in parallel* button, and VsTest.Console.exe suppports a new command line option */Parallel*. Neither button nor command line option has any effect on test execution with GTA. +Note that since VS 2015 update 1, VS allows for the parallel execution of tests (again); since update 2, Test Explorer has an own *Run tests in parallel* button, and VsTest.Console.exe suppports a new command line option */Parallel*. Neither button nor command line option has any effect on test execution with this test adapter. #### Test setup and teardown @@ -127,15 +134,20 @@ If you need to perform some setup or teardown tasks in addition to the setup/tea ### External resources +* [Blog post](https://blogs.msdn.microsoft.com/vcblog/2017/05/10/unit-testing-and-the-future-announcing-the-test-adapter-for-google-test/) for using Google Test with TAfGT in Visual Studio * [Basic tutorial](https://usingcpp.wordpress.com/2016/07/23/google-test-and-visual-studio/) for using Google Test with the Google Test Adapter in Visual Studio ### Troubleshooting ##### None or not all of my tests show up -* Switch on *Debug mode* at *Tools/Options/Google Test Adapter/General*, which will show on the test console whether your test executables are found by GTA. If they are not, you have two options: - * Configure a *Test discovery regex* at the same place. - * If your test executable is `..\FooTests.exe`, make sure that a file `..\FooTests.exe.is_google_test` exists. +* Switch on + * [TAfGT] *Print debug info* at *Tools/Options/Test Adapter for Google Test/General* + * [GTA] *Print debug info* at *Tools/Options/Google Test Adapter/General* + +* This will show on the test console whether your test executables are found by GTA. If they are not, you have two options: + * Configure a *Regex for test discovery* at the same place. + * If your test executable is `..\FooTests.exe`, make sure that a file `..\FooTests.exe.is_google_test` exists. * Your test executable can not run with command line option `--gtest_list_tests`, e.g. because it crashes. Make sure that your tests can be listed via command line; if they do not, debug your test executable, e.g. by making the according test project the startup project of your solution, and placing a breakpoint at the main method of your test executable. * If your project configuration contains references to DLLs which do not end up in the build directory (e.g. through *Project/Properties/Linker/Input/Additional Dependencies*), these DLLs will not be found when running your tests. Use option *PATH extension* to add the directories containing these DLLs to the test executables' PATH variable. * If your project happens to be a makefile project, there's a pitfall which will prevent the adapter from discovering your tests: It appears that when importing a makefile project into VS, the *Output* setting of the project is populated from the makefile's content. However, if the makefile is edited later on such that the location of the generated test executable changes, VS does not find the test executable any more. One symptom of this is that your project can not be launched any more with `F5`. Make sure that the *Output* setting of the project is consistent with its makefile to avoid this problem. @@ -145,7 +157,7 @@ If you need to perform some setup or teardown tasks in addition to the setup/tea * The test executable's project settings result in a pdb file not containing the information necessary to resolve source locations and traits (see [#46](https://github.com/csoltenborn/GoogleTestAdapter/issues/46)). Change the setting as indicated below and rebuild your solution. * VS 2015 and earlier: `Yes` or `Optimize for debugging (/DEBUG)` * VS 2017: `Generate debug information optimized for sharing and publishing (/DEBUG:FULL)` -* Option *Parse symbol information* is set to `false`, making GTA not parse that information out of the pdb file intentionally. The actual set of options used is potentially composed from VS options, a solution settings file, and a user settings file; the resulting set of options will be logged to the test output window if the *Print debug info* option is set to `true`. +* Option *Parse symbol information* is set to `false`, making the test adapter not parse that information out of the pdb file intentionally. The actual set of options used is potentially composed from VS options, a solution settings file, and a user settings file; the resulting set of options will be logged to the test output window if the *Print debug info* option is set to `true`. ##### The extension is disabled when I start Visual Studio * Your MEF cache might have been corrupted. Please refer to [this issue](https://github.com/csoltenborn/GoogleTestAdapter/issues/98) for help. @@ -160,10 +172,10 @@ Please refer to our [wiki](https://github.com/csoltenborn/GoogleTestAdapter/wiki #### People -The original Google Test Adapter is written and maintained by [Christian Soltenborn](https://github.com/csoltenborn) (main author) and [Jonas Gefele](https://github.com/jgefele) (regular contributor). +*Test Adapter for Google Test* is maintained by Microsoft. + +The original *Google Test Adapter* is written and maintained by [Christian Soltenborn](https://github.com/csoltenborn) (main author) and [Jonas Gefele](https://github.com/jgefele) (regular contributor). The first version of GTA was a slightly enhanced C# port of the F# [Google Test Runner](https://github.com/markusl/GoogleTestRunner), written by [Markus Lindqvist](https://github.com/markusl). We have also learned a lot from the JavaScript test runner [Chutzpah](https://github.com/mmanela/chutzpah), written by [Matthew Manela](https://github.com/mmanela). GTA has benefited from all kinds of contributions, be it feature requests, bug reports, code snippets, testing of new features and bugfixes, or even pull requests. Most (hopefully all) contributors are mentioned in the according [release notes](https://github.com/csoltenborn/GoogleTestAdapter/releases). - -This particular fork of the project is maintained by the Visual C++ team at Microsoft. From c912d1716cce5201e1b143006c7c843bf1387e86 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Thu, 5 Oct 2017 13:46:38 -0700 Subject: [PATCH 49/96] Fix localization for Common.Dynamic and add vsixlangpacks (#65) * fix path for loc files * fix path to lcl files * mark vsix proj at not component * add common dynamic projects to setversion * fix path * remove unnecessary swix res and add option to set isproductcomonent for setup * check if property is set to true in microbuild before setting it * rename microbuild variable for clarity * add vsixlangpacks and pass culture to CreateInstance * inculde lang packs in vsix * use resource manager from common.dynamic in common * fix project files * remove eula and link asw they're not localized * remove localized description until we have one * fix proj file * remove old references to strings.cs which we no longer use * use separate resources.cs to ensure loading the right asm * change Common.Dynamic.GTA use resx as well * change basename for common dynamic dll * change default namespace to not conflict with common * LoadFrom not LoadFile so we can get satellite asm * switch namespace back so it matches with translation files * remove empty localized descriptions --- .../Common.Dynamic.GTA.csproj | 13 +- .../Common.Dynamic.GTA/Resources.Designer.cs | 99 +++++++++++++ .../Common.Dynamic.GTA/Resources.resx | 133 ++++++++++++++++++ .../Common.Dynamic.GTA/Strings.cs | 13 -- .../Common.Dynamic.TAfGT.csproj | 27 ++-- .../Resources.Designer.cs | 14 +- .../Common.Dynamic.TAfGT/Strings.cs | 13 -- GoogleTestAdapter/Common/Common.csproj | 3 +- GoogleTestAdapter/Common/IStrings.cs | 13 -- GoogleTestAdapter/Common/Resources.cs | 102 ++++++++++++++ GoogleTestAdapter/Common/Strings.cs | 24 ---- .../Core/Runners/SequentialTestRunner.cs | 2 +- .../Packaging.TAfGT/Packaging.TAfGT.csproj | 39 +++++ .../Packaging.TAfGT/cs/Extension.vsixlangpack | 4 + .../Packaging.TAfGT/de/Extension.vsixlangpack | 4 + .../Packaging.TAfGT/es/Extension.vsixlangpack | 4 + .../Packaging.TAfGT/fr/Extension.vsixlangpack | 4 + .../Packaging.TAfGT/it/Extension.vsixlangpack | 4 + .../Packaging.TAfGT/ja/Extension.vsixlangpack | 4 + .../Packaging.TAfGT/ko/Extension.vsixlangpack | 4 + .../Packaging.TAfGT/pl/Extension.vsixlangpack | 4 + .../pt-BR/Extension.vsixlangpack | 4 + .../Packaging.TAfGT/ru/Extension.vsixlangpack | 4 + .../Packaging.TAfGT/tr/Extension.vsixlangpack | 4 + .../zh-Hans/Extension.vsixlangpack | 4 + .../zh-Hant/Extension.vsixlangpack | 4 + .../TestAdapter/TestDiscoverer.cs | 6 +- GoogleTestAdapter/TestAdapter/TestExecutor.cs | 2 +- .../Helpers/ActivityLogLogger.cs | 4 +- 29 files changed, 465 insertions(+), 94 deletions(-) create mode 100644 GoogleTestAdapter/Common.Dynamic.GTA/Resources.Designer.cs create mode 100644 GoogleTestAdapter/Common.Dynamic.GTA/Resources.resx delete mode 100644 GoogleTestAdapter/Common.Dynamic.GTA/Strings.cs delete mode 100644 GoogleTestAdapter/Common.Dynamic.TAfGT/Strings.cs delete mode 100644 GoogleTestAdapter/Common/IStrings.cs create mode 100644 GoogleTestAdapter/Common/Resources.cs delete mode 100644 GoogleTestAdapter/Common/Strings.cs create mode 100644 GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack create mode 100644 GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack create mode 100644 GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack create mode 100644 GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack create mode 100644 GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack create mode 100644 GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack create mode 100644 GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack create mode 100644 GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack create mode 100644 GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack create mode 100644 GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack create mode 100644 GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack create mode 100644 GoogleTestAdapter/Packaging.TAfGT/zh-Hans/Extension.vsixlangpack create mode 100644 GoogleTestAdapter/Packaging.TAfGT/zh-Hant/Extension.vsixlangpack diff --git a/GoogleTestAdapter/Common.Dynamic.GTA/Common.Dynamic.GTA.csproj b/GoogleTestAdapter/Common.Dynamic.GTA/Common.Dynamic.GTA.csproj index 204ad62c5..042f88e2d 100644 --- a/GoogleTestAdapter/Common.Dynamic.GTA/Common.Dynamic.GTA.csproj +++ b/GoogleTestAdapter/Common.Dynamic.GTA/Common.Dynamic.GTA.csproj @@ -40,7 +40,11 @@ - + + Resources.resx + True + True + @@ -51,6 +55,13 @@ Common + + + PublicResXFileCodeGenerator + Resources.Designer.cs + Designer + + diff --git a/GoogleTestAdapter/Common.Dynamic.GTA/Resources.Designer.cs b/GoogleTestAdapter/Common.Dynamic.GTA/Resources.Designer.cs new file mode 100644 index 000000000..624ae434c --- /dev/null +++ b/GoogleTestAdapter/Common.Dynamic.GTA/Resources.Designer.cs @@ -0,0 +1,99 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GoogleTestAdapter.Common { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GoogleTestAdapter.Common.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Google Test Adapter. + /// + public static string ExtensionName { + get { + return ResourceManager.GetString("ExtensionName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Google Test Adapter: Test discovery starting.... + /// + public static string TestDiscoveryStarting { + get { + return ResourceManager.GetString("TestDiscoveryStarting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Google Test Adapter: Test execution starting.... + /// + public static string TestExecutionStarting { + get { + return ResourceManager.GetString("TestExecutionStarting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Check out Google Test Adapter's trouble shooting section at https://github.com/csoltenborn/GoogleTestAdapter#trouble_shooting. + /// + public static string TroubleShootingLink { + get { + return ResourceManager.GetString("TroubleShootingLink", resourceCulture); + } + } + } +} diff --git a/GoogleTestAdapter/Common.Dynamic.GTA/Resources.resx b/GoogleTestAdapter/Common.Dynamic.GTA/Resources.resx new file mode 100644 index 000000000..049878359 --- /dev/null +++ b/GoogleTestAdapter/Common.Dynamic.GTA/Resources.resx @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Google Test Adapter + + + Google Test Adapter: Test discovery starting... + + + Google Test Adapter: Test execution starting... + + + {0}Check out Google Test Adapter's trouble shooting section at https://github.com/csoltenborn/GoogleTestAdapter#trouble_shooting + {0} is empty or a name of a thread followed by space (e.g. "[T0] ") + + \ No newline at end of file diff --git a/GoogleTestAdapter/Common.Dynamic.GTA/Strings.cs b/GoogleTestAdapter/Common.Dynamic.GTA/Strings.cs deleted file mode 100644 index 811c23b9f..000000000 --- a/GoogleTestAdapter/Common.Dynamic.GTA/Strings.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -namespace GoogleTestAdapter.Common -{ - public class Strings : IStrings - { - public string ExtensionName => "Google Test Adapter"; - public string TroubleShootingLink => "{0}Check out Google Test Adapter's trouble shooting section at https://github.com/csoltenborn/GoogleTestAdapter#trouble_shooting"; - public string TestDiscoveryStarting => "Google Test Adapter: Test discovery starting..."; - public string TestExecutionStarting => "Google Test Adapter: Test execution starting..."; - } -} diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj b/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj index f3ad945d6..56d757ad6 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj @@ -40,15 +40,15 @@ - $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.Common.Dynamic.dll.lcl + $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.Common.Dynamic.dll.lcl Microsoft StrongName - - - false + + + false @@ -62,7 +62,6 @@ True Resources.resx - @@ -75,7 +74,7 @@ - ResXFileCodeGenerator + PublicResXFileCodeGenerator Resources.Designer.cs Designer @@ -91,12 +90,12 @@ copy "$(SolutionDir)Keys\Key_Debug.snk" "$(ProjectDir)Key.snk" ) - - - - Microsoft - StrongName - - - + + + + Microsoft + StrongName + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs index 1e990c292..2a3bb17dc 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs @@ -22,7 +22,7 @@ namespace GoogleTestAdapter.Common { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { + public class Resources { private static global::System.Resources.ResourceManager resourceMan; @@ -36,7 +36,7 @@ internal Resources() { /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { + public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GoogleTestAdapter.Common.Resources", typeof(Resources).Assembly); @@ -51,7 +51,7 @@ internal Resources() { /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { + public static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } @@ -63,7 +63,7 @@ internal Resources() { /// /// Looks up a localized string similar to Test Adapter for Google Test. /// - internal static string ExtensionName { + public static string ExtensionName { get { return ResourceManager.GetString("ExtensionName", resourceCulture); } @@ -72,7 +72,7 @@ internal static string ExtensionName { /// /// Looks up a localized string similar to Test Adapter for Google Test: Test discovery starting.... /// - internal static string TestDiscoveryStarting { + public static string TestDiscoveryStarting { get { return ResourceManager.GetString("TestDiscoveryStarting", resourceCulture); } @@ -81,7 +81,7 @@ internal static string TestDiscoveryStarting { /// /// Looks up a localized string similar to Test Adapter for Google Test: Test execution starting.... /// - internal static string TestExecutionStarting { + public static string TestExecutionStarting { get { return ResourceManager.GetString("TestExecutionStarting", resourceCulture); } @@ -90,7 +90,7 @@ internal static string TestExecutionStarting { /// /// Looks up a localized string similar to {0}Check out Test Adapter for Google Test's trouble shooting section at https://go.microsoft.com/fwlink/?linkid=848168. /// - internal static string TroubleShootingLink { + public static string TroubleShootingLink { get { return ResourceManager.GetString("TroubleShootingLink", resourceCulture); } diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Strings.cs b/GoogleTestAdapter/Common.Dynamic.TAfGT/Strings.cs deleted file mode 100644 index 6908f7ea9..000000000 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Strings.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -namespace GoogleTestAdapter.Common -{ - public class Strings : IStrings - { - public string ExtensionName => Resources.ExtensionName; - public string TroubleShootingLink => Resources.TroubleShootingLink; - public string TestDiscoveryStarting => Resources.TestDiscoveryStarting; - public string TestExecutionStarting => Resources.TestExecutionStarting; - } -} diff --git a/GoogleTestAdapter/Common/Common.csproj b/GoogleTestAdapter/Common/Common.csproj index 447b471b2..4eca93703 100644 --- a/GoogleTestAdapter/Common/Common.csproj +++ b/GoogleTestAdapter/Common/Common.csproj @@ -54,11 +54,10 @@ - - + diff --git a/GoogleTestAdapter/Common/IStrings.cs b/GoogleTestAdapter/Common/IStrings.cs deleted file mode 100644 index af5965d23..000000000 --- a/GoogleTestAdapter/Common/IStrings.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -namespace GoogleTestAdapter.Common -{ - public interface IStrings - { - string ExtensionName { get; } - string TroubleShootingLink { get; } - string TestDiscoveryStarting { get; } - string TestExecutionStarting { get; } - } -} diff --git a/GoogleTestAdapter/Common/Resources.cs b/GoogleTestAdapter/Common/Resources.cs new file mode 100644 index 000000000..bc07d0c01 --- /dev/null +++ b/GoogleTestAdapter/Common/Resources.cs @@ -0,0 +1,102 @@ +namespace GoogleTestAdapter.Common +{ + using System.IO; + using System.Reflection; + + /// + /// Based on the auto-generated resources file from Common.Dynamic + /// + public class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager + { + get + { + if (object.ReferenceEquals(resourceMan, null)) + { + // Get the path to GoogleTestAdapter.Common.Dynamic.dll where the resources are defined + var path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "GoogleTestAdapter.Common.Dynamic.dll"); + var asm = Assembly.LoadFrom(path); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GoogleTestAdapter.Common.Resources", asm); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Test Adapter for Google Test. + /// + public static string ExtensionName + { + get + { + return ResourceManager.GetString("ExtensionName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test Adapter for Google Test: Test discovery starting.... + /// + public static string TestDiscoveryStarting + { + get + { + return ResourceManager.GetString("TestDiscoveryStarting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Test Adapter for Google Test: Test execution starting.... + /// + public static string TestExecutionStarting + { + get + { + return ResourceManager.GetString("TestExecutionStarting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Check out Test Adapter for Google Test's trouble shooting section at https://go.microsoft.com/fwlink/?linkid=848168. + /// + public static string TroubleShootingLink + { + get + { + return ResourceManager.GetString("TroubleShootingLink", resourceCulture); + } + } + } +} diff --git a/GoogleTestAdapter/Common/Strings.cs b/GoogleTestAdapter/Common/Strings.cs deleted file mode 100644 index e7df1cc2e..000000000 --- a/GoogleTestAdapter/Common/Strings.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -using System; -using System.IO; -using System.Reflection; - -namespace GoogleTestAdapter.Common -{ - public class Strings - { - private static IStrings _strings; - - static Strings() - { - var path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "GoogleTestAdapter.Common.Dynamic.dll"); - var asm = Assembly.LoadFile(path); - var type = asm.GetType("GoogleTestAdapter.Common.Strings"); - _strings = (IStrings)Activator.CreateInstance(type); - } - - public static IStrings Instance => _strings; - } -} diff --git a/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs b/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs index 2ae691019..2a3de9fd9 100644 --- a/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs +++ b/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs @@ -139,7 +139,7 @@ public static void LogExecutionError(ILogger logger, string executable, string w { logger.LogError(String.Format(Resources.RunExecutableError, threadName, executable, exception.Message)); logger.DebugError(String.Format(Resources.StackTrace, threadName, Environment.NewLine, exception.StackTrace)); - logger.LogError(String.Format(Strings.Instance.TroubleShootingLink, threadName)); + logger.LogError(String.Format(Common.Resources.TroubleShootingLink, threadName)); logger.LogError(String.Format(Resources.ExecuteSteps, threadName, workingDir, Environment.NewLine, executable, arguments)); } diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index 49996d3cf..9e83effe0 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -109,6 +109,45 @@ + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + PreserveNewest true diff --git a/GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack new file mode 100644 index 000000000..b41be315c --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + Testovací adaptér pro Google Test + diff --git a/GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack new file mode 100644 index 000000000..d913f9a58 --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + Testadapter für Google Test + diff --git a/GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack new file mode 100644 index 000000000..02c289aad --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + Test Adapter para Google Test + diff --git a/GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack new file mode 100644 index 000000000..a4c6113d1 --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + Adaptateur de test pour Google Test + diff --git a/GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack new file mode 100644 index 000000000..bbdc82478 --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + Test Adapter for Google Test + diff --git a/GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack new file mode 100644 index 000000000..bbdc82478 --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + Test Adapter for Google Test + diff --git a/GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack new file mode 100644 index 000000000..bbdc82478 --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + Test Adapter for Google Test + diff --git a/GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack new file mode 100644 index 000000000..bbdc82478 --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + Test Adapter for Google Test + diff --git a/GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack new file mode 100644 index 000000000..1ed57191a --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + Adaptador de Teste para o Google Test + diff --git a/GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack new file mode 100644 index 000000000..c05354360 --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + Адаптер теста для Google Test + diff --git a/GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack new file mode 100644 index 000000000..0df5f9d7d --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + Google Test için Test Bağdaştırıcısı + diff --git a/GoogleTestAdapter/Packaging.TAfGT/zh-Hans/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/zh-Hans/Extension.vsixlangpack new file mode 100644 index 000000000..9e5aebc01 --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/zh-Hans/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + 适用于 Google Test 的测试适配器 + diff --git a/GoogleTestAdapter/Packaging.TAfGT/zh-Hant/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/zh-Hant/Extension.vsixlangpack new file mode 100644 index 000000000..6b169336d --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/zh-Hant/Extension.vsixlangpack @@ -0,0 +1,4 @@ + + + 適用於 Google Test 的測試配接器 + diff --git a/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs b/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs index 0d1c792b9..e7dd5bfb0 100644 --- a/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs +++ b/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs @@ -46,7 +46,7 @@ public void DiscoverTests(IEnumerable executables, IDiscoveryContext dis return; CommonFunctions.LogVisualStudioVersion(_logger); - _logger.LogInfo(Strings.Instance.TestDiscoveryStarting); + _logger.LogInfo(Common.Resources.TestDiscoveryStarting); _logger.DebugInfo(String.Format(Resources.Settings, _settings)); try @@ -71,10 +71,10 @@ private bool IsSupportedVisualStudioVersion() switch (version) { case VsVersion.Unknown: - _logger.LogWarning(String.Format(Resources.IdentifyVSError, Strings.Instance.ExtensionName)); + _logger.LogWarning(String.Format(Resources.IdentifyVSError, Common.Resources.ExtensionName)); return true; case VsVersion.VS2012: - _logger.LogError(String.Format(Resources.VS2012Error, Strings.Instance.ExtensionName)); + _logger.LogError(String.Format(Resources.VS2012Error, Common.Resources.ExtensionName)); return false; default: return true; diff --git a/GoogleTestAdapter/TestAdapter/TestExecutor.cs b/GoogleTestAdapter/TestAdapter/TestExecutor.cs index fcb60e541..3bafa021e 100644 --- a/GoogleTestAdapter/TestAdapter/TestExecutor.cs +++ b/GoogleTestAdapter/TestAdapter/TestExecutor.cs @@ -133,7 +133,7 @@ private Stopwatch StartStopWatchAndInitEnvironment(IRunContext runContext, IFram CommonFunctions.LogVisualStudioVersion(_logger); - _logger.LogInfo(Strings.Instance.TestExecutionStarting); + _logger.LogInfo(Common.Resources.TestExecutionStarting); _logger.DebugInfo(String.Format(Resources.Settings, _settings)); return stopwatch; diff --git a/GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs b/GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs index a411ec8f2..a40c39076 100644 --- a/GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs +++ b/GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs @@ -21,7 +21,7 @@ public override void Log(Severity severity, string message) var activityLog = _package.GetActivityLog(); if (activityLog == null) { - Console.WriteLine($"{Strings.Instance.ExtensionName}: {severity} - {message}"); + Console.WriteLine($"{Common.Resources.ExtensionName}: {severity} - {message}"); return; } @@ -41,7 +41,7 @@ public override void Log(Severity severity, string message) throw new Exception($"Unknown enum literal: {severity}"); } - activityLog.LogEntry((uint)activitylogEntrytype, Strings.Instance.ExtensionName, message); + activityLog.LogEntry((uint)activitylogEntrytype, Common.Resources.ExtensionName, message); } } From 771a1684316b3b25643d6b18acd39ea09b8f140e Mon Sep 17 00:00:00 2001 From: csigs Date: Fri, 6 Oct 2017 13:38:09 +0000 Subject: [PATCH 50/96] LEGO: check in for dev15loc to temporary branch. --- loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl | 6 +++--- loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl index 1ae72a4c8..b8e247187 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.Core.dll.lcl @@ -41,7 +41,7 @@ - + @@ -572,7 +572,7 @@ - + @@ -977,7 +977,7 @@ - + diff --git a/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl index 481651d3b..1e9265e02 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.TestAdapter.dll.lcl @@ -23,7 +23,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -41,7 +41,7 @@ - + From cfd356831fb2099bec5489a3003c244595a4306f Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Tue, 10 Oct 2017 14:52:49 -0700 Subject: [PATCH 51/96] Support word wrap for New Project Wizard --- .../SinglePageWizardDialog.xaml | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/GoogleTestAdapter/NewProjectWizard/SinglePageWizardDialog.xaml b/GoogleTestAdapter/NewProjectWizard/SinglePageWizardDialog.xaml index 28f40b637..4d8cb037f 100644 --- a/GoogleTestAdapter/NewProjectWizard/SinglePageWizardDialog.xaml +++ b/GoogleTestAdapter/NewProjectWizard/SinglePageWizardDialog.xaml @@ -123,21 +123,33 @@ - - + + - - From a97b317c1bf2ac566c21a81db36162ebd24a5359 Mon Sep 17 00:00:00 2001 From: Nick Uhlenhuth Date: Wed, 25 Oct 2017 17:17:42 -0700 Subject: [PATCH 52/96] Update README.md Updated to correct some typos and GTA/TAfGT distinctions. --- README.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index cc610b0ae..92dd3b0b0 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ [![NuGet downloads](https://img.shields.io/nuget/dt/GoogleTestAdapter.svg?colorB=0c7dbe&label=nuget)](https://www.nuget.org/packages/GoogleTestAdapter) -### Test Adapter for Google Test +### Google Test Adapter / Test Adapter for Google Test -This README details the ‘Test Adapter for Google Test’ [TAfGT](https://github.com/Microsoft/TestAdapterForGoogleTest), and the ‘Google Test Adapter’ [GTA](https://github.com/csoltenborn/GoogleTestAdapter). These test adapters are Visual Studio extensions that provide test discovery and execution of C++ tests written with the [Google Test](https://github.com/google/googletest) framework. +This README details the ‘Google Test Adapter’ [GTA](https://github.com/csoltenborn/GoogleTestAdapter) and the ‘Test Adapter for Google Test’ [TAfGT](https://github.com/Microsoft/TestAdapterForGoogleTest), and . These test adapters are Visual Studio extensions that provide test discovery and execution of C++ tests written with the [Google Test](https://github.com/google/googletest) framework. -Microsoft [collaborated with the creators of GTA](https://blogs.msdn.microsoft.com/vcblog/2017/05/10/unit-testing-and-the-future-announcing-the-test-adapter-for-google-test/) to fork their project and create ‘Test Adapter for Google Test’. These test adapters share many of the same features and any differences will be explicitly labeled with [TAfGT] or [GTA] in this document. All updates to TAfGT go through Microsoft’s software development cycle. +Microsoft [collaborated with the creators of GTA](https://blogs.msdn.microsoft.com/vcblog/2017/05/10/unit-testing-and-the-future-announcing-the-test-adapter-for-google-test/) to fork their project and create ‘Test Adapter for Google Test’. These test adapters share many of the same features and any differences will be explicitly labeled with [TAfGT] or [GTA] in this document. GTA may contain more experimental features, whereas all updates to TAfGT must go through Microsoft’s software development cycle. ![Screenshot of Test Explorer](https://raw.githubusercontent.com/csoltenborn/GoogleTestAdapter/master/GoogleTestAdapter/VsPackage/Resources/Screenshot.png "Screenshot of Test Explorer") @@ -33,7 +33,8 @@ Microsoft [collaborated with the creators of GTA](https://blogs.msdn.microsoft.c #### History -* See [releases](https://github.com/Microsoft/TestAdapterForGoogleTest/blob/dev15/GoogleTestAdapter/Packaging.TAfGT/ReleaseNotes.txt) +* See [TAFGT releases](https://github.com/Microsoft/TestAdapterForGoogleTest/blob/dev15/GoogleTestAdapter/Packaging.TAfGT/ReleaseNotes.txt) +* See [GTA releases](https://github.com/csoltenborn/GoogleTestAdapter/releases). ### Usage @@ -44,7 +45,7 @@ Microsoft [collaborated with the creators of GTA](https://blogs.msdn.microsoft.c [![Download from NuGet](https://img.shields.io/nuget/vpre/GoogleTestAdapter.svg?colorB=0c7dbe&label=nuget)](https://www.nuget.org/packages/GoogleTestAdapter) [![Download at GitHub](https://img.shields.io/github/release/csoltenborn/GoogleTestAdapter/all.svg?colorB=0c7dbe&label=github)](https://github.com/csoltenborn/GoogleTestAdapter/releases) -The Test Adapter for Google Test can be installed in several ways: +The adapters can be installed in several ways: * Install through the Visual Studio Marketplace at *Tools/Extensions and Updates* - search for *Test Adapter for Google Test* or *Google Test Adapter*. * Download and launch the VSIX installer from either the Visual Studio Marketplace ([TAfGT](https://marketplace.visualstudio.com/items?itemName=VisualCPPTeam.TestAdapterforGoogleTest), [GTA](https://marketplace.visualstudio.com/items?itemName=ChristianSoltenborn.GoogleTestAdapter)) or [GitHub](https://github.com/csoltenborn/GoogleTestAdapter/releases/download/v0.10.1/GoogleTestAdapter-0.10.1.vsix) @@ -145,7 +146,7 @@ If you need to perform some setup or teardown tasks in addition to the setup/tea * [TAfGT] *Print debug info* at *Tools/Options/Test Adapter for Google Test/General* * [GTA] *Print debug info* at *Tools/Options/Google Test Adapter/General* -* This will show on the test console whether your test executables are found by GTA. If they are not, you have two options: +* This will show on the test console whether your test executables are found by the adapter. If they are not, you have two options: * Configure a *Regex for test discovery* at the same place. * If your test executable is `..\FooTests.exe`, make sure that a file `..\FooTests.exe.is_google_test` exists. * Your test executable can not run with command line option `--gtest_list_tests`, e.g. because it crashes. Make sure that your tests can be listed via command line; if they do not, debug your test executable, e.g. by making the according test project the startup project of your solution, and placing a breakpoint at the main method of your test executable. From 22b124d4d76cc5a1c077186eb07345597f7c6467 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Thu, 26 Oct 2017 16:33:55 -0700 Subject: [PATCH 53/96] update ids to not clash with stand alone version (#80) --- .../source.extension.vsixmanifest | 86 +++++++++---------- .../GoogleTestExtensionOptionsPage.cs | 2 +- .../GoogleTestExtensionOptionsPage.vsct | 2 +- 3 files changed, 45 insertions(+), 45 deletions(-) diff --git a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest index f66f5d3c1..cd150046d 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest +++ b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest @@ -1,46 +1,46 @@  - - - Test Adapter for Google Test - Enables Visual Studio's testing tools with unit tests written for Google Test. - Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest - https://go.microsoft.com/fwlink/?linkid=848768 - use.txt - ReleaseNotes.txt - Resources\Icons\Icon.ico - Resources\Preview.png - Unit Test, C++, Google Test, GoogleTest, GTest, Test Explorer, Testing - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NuGet Package Manager - http://docs.microsoft.com/nuget/ - + + + Test Adapter for Google Test + Enables Visual Studio's testing tools with unit tests written for Google Test. + Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest + https://go.microsoft.com/fwlink/?linkid=848768 + use.txt + ReleaseNotes.txt + Resources\Icons\Icon.ico + Resources\Preview.png + Unit Test, C++, Google Test, GoogleTest, GTest, Test Explorer, Testing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NuGet Package Manager + http://docs.microsoft.com/nuget/ + diff --git a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs index 3e58b1888..c0d37dc76 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs @@ -12,7 +12,7 @@ namespace GoogleTestAdapter.VsPackage new string[] { VSConstants.UICONTEXT.VCProject_string, TestExplorerContextGuid })] public partial class GoogleTestExtensionOptionsPage { - private const string PackageGuidString = "1db31773-234b-424b-a887-b451fb1ba837"; + private const string PackageGuidString = "6fac3232-df1d-400a-95ac-7daeaaee74ac"; private const string UIContextGuid = "7517f9ae-397f-48e1-8e1b-dac609d9f52d"; private const string TestExplorerContextGuid = "ec25b527-d893-4ec0-a814-d2c9f1782997"; private const string OptionsCategoryName = "Test Adapter for Google Test"; diff --git a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.vsct b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.vsct index c7f1cac51..d07f1ad32 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.vsct +++ b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.vsct @@ -98,7 +98,7 @@ - + From b5706c7ba50141042f6e85ccacbe947dc0be00ed Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Fri, 27 Oct 2017 14:42:31 -0700 Subject: [PATCH 54/96] remove swixproj and swr to fix setup (#82) --- ...o.VC.Ide.TestAdapterForGoogleTest.swixproj | 44 ------------------- ...Studio.VC.Ide.TestAdapterForGoogleTest.swr | 11 ----- ....VC.Ide.TestAdapterForGoogleTest.vsmanproj | 2 +- 3 files changed, 1 insertion(+), 56 deletions(-) delete mode 100644 swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj delete mode 100644 swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr diff --git a/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj b/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj deleted file mode 100644 index 3bc04440a..000000000 --- a/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swixproj +++ /dev/null @@ -1,44 +0,0 @@ - - - - neutral - false - Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest - manifest - true - 15.0 - 16.0 - GoogleTestAdapter - - - - - - - $(OutputPath)..\Packaging.TAfGT - - - - - - - - - - - $(PackagePreprocessorDefinitions); - VsixOutDir=$(VsixOutDir); - Version=$(BuildVersion); - VSGeneralVersion=$(VSGeneralVersion); - VSNextGeneralVersion=$(VSNextGeneralVersion); - - - - - - - - - diff --git a/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr b/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr deleted file mode 100644 index 8e63ae9af..000000000 --- a/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.swr +++ /dev/null @@ -1,11 +0,0 @@ -use vs - -package name=Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest - version=$(Version) - vs.package.type=vsix - vs.package.installSize=22265856 - vs.package.vsixId=GoogleTestAdapterVSIX.8486b54e-5768-482b-b224-7d069ca509d8 - vs.package.extensionDir=[installdir]\Common7\IDE\CommonExtensions\VC\TestAdapterForGoogleTest - -vs.payloads - vs.payload source=$(VsixOutDir)\Packaging.TAfGT.vsix diff --git a/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj b/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj index 6a73ff1d4..760f2c1b3 100644 --- a/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj +++ b/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj @@ -14,7 +14,7 @@ - + From e54cd8347025e7268ab54387292a1c5da9412e23 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Tue, 31 Oct 2017 12:54:13 -0700 Subject: [PATCH 55/96] update template to use new id (#83) --- .../ProjectTemplates/Test/GoogleTest/GoogleTest.vstemplate | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/GoogleTest.vstemplate b/GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/GoogleTest.vstemplate index c5cec5cb9..93e3df519 100644 --- a/GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/GoogleTest.vstemplate +++ b/GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/GoogleTest.vstemplate @@ -25,7 +25,7 @@ Microsoft.NewProjectWizard.WizardImplementation - + From 0fe7a2484a44d9a16e25107d6a63ad5fdd82bd3c Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 1 Nov 2017 17:06:44 -0700 Subject: [PATCH 56/96] allow for automated testing (#84) --- .../NewProjectWizard/WizardImplementation.cs | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs index 2ffa66517..700773b1f 100644 --- a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs +++ b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs @@ -24,6 +24,7 @@ public class WizardImplementation : IWizard private const string WizardData = "$wizarddata$"; private const string RuntimeDebug = "$rtdebug$"; private const string RuntimeRelease = "$rtrelease$"; + private const string RunSilent = "$runsilent$"; private List projects = new List(); private int selectedProjectIndex; private IWizard nugetWizard; @@ -90,7 +91,19 @@ public void RunStarted(object automationObject, ConfigurationData configurationData = new ConfigurationData(dte, projectNames.ToArray()); SinglePageWizardDialog wiz = new SinglePageWizardDialog(Resources.WizardTitle, configurationData); - bool? success = wiz.ShowModal(); + + bool? success = false; + + // If RunSilent is true, we're in automated testing + if (replacementsDictionary[RunSilent] == "True") + { + success = true; + SetDefaultData(ref configurationData); + } + else + { + success = wiz.ShowModal(); + } if (success == false) { @@ -262,6 +275,13 @@ private static bool TryParseFrameworkName(string moniker, out FrameworkName resu result = null; return false; } + + private void SetDefaultData(ref ConfigurationData configurationData) + { + configurationData.ProjectIndex = -1; + configurationData.IsGTestStatic = true; + configurationData.IsRuntimeStatic = false; + } } public class ConfigurationData : IWizardData From e9a5a3d261123e1e86c662d8b90b57670f47d460 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Fri, 10 Nov 2017 16:52:24 -0800 Subject: [PATCH 57/96] Add back telemetry with an option to turn it off (#86) * add back telemetry with an option to turn it off * update lisence on new file --- GoogleTestAdapter/Core/Resources.Designer.cs | 18 +++++++++++ GoogleTestAdapter/Core/Resources.resx | 6 ++++ .../Settings/IGoogleTestAdapterSettings.cs | 4 ++- .../Core/Settings/RunSettings.cs | 4 ++- .../Core/Settings/SettingsWrapper.cs | 9 +++++- .../NewProjectWizard/NewProjectWizard.csproj | 12 +++++++ .../NewProjectWizard/Telemetry.cs | 31 +++++++++++++++---- .../NewProjectWizard/WizardImplementation.cs | 4 +-- .../Resources/AllTestSettings.gta.runsettings | 1 + .../TestAdapter/GoogleTestAdapterSettings.xsd | 1 + .../GoogleTestExtensionOptionsPage.cs | 8 ++++- .../GoogleTestExtensionOptionsPage.cs | 3 +- .../GoogleTestExtensionOptionsPage.cs | 5 +++ .../OptionsPages/GeneralOptionsDialogPage.cs | 22 +++++++++++++ .../VsPackage.TAfGT/VsPackage.TAfGT.csproj | 25 ++++++++------- 15 files changed, 129 insertions(+), 24 deletions(-) create mode 100644 GoogleTestAdapter/VsPackage.TAfGT/OptionsPages/GeneralOptionsDialogPage.cs diff --git a/GoogleTestAdapter/Core/Resources.Designer.cs b/GoogleTestAdapter/Core/Resources.Designer.cs index 60fb8945e..b49527c0d 100644 --- a/GoogleTestAdapter/Core/Resources.Designer.cs +++ b/GoogleTestAdapter/Core/Resources.Designer.cs @@ -796,6 +796,24 @@ internal static string OptionPrintTestOutputDescription { } } + /// + /// Looks up a localized string similar to Report Telemetry. + /// + internal static string OptionReportNewProjectTelemetry { + get { + return ResourceManager.GetString("OptionReportNewProjectTelemetry", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Report telemetry to Visual Studio when using the New Project wizard for Google Test. + /// + internal static string OptionReportNewProjectTelemetryDescription { + get { + return ResourceManager.GetString("OptionReportNewProjectTelemetryDescription", resourceCulture); + } + } + /// /// Looks up a localized string similar to Also run disabled tests. /// diff --git a/GoogleTestAdapter/Core/Resources.resx b/GoogleTestAdapter/Core/Resources.resx index 0b6703a94..4fdb1440c 100644 --- a/GoogleTestAdapter/Core/Resources.resx +++ b/GoogleTestAdapter/Core/Resources.resx @@ -421,6 +421,12 @@ Placeholders: Print the output of the Google Test executable(s) to the Tests Output window. + + Report Telemetry + + + Report telemetry to Visual Studio when using the New Project wizard for Google Test + Also run disabled tests diff --git a/GoogleTestAdapter/Core/Settings/IGoogleTestAdapterSettings.cs b/GoogleTestAdapter/Core/Settings/IGoogleTestAdapterSettings.cs index 2298625eb..a05b01c47 100644 --- a/GoogleTestAdapter/Core/Settings/IGoogleTestAdapterSettings.cs +++ b/GoogleTestAdapter/Core/Settings/IGoogleTestAdapterSettings.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 11/2017. namespace GoogleTestAdapter.Settings { @@ -43,6 +43,7 @@ public interface IGoogleTestAdapterSettings bool? TimestampOutput { get; set; } bool? ShowReleaseNotes { get; set; } bool? KillProcessesOnCancel { get; set; } + bool? ReportNewProjectTelemetry { get; set; } bool? UseNewTestExecutionFramework { get; set; } @@ -78,6 +79,7 @@ public static void GetUnsetValuesFrom(this IGoogleTestAdapterSettings self, IGoo self.TimestampOutput = self.TimestampOutput ?? other.TimestampOutput; self.ShowReleaseNotes = self.ShowReleaseNotes ?? other.ShowReleaseNotes; self.KillProcessesOnCancel = self.KillProcessesOnCancel ?? other.KillProcessesOnCancel; + self.ReportNewProjectTelemetry = self.ReportNewProjectTelemetry ?? other.ReportNewProjectTelemetry; self.UseNewTestExecutionFramework = self.UseNewTestExecutionFramework ?? other.UseNewTestExecutionFramework; diff --git a/GoogleTestAdapter/Core/Settings/RunSettings.cs b/GoogleTestAdapter/Core/Settings/RunSettings.cs index 1f9db9640..3b471946c 100644 --- a/GoogleTestAdapter/Core/Settings/RunSettings.cs +++ b/GoogleTestAdapter/Core/Settings/RunSettings.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 11/2017. using System; using System.Diagnostics; @@ -92,6 +92,8 @@ public RunSettings(string projectRegex) public virtual bool? KillProcessesOnCancel { get; set; } public bool ShouldSerializeKillProcessesOnCancel() { return KillProcessesOnCancel != null; } + public virtual bool? ReportNewProjectTelemetry { get; set; } + public bool ShouldSerializeReportNewProjectTelemetry() { return ReportNewProjectTelemetry != null; } public virtual bool? UseNewTestExecutionFramework { get; set; } public bool ShouldSerializeUseNewTestExecutionFramework() { return UseNewTestExecutionFramework != null; } diff --git a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs index b60174ed0..7b2f60c11 100644 --- a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs +++ b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 9/2017. +// This file has been modified by Microsoft on 11/2017. using System; using System.Collections.Generic; @@ -382,6 +382,13 @@ public virtual List TraitsRegexesAfter public virtual bool KillProcessesOnCancel => _currentSettings.KillProcessesOnCancel ?? OptionKillProcessesOnCancelDefaultValue; + + public static readonly string OptionReportNewProjectTelemetry = Resources.OptionReportNewProjectTelemetry; + public const bool OptionReportNewProjectTelemetryDefaultValue = true; + public static readonly string OptionReportNewProjectTelemetryDescription = Resources.OptionReportNewProjectTelemetryDescription; + + public virtual bool ReportNewProjectTelemetry => _currentSettings.ReportNewProjectTelemetry ?? OptionReportNewProjectTelemetryDefaultValue; + #endregion #region ParallelizationOptionsPage diff --git a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj index 4e176f362..c73726432 100644 --- a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj +++ b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj @@ -89,6 +89,12 @@ True + + True + + + True + True @@ -169,6 +175,12 @@ Designer + + + {55294b5f-a075-43f2-b0e9-2b11925e8b91} + VsPackage.TAfGT + + diff --git a/GoogleTestAdapter/NewProjectWizard/Telemetry.cs b/GoogleTestAdapter/NewProjectWizard/Telemetry.cs index 60c7a2e23..be647406a 100644 --- a/GoogleTestAdapter/NewProjectWizard/Telemetry.cs +++ b/GoogleTestAdapter/NewProjectWizard/Telemetry.cs @@ -2,8 +2,12 @@ // Licensed under the MIT license. using EnvDTE; +using GoogleTestAdapter.VsPackage; using Microsoft.ApplicationInsights; using Microsoft.ApplicationInsights.Extensibility; +using Microsoft.VisualStudio; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; using System; using System.Collections.Generic; using System.Diagnostics; @@ -14,26 +18,41 @@ namespace Microsoft.NewProjectWizard public static class Telemetry { private static TelemetryClient wizardClient = null; + private static GoogleTestExtensionOptionsPage options = null; static Telemetry() { TelemetryConfiguration config = CreateTelemetryConfig(); wizardClient = new TelemetryClient(config); PopulateContext(wizardClient, "GoogleTestAdapter"); + IVsShell shell = (IVsShell)Package.GetGlobalService(typeof(SVsShell)); + Guid guid = new Guid("6fac3232-df1d-400a-95ac-7daeaaee74ac"); + IVsPackage vsPackageTAfGT; + // TAfGT Package containing options + if (ErrorHandler.Failed(shell.IsPackageLoaded(guid, out vsPackageTAfGT))) + ErrorHandler.ThrowOnFailure(shell.LoadPackage(guid, out vsPackageTAfGT)); + + options = (GoogleTestExtensionOptionsPage)vsPackageTAfGT; } public static void LogProjectCreated(string nugetPackage) { - Dictionary projectCreatedProperties = new Dictionary(); - projectCreatedProperties.Add("NuGetUsed", nugetPackage); - wizardClient.TrackEvent("GTestProjectCreated", projectCreatedProperties, null); + if (options.ReportNewProjectTelemetry) + { + Dictionary projectCreatedProperties = new Dictionary(); + projectCreatedProperties.Add("NuGetUsed", nugetPackage); + wizardClient.TrackEvent("GTestProjectCreated", projectCreatedProperties, null); + } } public static void LogProjectCancelled(string exception) { - Dictionary projectCreatedProperties = new Dictionary(); - projectCreatedProperties.Add("Exception", exception); - wizardClient.TrackEvent("GTestProjectCancelled", projectCreatedProperties, null); + if (options.ReportNewProjectTelemetry) + { + Dictionary projectCreatedProperties = new Dictionary(); + projectCreatedProperties.Add("Exception", exception); + wizardClient.TrackEvent("GTestProjectCancelled", projectCreatedProperties, null); + } } private static TelemetryConfiguration CreateTelemetryConfig() diff --git a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs index 700773b1f..57f29a50a 100644 --- a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs +++ b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs @@ -196,11 +196,11 @@ public void RunStarted(object automationObject, replacementsDictionary[TargetPlatformVersion] = versionString; } - //Telemetry.LogProjectCreated(nugetPackage); + Telemetry.LogProjectCreated(nugetPackage); } catch (WizardCancelledException ex) { - //Telemetry.LogProjectCancelled(ex.Message); + Telemetry.LogProjectCancelled(ex.Message); throw; } } diff --git a/GoogleTestAdapter/Resources/AllTestSettings.gta.runsettings b/GoogleTestAdapter/Resources/AllTestSettings.gta.runsettings index c959108e2..ac5a12e56 100644 --- a/GoogleTestAdapter/Resources/AllTestSettings.gta.runsettings +++ b/GoogleTestAdapter/Resources/AllTestSettings.gta.runsettings @@ -28,6 +28,7 @@ true true false + true diff --git a/GoogleTestAdapter/TestAdapter/GoogleTestAdapterSettings.xsd b/GoogleTestAdapter/TestAdapter/GoogleTestAdapterSettings.xsd index 3be9ce6fc..3267e2660 100644 --- a/GoogleTestAdapter/TestAdapter/GoogleTestAdapterSettings.xsd +++ b/GoogleTestAdapter/TestAdapter/GoogleTestAdapterSettings.xsd @@ -73,6 +73,7 @@ + diff --git a/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs index e49755ce4..09ed9a4d0 100644 --- a/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 9/2017. +// This file has been modified by Microsoft on 11/2017. using GoogleTestAdapter.VsPackage.ReleaseNotes; using Microsoft.VisualStudio.Shell; @@ -60,5 +60,11 @@ private bool ShowReleaseNotes { get { return _generalOptions.ShowReleaseNotes; } } + + // No New Project wizard for GTA + private bool ReportNewProjectTelemetry + { + get { return false; } + } } } diff --git a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs index 90bb61a3f..e3fdec708 100644 --- a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 9/2017. +// This file has been modified by Microsoft on 11/2017. using GoogleTestAdapter.Settings; using GoogleTestAdapter.TestAdapter.Settings; @@ -188,6 +188,7 @@ private RunSettings GetRunSettingsFromOptionPages() BatchForTestSetup = _generalOptions.BatchForTestSetup, BatchForTestTeardown = _generalOptions.BatchForTestTeardown, KillProcessesOnCancel = _generalOptions.KillProcessesOnCancel, + ReportNewProjectTelemetry = ReportNewProjectTelemetry, CatchExceptions = _googleTestOptions.CatchExceptions, BreakOnFailure = _googleTestOptions.BreakOnFailure, diff --git a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs index c0d37dc76..87cdb72ef 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs @@ -26,5 +26,10 @@ private bool ShowReleaseNotes { get { return false; } } + + public bool ReportNewProjectTelemetry + { + get { return _generalOptions.ReportNewProjectTelemetry; } + } } } diff --git a/GoogleTestAdapter/VsPackage.TAfGT/OptionsPages/GeneralOptionsDialogPage.cs b/GoogleTestAdapter/VsPackage.TAfGT/OptionsPages/GeneralOptionsDialogPage.cs new file mode 100644 index 000000000..21dd75f77 --- /dev/null +++ b/GoogleTestAdapter/VsPackage.TAfGT/OptionsPages/GeneralOptionsDialogPage.cs @@ -0,0 +1,22 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +using GoogleTestAdapter.Settings; + +namespace GoogleTestAdapter.VsPackage.OptionsPages +{ + + public partial class GeneralOptionsDialogPage : NotifyingDialogPage + { + [LocalizedCategory("CategoryMiscName")] + [LocalizedDisplayName("OptionReportNewProjectTelemetry")] + [LocalizedDescription("OptionReportNewProjectTelemetryDescription")] + public bool ReportNewProjectTelemetry + { + get { return _reportNewProjectTelemetry; } + set { SetAndNotify(ref _reportNewProjectTelemetry, value); } + } + private bool _reportNewProjectTelemetry = SettingsWrapper.OptionReportNewProjectTelemetryDefaultValue; + } + +} \ No newline at end of file diff --git a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj index 9cb3a9132..81b0b2bf9 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj +++ b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj @@ -74,6 +74,9 @@ + + Component + @@ -211,15 +214,15 @@ - $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.VsPackage.TAfGT.dll.lcl + $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.VsPackage.TAfGT.dll.lcl Microsoft StrongName - - - false + + + false @@ -274,12 +277,12 @@ - - - - Microsoft - StrongName - - + + + + Microsoft + StrongName + + \ No newline at end of file From d141196872d9360dbee6e45123df41ebeee23503 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Mon, 13 Nov 2017 17:00:12 -0800 Subject: [PATCH 58/96] Revert "Add back telemetry with an option to turn it off (#86)" (#88) This reverts commit e9a5a3d261123e1e86c662d8b90b57670f47d460. --- GoogleTestAdapter/Core/Resources.Designer.cs | 18 ----------- GoogleTestAdapter/Core/Resources.resx | 6 ---- .../Settings/IGoogleTestAdapterSettings.cs | 4 +-- .../Core/Settings/RunSettings.cs | 4 +-- .../Core/Settings/SettingsWrapper.cs | 9 +----- .../NewProjectWizard/NewProjectWizard.csproj | 12 ------- .../NewProjectWizard/Telemetry.cs | 31 ++++--------------- .../NewProjectWizard/WizardImplementation.cs | 4 +-- .../Resources/AllTestSettings.gta.runsettings | 1 - .../TestAdapter/GoogleTestAdapterSettings.xsd | 1 - .../GoogleTestExtensionOptionsPage.cs | 8 +---- .../GoogleTestExtensionOptionsPage.cs | 3 +- .../GoogleTestExtensionOptionsPage.cs | 5 --- .../OptionsPages/GeneralOptionsDialogPage.cs | 22 ------------- .../VsPackage.TAfGT/VsPackage.TAfGT.csproj | 25 +++++++-------- 15 files changed, 24 insertions(+), 129 deletions(-) delete mode 100644 GoogleTestAdapter/VsPackage.TAfGT/OptionsPages/GeneralOptionsDialogPage.cs diff --git a/GoogleTestAdapter/Core/Resources.Designer.cs b/GoogleTestAdapter/Core/Resources.Designer.cs index b49527c0d..60fb8945e 100644 --- a/GoogleTestAdapter/Core/Resources.Designer.cs +++ b/GoogleTestAdapter/Core/Resources.Designer.cs @@ -796,24 +796,6 @@ internal static string OptionPrintTestOutputDescription { } } - /// - /// Looks up a localized string similar to Report Telemetry. - /// - internal static string OptionReportNewProjectTelemetry { - get { - return ResourceManager.GetString("OptionReportNewProjectTelemetry", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Report telemetry to Visual Studio when using the New Project wizard for Google Test. - /// - internal static string OptionReportNewProjectTelemetryDescription { - get { - return ResourceManager.GetString("OptionReportNewProjectTelemetryDescription", resourceCulture); - } - } - /// /// Looks up a localized string similar to Also run disabled tests. /// diff --git a/GoogleTestAdapter/Core/Resources.resx b/GoogleTestAdapter/Core/Resources.resx index 4fdb1440c..0b6703a94 100644 --- a/GoogleTestAdapter/Core/Resources.resx +++ b/GoogleTestAdapter/Core/Resources.resx @@ -421,12 +421,6 @@ Placeholders: Print the output of the Google Test executable(s) to the Tests Output window. - - Report Telemetry - - - Report telemetry to Visual Studio when using the New Project wizard for Google Test - Also run disabled tests diff --git a/GoogleTestAdapter/Core/Settings/IGoogleTestAdapterSettings.cs b/GoogleTestAdapter/Core/Settings/IGoogleTestAdapterSettings.cs index a05b01c47..2298625eb 100644 --- a/GoogleTestAdapter/Core/Settings/IGoogleTestAdapterSettings.cs +++ b/GoogleTestAdapter/Core/Settings/IGoogleTestAdapterSettings.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 11/2017. +// This file has been modified by Microsoft on 6/2017. namespace GoogleTestAdapter.Settings { @@ -43,7 +43,6 @@ public interface IGoogleTestAdapterSettings bool? TimestampOutput { get; set; } bool? ShowReleaseNotes { get; set; } bool? KillProcessesOnCancel { get; set; } - bool? ReportNewProjectTelemetry { get; set; } bool? UseNewTestExecutionFramework { get; set; } @@ -79,7 +78,6 @@ public static void GetUnsetValuesFrom(this IGoogleTestAdapterSettings self, IGoo self.TimestampOutput = self.TimestampOutput ?? other.TimestampOutput; self.ShowReleaseNotes = self.ShowReleaseNotes ?? other.ShowReleaseNotes; self.KillProcessesOnCancel = self.KillProcessesOnCancel ?? other.KillProcessesOnCancel; - self.ReportNewProjectTelemetry = self.ReportNewProjectTelemetry ?? other.ReportNewProjectTelemetry; self.UseNewTestExecutionFramework = self.UseNewTestExecutionFramework ?? other.UseNewTestExecutionFramework; diff --git a/GoogleTestAdapter/Core/Settings/RunSettings.cs b/GoogleTestAdapter/Core/Settings/RunSettings.cs index 3b471946c..1f9db9640 100644 --- a/GoogleTestAdapter/Core/Settings/RunSettings.cs +++ b/GoogleTestAdapter/Core/Settings/RunSettings.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 11/2017. +// This file has been modified by Microsoft on 6/2017. using System; using System.Diagnostics; @@ -92,8 +92,6 @@ public RunSettings(string projectRegex) public virtual bool? KillProcessesOnCancel { get; set; } public bool ShouldSerializeKillProcessesOnCancel() { return KillProcessesOnCancel != null; } - public virtual bool? ReportNewProjectTelemetry { get; set; } - public bool ShouldSerializeReportNewProjectTelemetry() { return ReportNewProjectTelemetry != null; } public virtual bool? UseNewTestExecutionFramework { get; set; } public bool ShouldSerializeUseNewTestExecutionFramework() { return UseNewTestExecutionFramework != null; } diff --git a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs index 7b2f60c11..b60174ed0 100644 --- a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs +++ b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 11/2017. +// This file has been modified by Microsoft on 9/2017. using System; using System.Collections.Generic; @@ -382,13 +382,6 @@ public virtual List TraitsRegexesAfter public virtual bool KillProcessesOnCancel => _currentSettings.KillProcessesOnCancel ?? OptionKillProcessesOnCancelDefaultValue; - - public static readonly string OptionReportNewProjectTelemetry = Resources.OptionReportNewProjectTelemetry; - public const bool OptionReportNewProjectTelemetryDefaultValue = true; - public static readonly string OptionReportNewProjectTelemetryDescription = Resources.OptionReportNewProjectTelemetryDescription; - - public virtual bool ReportNewProjectTelemetry => _currentSettings.ReportNewProjectTelemetry ?? OptionReportNewProjectTelemetryDefaultValue; - #endregion #region ParallelizationOptionsPage diff --git a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj index c73726432..4e176f362 100644 --- a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj +++ b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj @@ -89,12 +89,6 @@ True - - True - - - True - True @@ -175,12 +169,6 @@ Designer - - - {55294b5f-a075-43f2-b0e9-2b11925e8b91} - VsPackage.TAfGT - - diff --git a/GoogleTestAdapter/NewProjectWizard/Telemetry.cs b/GoogleTestAdapter/NewProjectWizard/Telemetry.cs index be647406a..60c7a2e23 100644 --- a/GoogleTestAdapter/NewProjectWizard/Telemetry.cs +++ b/GoogleTestAdapter/NewProjectWizard/Telemetry.cs @@ -2,12 +2,8 @@ // Licensed under the MIT license. using EnvDTE; -using GoogleTestAdapter.VsPackage; using Microsoft.ApplicationInsights; using Microsoft.ApplicationInsights.Extensibility; -using Microsoft.VisualStudio; -using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Shell.Interop; using System; using System.Collections.Generic; using System.Diagnostics; @@ -18,41 +14,26 @@ namespace Microsoft.NewProjectWizard public static class Telemetry { private static TelemetryClient wizardClient = null; - private static GoogleTestExtensionOptionsPage options = null; static Telemetry() { TelemetryConfiguration config = CreateTelemetryConfig(); wizardClient = new TelemetryClient(config); PopulateContext(wizardClient, "GoogleTestAdapter"); - IVsShell shell = (IVsShell)Package.GetGlobalService(typeof(SVsShell)); - Guid guid = new Guid("6fac3232-df1d-400a-95ac-7daeaaee74ac"); - IVsPackage vsPackageTAfGT; - // TAfGT Package containing options - if (ErrorHandler.Failed(shell.IsPackageLoaded(guid, out vsPackageTAfGT))) - ErrorHandler.ThrowOnFailure(shell.LoadPackage(guid, out vsPackageTAfGT)); - - options = (GoogleTestExtensionOptionsPage)vsPackageTAfGT; } public static void LogProjectCreated(string nugetPackage) { - if (options.ReportNewProjectTelemetry) - { - Dictionary projectCreatedProperties = new Dictionary(); - projectCreatedProperties.Add("NuGetUsed", nugetPackage); - wizardClient.TrackEvent("GTestProjectCreated", projectCreatedProperties, null); - } + Dictionary projectCreatedProperties = new Dictionary(); + projectCreatedProperties.Add("NuGetUsed", nugetPackage); + wizardClient.TrackEvent("GTestProjectCreated", projectCreatedProperties, null); } public static void LogProjectCancelled(string exception) { - if (options.ReportNewProjectTelemetry) - { - Dictionary projectCreatedProperties = new Dictionary(); - projectCreatedProperties.Add("Exception", exception); - wizardClient.TrackEvent("GTestProjectCancelled", projectCreatedProperties, null); - } + Dictionary projectCreatedProperties = new Dictionary(); + projectCreatedProperties.Add("Exception", exception); + wizardClient.TrackEvent("GTestProjectCancelled", projectCreatedProperties, null); } private static TelemetryConfiguration CreateTelemetryConfig() diff --git a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs index 57f29a50a..700773b1f 100644 --- a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs +++ b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs @@ -196,11 +196,11 @@ public void RunStarted(object automationObject, replacementsDictionary[TargetPlatformVersion] = versionString; } - Telemetry.LogProjectCreated(nugetPackage); + //Telemetry.LogProjectCreated(nugetPackage); } catch (WizardCancelledException ex) { - Telemetry.LogProjectCancelled(ex.Message); + //Telemetry.LogProjectCancelled(ex.Message); throw; } } diff --git a/GoogleTestAdapter/Resources/AllTestSettings.gta.runsettings b/GoogleTestAdapter/Resources/AllTestSettings.gta.runsettings index ac5a12e56..c959108e2 100644 --- a/GoogleTestAdapter/Resources/AllTestSettings.gta.runsettings +++ b/GoogleTestAdapter/Resources/AllTestSettings.gta.runsettings @@ -28,7 +28,6 @@ true true false - true diff --git a/GoogleTestAdapter/TestAdapter/GoogleTestAdapterSettings.xsd b/GoogleTestAdapter/TestAdapter/GoogleTestAdapterSettings.xsd index 3267e2660..3be9ce6fc 100644 --- a/GoogleTestAdapter/TestAdapter/GoogleTestAdapterSettings.xsd +++ b/GoogleTestAdapter/TestAdapter/GoogleTestAdapterSettings.xsd @@ -73,7 +73,6 @@ - diff --git a/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs index 09ed9a4d0..e49755ce4 100644 --- a/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 11/2017. +// This file has been modified by Microsoft on 9/2017. using GoogleTestAdapter.VsPackage.ReleaseNotes; using Microsoft.VisualStudio.Shell; @@ -60,11 +60,5 @@ private bool ShowReleaseNotes { get { return _generalOptions.ShowReleaseNotes; } } - - // No New Project wizard for GTA - private bool ReportNewProjectTelemetry - { - get { return false; } - } } } diff --git a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs index e3fdec708..90bb61a3f 100644 --- a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 11/2017. +// This file has been modified by Microsoft on 9/2017. using GoogleTestAdapter.Settings; using GoogleTestAdapter.TestAdapter.Settings; @@ -188,7 +188,6 @@ private RunSettings GetRunSettingsFromOptionPages() BatchForTestSetup = _generalOptions.BatchForTestSetup, BatchForTestTeardown = _generalOptions.BatchForTestTeardown, KillProcessesOnCancel = _generalOptions.KillProcessesOnCancel, - ReportNewProjectTelemetry = ReportNewProjectTelemetry, CatchExceptions = _googleTestOptions.CatchExceptions, BreakOnFailure = _googleTestOptions.BreakOnFailure, diff --git a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs index 87cdb72ef..c0d37dc76 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs @@ -26,10 +26,5 @@ private bool ShowReleaseNotes { get { return false; } } - - public bool ReportNewProjectTelemetry - { - get { return _generalOptions.ReportNewProjectTelemetry; } - } } } diff --git a/GoogleTestAdapter/VsPackage.TAfGT/OptionsPages/GeneralOptionsDialogPage.cs b/GoogleTestAdapter/VsPackage.TAfGT/OptionsPages/GeneralOptionsDialogPage.cs deleted file mode 100644 index 21dd75f77..000000000 --- a/GoogleTestAdapter/VsPackage.TAfGT/OptionsPages/GeneralOptionsDialogPage.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -using GoogleTestAdapter.Settings; - -namespace GoogleTestAdapter.VsPackage.OptionsPages -{ - - public partial class GeneralOptionsDialogPage : NotifyingDialogPage - { - [LocalizedCategory("CategoryMiscName")] - [LocalizedDisplayName("OptionReportNewProjectTelemetry")] - [LocalizedDescription("OptionReportNewProjectTelemetryDescription")] - public bool ReportNewProjectTelemetry - { - get { return _reportNewProjectTelemetry; } - set { SetAndNotify(ref _reportNewProjectTelemetry, value); } - } - private bool _reportNewProjectTelemetry = SettingsWrapper.OptionReportNewProjectTelemetryDefaultValue; - } - -} \ No newline at end of file diff --git a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj index 81b0b2bf9..9cb3a9132 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj +++ b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj @@ -74,9 +74,6 @@ - - Component - @@ -214,15 +211,15 @@ - $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.VsPackage.TAfGT.dll.lcl + $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.VsPackage.TAfGT.dll.lcl Microsoft StrongName - - - false + + + false @@ -277,12 +274,12 @@ - - - - Microsoft - StrongName - - + + + + Microsoft + StrongName + + \ No newline at end of file From 3b5f67b24b8db1647132356fb2dde16f7b2ed22a Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Tue, 14 Nov 2017 15:35:09 -0800 Subject: [PATCH 59/96] remove telemetry (#90) --- .../ApplicationInsights.config | 3 - .../NewProjectWizard/NewProjectWizard.csproj | 5 - .../NewProjectWizard/Telemetry.cs | 69 ------- .../NewProjectWizard/WizardImplementation.cs | 190 +++++++++--------- .../NewProjectWizard/packages.config | 1 - 5 files changed, 90 insertions(+), 178 deletions(-) delete mode 100644 GoogleTestAdapter/NewProjectWizard/ApplicationInsights.config delete mode 100644 GoogleTestAdapter/NewProjectWizard/Telemetry.cs diff --git a/GoogleTestAdapter/NewProjectWizard/ApplicationInsights.config b/GoogleTestAdapter/NewProjectWizard/ApplicationInsights.config deleted file mode 100644 index ec406213f..000000000 --- a/GoogleTestAdapter/NewProjectWizard/ApplicationInsights.config +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj index 4e176f362..af07d62b9 100644 --- a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj +++ b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj @@ -58,9 +58,6 @@ - - $(NuGetPackages)Microsoft.ApplicationInsights.2.3.0\lib\net45\Microsoft.ApplicationInsights.dll - $(NuGetPackages)Microsoft.Build.Utilities.Core.14.3.0\lib\net45\Microsoft.Build.Utilities.Core.dll @@ -126,7 +123,6 @@ SinglePageWizardDialog.xaml - @@ -139,7 +135,6 @@ Resources.resx True - diff --git a/GoogleTestAdapter/NewProjectWizard/Telemetry.cs b/GoogleTestAdapter/NewProjectWizard/Telemetry.cs deleted file mode 100644 index 60c7a2e23..000000000 --- a/GoogleTestAdapter/NewProjectWizard/Telemetry.cs +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT license. - -using EnvDTE; -using Microsoft.ApplicationInsights; -using Microsoft.ApplicationInsights.Extensibility; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Reflection; - -namespace Microsoft.NewProjectWizard -{ - public static class Telemetry - { - private static TelemetryClient wizardClient = null; - - static Telemetry() - { - TelemetryConfiguration config = CreateTelemetryConfig(); - wizardClient = new TelemetryClient(config); - PopulateContext(wizardClient, "GoogleTestAdapter"); - } - - public static void LogProjectCreated(string nugetPackage) - { - Dictionary projectCreatedProperties = new Dictionary(); - projectCreatedProperties.Add("NuGetUsed", nugetPackage); - wizardClient.TrackEvent("GTestProjectCreated", projectCreatedProperties, null); - } - - public static void LogProjectCancelled(string exception) - { - Dictionary projectCreatedProperties = new Dictionary(); - projectCreatedProperties.Add("Exception", exception); - wizardClient.TrackEvent("GTestProjectCancelled", projectCreatedProperties, null); - } - - private static TelemetryConfiguration CreateTelemetryConfig() - { - TelemetryConfiguration config = TelemetryConfiguration.Active; -#if DEBUG - config.TelemetryChannel.DeveloperMode = true; -#endif - return config; - } - - private static void PopulateContext(TelemetryClient client, string scenario) - { - try - { - client.Context.Session.Id = DateTime.Now.ToFileTime().ToString(); - - string version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); - client.Context.Properties["App.Version"] = version; - - var dte = (DTE)Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(DTE)); - if (dte != null) - client.Context.Properties["VisualStudio.Version"] = dte.Version; - - client.Context.Properties["App.Scenario"] = scenario; - } - catch (MissingMemberException mme) - { - Trace.WriteLine(String.Format("Error populating telemetry context: {0}", mme.ToString())); - } - } - } -} diff --git a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs index 700773b1f..8c67292ce 100644 --- a/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs +++ b/GoogleTestAdapter/NewProjectWizard/WizardImplementation.cs @@ -74,134 +74,124 @@ public void RunStarted(object automationObject, Dictionary replacementsDictionary, WizardRunKind runKind, object[] customParams) { - try - { - DTE dte = (DTE)Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(SDTE)); - Projects dteProjects = dte.Solution.Projects; - List projectNames = new List(); - bool isPlatformSet = false; + DTE dte = (DTE)Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(SDTE)); + Projects dteProjects = dte.Solution.Projects; + List projectNames = new List(); + bool isPlatformSet = false; - foreach (Project project in dteProjects) - { - // TODO: Filter out projects not applicable - projects.Add(project); - projectNames.Add(project.Name); - } + foreach (Project project in dteProjects) + { + // TODO: Filter out projects not applicable + projects.Add(project); + projectNames.Add(project.Name); + } - ConfigurationData configurationData = new ConfigurationData(dte, projectNames.ToArray()); + ConfigurationData configurationData = new ConfigurationData(dte, projectNames.ToArray()); - SinglePageWizardDialog wiz = new SinglePageWizardDialog(Resources.WizardTitle, configurationData); + SinglePageWizardDialog wiz = new SinglePageWizardDialog(Resources.WizardTitle, configurationData); - bool? success = false; + bool? success = false; - // If RunSilent is true, we're in automated testing - if (replacementsDictionary[RunSilent] == "True") - { - success = true; - SetDefaultData(ref configurationData); - } - else - { - success = wiz.ShowModal(); - } + // If RunSilent is true, we're in automated testing + if (replacementsDictionary[RunSilent] == "True") + { + success = true; + SetDefaultData(ref configurationData); + } + else + { + success = wiz.ShowModal(); + } - if (success == false) - { - throw new WizardCancelledException(); - } + if (success == false) + { + throw new WizardCancelledException(); + } - selectedProjectIndex = configurationData.ProjectIndex; + selectedProjectIndex = configurationData.ProjectIndex; - if (selectedProjectIndex >= 0) + if (selectedProjectIndex >= 0) + { + foreach (Property prop in projects[selectedProjectIndex].Properties) { - foreach (Property prop in projects[selectedProjectIndex].Properties) + if (prop.Name.Equals("WindowsTargetPlatformVersion")) { - if (prop.Name.Equals("WindowsTargetPlatformVersion")) - { - replacementsDictionary[TargetPlatformVersion] = (string)prop.Value; - isPlatformSet = true; - } + replacementsDictionary[TargetPlatformVersion] = (string)prop.Value; + isPlatformSet = true; } } + } - string consumeGTestAs = configurationData.IsGTestStatic ? "static" : "dyn"; - string runtimeLibs = configurationData.IsRuntimeStatic ? "static" : "dyn"; - string nugetPackage = "Microsoft.googletest.v140.windesktop.msvcstl." + consumeGTestAs + ".rt-" + runtimeLibs; + string consumeGTestAs = configurationData.IsGTestStatic ? "static" : "dyn"; + string runtimeLibs = configurationData.IsRuntimeStatic ? "static" : "dyn"; + string nugetPackage = "Microsoft.googletest.v140.windesktop.msvcstl." + consumeGTestAs + ".rt-" + runtimeLibs; - // Work around so we can choose the package for the nuget wizard - string tmpWizardData = Path.GetTempFileName(); - File.AppendAllText(tmpWizardData, ""); - File.AppendAllText(tmpWizardData, replacementsDictionary[WizardData].Replace("$nugetpackage$", nugetPackage)); - File.AppendAllText(tmpWizardData, ""); - customParams[0] = tmpWizardData; + // Work around so we can choose the package for the nuget wizard + string tmpWizardData = Path.GetTempFileName(); + File.AppendAllText(tmpWizardData, ""); + File.AppendAllText(tmpWizardData, replacementsDictionary[WizardData].Replace("$nugetpackage$", nugetPackage)); + File.AppendAllText(tmpWizardData, ""); + customParams[0] = tmpWizardData; - try - { - Assembly nugetAssembly = Assembly.Load("NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); - nugetWizard = (IWizard)nugetAssembly.CreateInstance("NuGet.VisualStudio.TemplateWizard"); - nugetWizard.RunStarted(automationObject, replacementsDictionary, runKind, customParams); - } - catch (Exception) - { - ShowRtlAwareMessageBox(Resources.NuGetInteropNotFound); - throw; - } + try + { + Assembly nugetAssembly = Assembly.Load("NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); + nugetWizard = (IWizard)nugetAssembly.CreateInstance("NuGet.VisualStudio.TemplateWizard"); + nugetWizard.RunStarted(automationObject, replacementsDictionary, runKind, customParams); + } + catch (Exception) + { + ShowRtlAwareMessageBox(Resources.NuGetInteropNotFound); + throw; + } - if (configurationData.IsRuntimeStatic) - { - replacementsDictionary[RuntimeRelease] = "MultiThreaded"; - replacementsDictionary[RuntimeDebug] = "MultiThreadedDebug"; - } - else + if (configurationData.IsRuntimeStatic) + { + replacementsDictionary[RuntimeRelease] = "MultiThreaded"; + replacementsDictionary[RuntimeDebug] = "MultiThreadedDebug"; + } + else + { + replacementsDictionary[RuntimeRelease] = "MultiThreadedDLL"; + replacementsDictionary[RuntimeDebug] = "MultiThreadedDebugDLL"; + } + + if (!isPlatformSet) + { + IEnumerable platformSdks = ToolLocationHelper.GetTargetPlatformSdks(); + IEnumerable allSdks = WizardImplementation.GetAllPlatformSdks(); + TargetPlatformSDK latestSdk = allSdks.FirstOrDefault(); + + if (latestSdk == null) { - replacementsDictionary[RuntimeRelease] = "MultiThreadedDLL"; - replacementsDictionary[RuntimeDebug] = "MultiThreadedDebugDLL"; + ShowRtlAwareMessageBox(Resources.WinSDKNotFound); + throw new WizardCancelledException(Resources.WinSDKNotFound); } - if (!isPlatformSet) + string versionString; + + if (latestSdk.TargetPlatformVersion.Major >= 10) { - IEnumerable platformSdks = ToolLocationHelper.GetTargetPlatformSdks(); - IEnumerable allSdks = WizardImplementation.GetAllPlatformSdks(); - TargetPlatformSDK latestSdk = allSdks.FirstOrDefault(); + List allPlatformsForLatestSdk = ToolLocationHelper.GetPlatformsForSDK("Windows", latestSdk.TargetPlatformVersion) + .Select(moniker => TryParsePlatformVersion(moniker)) + .Where(name => name != null) + .OrderByDescending(p => p.Version).ToList(); + Platform latestPlatform = allPlatformsForLatestSdk.FirstOrDefault(); - if (latestSdk == null) + if (latestPlatform == null) { ShowRtlAwareMessageBox(Resources.WinSDKNotFound); throw new WizardCancelledException(Resources.WinSDKNotFound); } - string versionString; - - if (latestSdk.TargetPlatformVersion.Major >= 10) - { - List allPlatformsForLatestSdk = ToolLocationHelper.GetPlatformsForSDK("Windows", latestSdk.TargetPlatformVersion) - .Select(moniker => TryParsePlatformVersion(moniker)) - .Where(name => name != null) - .OrderByDescending(p => p.Version).ToList(); - Platform latestPlatform = allPlatformsForLatestSdk.FirstOrDefault(); - - if (latestPlatform == null) - { - ShowRtlAwareMessageBox(Resources.WinSDKNotFound); - throw new WizardCancelledException(Resources.WinSDKNotFound); - } - - versionString = latestPlatform.Version.ToString(); - } - else - { - versionString = latestSdk.TargetPlatformVersion.ToString(); - } - - replacementsDictionary[TargetPlatformVersion] = versionString; + versionString = latestPlatform.Version.ToString(); + } + else + { + versionString = latestSdk.TargetPlatformVersion.ToString(); } - //Telemetry.LogProjectCreated(nugetPackage); - } - catch (WizardCancelledException ex) - { - //Telemetry.LogProjectCancelled(ex.Message); - throw; + replacementsDictionary[TargetPlatformVersion] = versionString; } } diff --git a/GoogleTestAdapter/NewProjectWizard/packages.config b/GoogleTestAdapter/NewProjectWizard/packages.config index 48350348e..4bab92b93 100644 --- a/GoogleTestAdapter/NewProjectWizard/packages.config +++ b/GoogleTestAdapter/NewProjectWizard/packages.config @@ -1,6 +1,5 @@  - \ No newline at end of file From 65f71d9dce8c530cda4c1d9ea02b4b326c956d11 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 22 Nov 2017 12:46:23 -0800 Subject: [PATCH 60/96] move templates to use template projects instead of pre build zip script (#91) --- GoogleTestAdapter/GoogleTestAdapter.sln | 14 +++- .../GoogleTest.vstemplate | 0 .../GoogleTestItemTemplate.csproj | 64 ++++++++++++++++ .../GoogleTestItemTemplate/Icon.ico | Bin 0 -> 64782 bytes .../test.cpp | 0 .../GoogleTest.vcxproj | 0 .../GoogleTest.vstemplate | 0 .../GoogleTestProjectTemplate.csproj | 69 ++++++++++++++++++ .../GoogleTestProjectTemplate/Icon.ico | Bin 0 -> 64782 bytes .../pch.cpp | 0 .../pch.h | 0 .../test.cpp | 0 .../ItemTemplates/Test/.gitignore | 1 - .../Packaging.TAfGT/Packaging.TAfGT.csproj | 29 ++++---- .../source.extension.vsixmanifest | 4 +- .../ProjectTemplates/Test/.gitignore | 1 - 16 files changed, 162 insertions(+), 20 deletions(-) rename GoogleTestAdapter/{ItemTemplates/Test/GoogleTest => GoogleTestItemTemplate}/GoogleTest.vstemplate (100%) create mode 100644 GoogleTestAdapter/GoogleTestItemTemplate/GoogleTestItemTemplate.csproj create mode 100644 GoogleTestAdapter/GoogleTestItemTemplate/Icon.ico rename GoogleTestAdapter/{ItemTemplates/Test/GoogleTest => GoogleTestItemTemplate}/test.cpp (100%) rename GoogleTestAdapter/{ProjectTemplates/Test/GoogleTest => GoogleTestProjectTemplate}/GoogleTest.vcxproj (100%) rename GoogleTestAdapter/{ProjectTemplates/Test/GoogleTest => GoogleTestProjectTemplate}/GoogleTest.vstemplate (100%) create mode 100644 GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTestProjectTemplate.csproj create mode 100644 GoogleTestAdapter/GoogleTestProjectTemplate/Icon.ico rename GoogleTestAdapter/{ProjectTemplates/Test/GoogleTest => GoogleTestProjectTemplate}/pch.cpp (100%) rename GoogleTestAdapter/{ProjectTemplates/Test/GoogleTest => GoogleTestProjectTemplate}/pch.h (100%) rename GoogleTestAdapter/{ProjectTemplates/Test/GoogleTest => GoogleTestProjectTemplate}/test.cpp (100%) delete mode 100644 GoogleTestAdapter/ItemTemplates/Test/.gitignore delete mode 100644 GoogleTestAdapter/ProjectTemplates/Test/.gitignore diff --git a/GoogleTestAdapter/GoogleTestAdapter.sln b/GoogleTestAdapter/GoogleTestAdapter.sln index e80257e60..170598ca3 100644 --- a/GoogleTestAdapter/GoogleTestAdapter.sln +++ b/GoogleTestAdapter/GoogleTestAdapter.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26823.1 +VisualStudioVersion = 15.0.27120.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{1F754A4D-BD42-4368-8B90-F3C03F24A2F3}" ProjectSection(SolutionItems) = preProject @@ -140,6 +140,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FakeGtestDllApplication", " EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FakeGtestDllApplication-x64", "FakeGtestDll\FakeGtestDllApplication-x64.vcxproj", "{05C435E1-603C-4402-B28C-E54932F3131C}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GoogleTestProjectTemplate", "GoogleTestProjectTemplate\GoogleTestProjectTemplate.csproj", "{A56C1F19-EAA6-4C99-BAC3-2B14D0CCC544}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GoogleTestItemTemplate", "GoogleTestItemTemplate\GoogleTestItemTemplate.csproj", "{87A1108A-3819-4B31-99EA-217F3E11E958}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution VsPackage.Shared\VsPackage.Shared.projitems*{55294b5f-a075-43f2-b0e9-2b11925e8b91}*SharedItemsImports = 4 @@ -279,6 +283,14 @@ Global {05C435E1-603C-4402-B28C-E54932F3131C}.Debug|Any CPU.Build.0 = Debug|x64 {05C435E1-603C-4402-B28C-E54932F3131C}.Release|Any CPU.ActiveCfg = Release|x64 {05C435E1-603C-4402-B28C-E54932F3131C}.Release|Any CPU.Build.0 = Release|x64 + {A56C1F19-EAA6-4C99-BAC3-2B14D0CCC544}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A56C1F19-EAA6-4C99-BAC3-2B14D0CCC544}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A56C1F19-EAA6-4C99-BAC3-2B14D0CCC544}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A56C1F19-EAA6-4C99-BAC3-2B14D0CCC544}.Release|Any CPU.Build.0 = Release|Any CPU + {87A1108A-3819-4B31-99EA-217F3E11E958}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87A1108A-3819-4B31-99EA-217F3E11E958}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87A1108A-3819-4B31-99EA-217F3E11E958}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87A1108A-3819-4B31-99EA-217F3E11E958}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/GoogleTestAdapter/ItemTemplates/Test/GoogleTest/GoogleTest.vstemplate b/GoogleTestAdapter/GoogleTestItemTemplate/GoogleTest.vstemplate similarity index 100% rename from GoogleTestAdapter/ItemTemplates/Test/GoogleTest/GoogleTest.vstemplate rename to GoogleTestAdapter/GoogleTestItemTemplate/GoogleTest.vstemplate diff --git a/GoogleTestAdapter/GoogleTestItemTemplate/GoogleTestItemTemplate.csproj b/GoogleTestAdapter/GoogleTestItemTemplate/GoogleTestItemTemplate.csproj new file mode 100644 index 000000000..8acbfbacf --- /dev/null +++ b/GoogleTestAdapter/GoogleTestItemTemplate/GoogleTestItemTemplate.csproj @@ -0,0 +1,64 @@ + + + + 15.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + Debug + AnyCPU + {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {87A1108A-3819-4B31-99EA-217F3E11E958} + Library + Properties + GoogleTestItemTemplate + GoogleTestItemTemplate + v4.6.1 + 512 + false + false + false + false + false + false + false + false + false + false + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + Designer + Test + + + + + + + + \ No newline at end of file diff --git a/GoogleTestAdapter/GoogleTestItemTemplate/Icon.ico b/GoogleTestAdapter/GoogleTestItemTemplate/Icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3f71a88c40dc3d6179ea3c2949cd19de7c916667 GIT binary patch literal 64782 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 literal 0 HcmV?d00001 diff --git a/GoogleTestAdapter/ItemTemplates/Test/GoogleTest/test.cpp b/GoogleTestAdapter/GoogleTestItemTemplate/test.cpp similarity index 100% rename from GoogleTestAdapter/ItemTemplates/Test/GoogleTest/test.cpp rename to GoogleTestAdapter/GoogleTestItemTemplate/test.cpp diff --git a/GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/GoogleTest.vcxproj b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vcxproj similarity index 100% rename from GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/GoogleTest.vcxproj rename to GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vcxproj diff --git a/GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/GoogleTest.vstemplate b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate similarity index 100% rename from GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/GoogleTest.vstemplate rename to GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate diff --git a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTestProjectTemplate.csproj b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTestProjectTemplate.csproj new file mode 100644 index 000000000..b7ace52af --- /dev/null +++ b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTestProjectTemplate.csproj @@ -0,0 +1,69 @@ + + + + 15.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + Debug + AnyCPU + {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {A56C1F19-EAA6-4C99-BAC3-2B14D0CCC544} + Library + Properties + GoogleTestProjectTemplate + GoogleTestProjectTemplate + v4.6.1 + 512 + false + false + false + false + false + false + false + false + false + false + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + Designer + Test + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestAdapter/GoogleTestProjectTemplate/Icon.ico b/GoogleTestAdapter/GoogleTestProjectTemplate/Icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..3f71a88c40dc3d6179ea3c2949cd19de7c916667 GIT binary patch literal 64782 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 literal 0 HcmV?d00001 diff --git a/GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/pch.cpp b/GoogleTestAdapter/GoogleTestProjectTemplate/pch.cpp similarity index 100% rename from GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/pch.cpp rename to GoogleTestAdapter/GoogleTestProjectTemplate/pch.cpp diff --git a/GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/pch.h b/GoogleTestAdapter/GoogleTestProjectTemplate/pch.h similarity index 100% rename from GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/pch.h rename to GoogleTestAdapter/GoogleTestProjectTemplate/pch.h diff --git a/GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/test.cpp b/GoogleTestAdapter/GoogleTestProjectTemplate/test.cpp similarity index 100% rename from GoogleTestAdapter/ProjectTemplates/Test/GoogleTest/test.cpp rename to GoogleTestAdapter/GoogleTestProjectTemplate/test.cpp diff --git a/GoogleTestAdapter/ItemTemplates/Test/.gitignore b/GoogleTestAdapter/ItemTemplates/Test/.gitignore deleted file mode 100644 index 071f467a1..000000000 --- a/GoogleTestAdapter/ItemTemplates/Test/.gitignore +++ /dev/null @@ -1 +0,0 @@ -GoogleTestIT.zip diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index 9e83effe0..13feddd62 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -49,14 +49,6 @@ - - CopyIfNewer - true - - - CopyIfNewer - true - CopyIfNewer true @@ -95,6 +87,20 @@ {fdc95d92-5e1e-4bdf-aa35-181851fce755} DiaResolver + + {87A1108A-3819-4B31-99EA-217F3E11E958} + GoogleTestItemTemplate + ItemTemplates + false + TemplateProjectOutputGroup%3b + + + {A56C1F19-EAA6-4C99-BAC3-2B14D0CCC544} + GoogleTestProjectTemplate + ProjectTemplates + false + TemplateProjectOutputGroup%3b + {44c04e51-d543-4155-a57e-bbeb73d3f8e5} TestAdapter @@ -177,12 +183,5 @@ - - - - - - - \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest index cd150046d..bcd9b6f78 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest +++ b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest @@ -27,12 +27,12 @@ - - + + diff --git a/GoogleTestAdapter/ProjectTemplates/Test/.gitignore b/GoogleTestAdapter/ProjectTemplates/Test/.gitignore deleted file mode 100644 index 20f1f01b3..000000000 --- a/GoogleTestAdapter/ProjectTemplates/Test/.gitignore +++ /dev/null @@ -1 +0,0 @@ -GoogleTestPT.zip From eb7a4aa6d4384a14f19e36f0c392fe69ae556591 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 22 Nov 2017 14:15:02 -0800 Subject: [PATCH 61/96] Update SetVersion.ps1 (#92) --- GoogleTestAdapter/SetVersion.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GoogleTestAdapter/SetVersion.ps1 b/GoogleTestAdapter/SetVersion.ps1 index bef19a23c..8487d6b61 100644 --- a/GoogleTestAdapter/SetVersion.ps1 +++ b/GoogleTestAdapter/SetVersion.ps1 @@ -13,7 +13,7 @@ $diatests_assembly_info = "DiaResolver.Tests\Properties\AssemblyInfo.cs" $packaging_gta_assembly_info = "Packaging.GTA\Properties\AssemblyInfo.cs" $packaging_tafgt_assembly_info = "Packaging.TAfGT\Properties\AssemblyInfo.cs" -$projecttemplates_vstemplate = "ProjectTemplates\Test\GoogleTest\GoogleTest.vstemplate" +$projecttemplates_vstemplate = "GoogleTestProjectTemplate\GoogleTest.vstemplate" $testadapter_assembly_info = "TestAdapter\Properties\AssemblyInfo.cs" $testadaptertests_assembly_info = "TestAdapter.Tests\Properties\AssemblyInfo.cs" From d7e70313aec2ec41b151e4836585449fa8024fc3 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Thu, 30 Nov 2017 11:39:03 -0800 Subject: [PATCH 62/96] Add null check for native method that returns null on fail (#94) * add null check for native method that returns null on fail * move null check out of loop * add an error to the log on failure and add a null check in the other place it's used as well --- GoogleTestAdapter/DiaResolver/PeParser.cs | 13 +++++++++++-- GoogleTestAdapter/DiaResolver/Resources.Designer.cs | 9 +++++++++ GoogleTestAdapter/DiaResolver/Resources.resx | 3 +++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/GoogleTestAdapter/DiaResolver/PeParser.cs b/GoogleTestAdapter/DiaResolver/PeParser.cs index 7da561970..ac8256fa4 100644 --- a/GoogleTestAdapter/DiaResolver/PeParser.cs +++ b/GoogleTestAdapter/DiaResolver/PeParser.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 9/2017. +// This file has been modified by Microsoft on 11/2017. using GoogleTestAdapter.Common; using Microsoft.Win32.SafeHandles; @@ -253,6 +253,11 @@ private static void ProcessImports(string executable, ILogger logger, FuncOriginalFirstThunk != 0u) { shouldContinue = predicate(GetString(image, directoryEntry->Name)); @@ -318,7 +323,11 @@ public static string ExtractPdbPath(string executable, ILogger logger) { uint size = 0u; var dbgDir = (IMAGE_DEBUG_DIRECTORY*)NativeMethods.ImageDirectoryEntryToData(image.MappedAddress, 0, 6, &size); - if (dbgDir->SizeOfData > 0) + if (dbgDir == null) + { + logger.LogError(Resources.ImageDirectoryEntryToData); + } + else if (dbgDir->SizeOfData > 0) { var pdbInfo = (PdbInfo*)NativeMethods.ImageRvaToVa(image.FileHeader, image.MappedAddress, dbgDir->AddressOfRawData, IntPtr.Zero); pdbPath = PtrToStringUtf8(new IntPtr(&pdbInfo->PdbFileName)); diff --git a/GoogleTestAdapter/DiaResolver/Resources.Designer.cs b/GoogleTestAdapter/DiaResolver/Resources.Designer.cs index e7c93ab87..25dc83539 100644 --- a/GoogleTestAdapter/DiaResolver/Resources.Designer.cs +++ b/GoogleTestAdapter/DiaResolver/Resources.Designer.cs @@ -78,6 +78,15 @@ internal static string GenerateFullPDBMessage { } } + /// + /// Looks up a localized string similar to ImageDirectoryEntryToData failed!. + /// + internal static string ImageDirectoryEntryToData { + get { + return ResourceManager.GetString("ImageDirectoryEntryToData", resourceCulture); + } + } + /// /// Looks up a localized string similar to Failed to locate line number for {0}. /// diff --git a/GoogleTestAdapter/DiaResolver/Resources.resx b/GoogleTestAdapter/DiaResolver/Resources.resx index 4508571f7..435ceab19 100644 --- a/GoogleTestAdapter/DiaResolver/Resources.resx +++ b/GoogleTestAdapter/DiaResolver/Resources.resx @@ -149,4 +149,7 @@ Cannot load {0}. {0} represents unlocalized file path (e.g c:\test\foo.pdb) + + ImageDirectoryEntryToData failed! + \ No newline at end of file From 7e86d56a9d1e83db15363c3844f4489f3a7fe85d Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Tue, 23 Jan 2018 13:23:43 -0800 Subject: [PATCH 63/96] Silence tr1 namespace build warnings (#115) * silence tr1 namespace issues though cmake * add preprocessor def to fix tr1 failures when building tests --- GoogleTestNuGet/Build.ps1 | 1 + SampleTests/CrashingTests/CrashingTests.vcxproj | 8 ++++---- SampleTests/LoadTests/LoadTests.vcxproj | 8 ++++---- SampleTests/LongRunningTests/LongRunningTests.vcxproj | 8 ++++---- SampleTests/Tests/Tests.vcxproj | 8 ++++---- SampleTests/Tests_1.7.0/Tests_1.7.0.vcxproj | 8 ++++---- 6 files changed, 21 insertions(+), 20 deletions(-) diff --git a/GoogleTestNuGet/Build.ps1 b/GoogleTestNuGet/Build.ps1 index a9606129e..f8a363a0c 100644 --- a/GoogleTestNuGet/Build.ps1 +++ b/GoogleTestNuGet/Build.ps1 @@ -186,6 +186,7 @@ function Build-Binaries { $CMakeArgs += "-A", $Platform $CMakeArgs += "-D", "BUILD_SHARED_LIBS=$(Convert-BooleanToOnOff $DynamicLibraryLinkage)" $CMakeArgs += "-D", "gtest_force_shared_crt=$(Convert-BooleanToOnOff $DynamicCRTLinkage)" + $CMakeArgs += "-D", "CMAKE_CXX_FLAGS=/D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING" $CMakeArgs += $CMakeDir Invoke-Executable cmake $CMakeArgs diff --git a/SampleTests/CrashingTests/CrashingTests.vcxproj b/SampleTests/CrashingTests/CrashingTests.vcxproj index 1c696e0f5..d2ecc1125 100644 --- a/SampleTests/CrashingTests/CrashingTests.vcxproj +++ b/SampleTests/CrashingTests/CrashingTests.vcxproj @@ -95,7 +95,7 @@ Level3 Disabled - _VARIADIC_MAX=10;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) @@ -110,7 +110,7 @@ Level3 Disabled - _VARIADIC_MAX=10;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) @@ -127,7 +127,7 @@ MaxSpeed true true - _VARIADIC_MAX=10;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) @@ -146,7 +146,7 @@ MaxSpeed true true - _VARIADIC_MAX=10;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) diff --git a/SampleTests/LoadTests/LoadTests.vcxproj b/SampleTests/LoadTests/LoadTests.vcxproj index 79601eeaf..2cdc15ffe 100644 --- a/SampleTests/LoadTests/LoadTests.vcxproj +++ b/SampleTests/LoadTests/LoadTests.vcxproj @@ -93,7 +93,7 @@ Level3 Disabled - _VARIADIC_MAX=10;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;%(PreprocessorDefinitions) true $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) @@ -108,7 +108,7 @@ NotUsing Level3 Disabled - _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) true $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) @@ -125,7 +125,7 @@ MaxSpeed true true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) @@ -144,7 +144,7 @@ MaxSpeed true true - NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) true $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) diff --git a/SampleTests/LongRunningTests/LongRunningTests.vcxproj b/SampleTests/LongRunningTests/LongRunningTests.vcxproj index 3c81aa1fa..74e32469e 100644 --- a/SampleTests/LongRunningTests/LongRunningTests.vcxproj +++ b/SampleTests/LongRunningTests/LongRunningTests.vcxproj @@ -90,7 +90,7 @@ Disabled true $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) - _VARIADIC_MAX=10;_MBCS;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;_MBCS;%(PreprocessorDefinitions) DebugFull @@ -104,7 +104,7 @@ true $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) false - _VARIADIC_MAX=10;_MBCS;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;_MBCS;%(PreprocessorDefinitions) DebugFull @@ -119,7 +119,7 @@ true true $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) - _VARIADIC_MAX=10;_MBCS;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;_MBCS;%(PreprocessorDefinitions) true @@ -135,7 +135,7 @@ true true $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) - _VARIADIC_MAX=10;_MBCS;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;_MBCS;%(PreprocessorDefinitions) true diff --git a/SampleTests/Tests/Tests.vcxproj b/SampleTests/Tests/Tests.vcxproj index f37c56bba..001c67f76 100644 --- a/SampleTests/Tests/Tests.vcxproj +++ b/SampleTests/Tests/Tests.vcxproj @@ -90,7 +90,7 @@ Level3 Disabled true - _VARIADIC_MAX=10;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;%(PreprocessorDefinitions) $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) @@ -104,7 +104,7 @@ Level3 Disabled true - _VARIADIC_MAX=10;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;%(PreprocessorDefinitions) $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) @@ -119,7 +119,7 @@ true true true - _VARIADIC_MAX=10;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;%(PreprocessorDefinitions) $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) @@ -136,7 +136,7 @@ true true true - _VARIADIC_MAX=10;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;_VARIADIC_MAX=10;%(PreprocessorDefinitions) $(ProjectDir)..\3rdparty\gtest-1.8.0\fused-src;%(AdditionalIncludeDirectories) diff --git a/SampleTests/Tests_1.7.0/Tests_1.7.0.vcxproj b/SampleTests/Tests_1.7.0/Tests_1.7.0.vcxproj index 222fc33a0..68eb553b3 100644 --- a/SampleTests/Tests_1.7.0/Tests_1.7.0.vcxproj +++ b/SampleTests/Tests_1.7.0/Tests_1.7.0.vcxproj @@ -95,7 +95,7 @@ NotUsing Level3 Disabled - GTEST_1_7_0;_VARIADIC_MAX=10;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;GTEST_1_7_0;_VARIADIC_MAX=10;%(PreprocessorDefinitions) $(ProjectDir)..\3rdparty\gtest-1.7.0\fused-src;%(AdditionalIncludeDirectories) true @@ -110,7 +110,7 @@ NotUsing Level3 Disabled - GTEST_1_7_0;_VARIADIC_MAX=10;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;GTEST_1_7_0;_VARIADIC_MAX=10;%(PreprocessorDefinitions) $(ProjectDir)..\3rdparty\gtest-1.7.0\fused-src;%(AdditionalIncludeDirectories) true @@ -127,7 +127,7 @@ MaxSpeed true true - GTEST_1_7_0;_VARIADIC_MAX=10;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;GTEST_1_7_0;_VARIADIC_MAX=10;%(PreprocessorDefinitions) $(ProjectDir)..\3rdparty\gtest-1.7.0\fused-src;%(AdditionalIncludeDirectories) true @@ -146,7 +146,7 @@ MaxSpeed true true - GTEST_1_7_0;_VARIADIC_MAX=10;%(PreprocessorDefinitions) + _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING;GTEST_1_7_0;_VARIADIC_MAX=10;%(PreprocessorDefinitions) $(ProjectDir)..\3rdparty\gtest-1.7.0\fused-src;%(AdditionalIncludeDirectories) true From 3739a0bd88f6ffc7df5f0ef0c243b018e7058386 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 2 May 2018 13:09:22 -0700 Subject: [PATCH 64/96] Only run executor on gtest dlls, only run tests if there are tests (#129) --- GoogleTestAdapter/TestAdapter/TestExecutor.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/GoogleTestAdapter/TestAdapter/TestExecutor.cs b/GoogleTestAdapter/TestAdapter/TestExecutor.cs index 3bafa021e..dec15155e 100644 --- a/GoogleTestAdapter/TestAdapter/TestExecutor.cs +++ b/GoogleTestAdapter/TestAdapter/TestExecutor.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 5/2018. using System; using System.Linq; @@ -177,7 +177,11 @@ private static void AddTestCasesOfExecutable(List allTestCasesInExecut if (testrunIsCanceled()) return; + if (!GoogleTestDiscoverer.IsGoogleTestExecutable(executable, settings.TestDiscoveryRegex, logger)) + return; + var discoverer = new GoogleTestDiscoverer(logger, settings); + settings.ExecuteWithSettingsForExecutable(executable, () => { allTestCasesInExecutables.AddRange(discoverer.GetTestsFromExecutable(executable)); @@ -204,6 +208,9 @@ private bool IsVisualStudioProcessAvailable() private void DoRunTests(ICollection testCasesToRun, IRunContext runContext, IFrameworkHandle frameworkHandle) { + if (testCasesToRun.Count == 0) + return; + bool isRunningInsideVisualStudio = !string.IsNullOrEmpty(runContext.SolutionDirectory); var reporter = new VsTestFrameworkReporter(frameworkHandle, isRunningInsideVisualStudio, _logger); var launcher = new DebuggedProcessLauncher(frameworkHandle); From 922aec803769d98736abdfb0ba55464260e351eb Mon Sep 17 00:00:00 2001 From: Justin Goshi Date: Wed, 23 May 2018 10:51:08 -1000 Subject: [PATCH 65/96] Support for working directory and environment set through CMakeLists.txt (#131) * Support for working directory and environment set through CMakeLists.txt * Update the adapter to remove mention of CTest * Fix test code build breaks * Addressing PR comments --- .../Helpers/ProcessExecutorTests.cs | 2 + .../Helpers/TestProcessLauncherTests.cs | 3 +- GoogleTestAdapter/Core/Core.csproj | 24 +++--- .../Framework/IDebuggedProcessLauncher.cs | 6 +- .../Core/Framework/IProcessExecutor.cs | 7 +- GoogleTestAdapter/Core/GoogleTestConstants.cs | 3 +- .../Core/Helpers/ProcessExecutor.cs | 34 ++++++--- .../Core/Helpers/ProcessLauncher.cs | 29 ++++++-- .../Core/Helpers/TestProcessLauncher.cs | 21 ++++-- .../Core/Runners/ParallelTestRunner.cs | 2 +- .../Core/Runners/PreparingTestRunner.cs | 4 +- .../Core/Runners/SequentialTestRunner.cs | 69 +++++++++++++----- .../Core/Settings/ITestPropertySettings.cs | 10 +++ .../ITestPropertySettingsContainer.cs | 8 ++ .../Core/Settings/SettingsWrapper.cs | 13 +++- .../Core/TestCases/TestCaseFactory.cs | 5 +- .../TestAdapter/CommonFunctions.cs | 6 +- .../Framework/DebuggedProcessLauncher.cs | 23 +++++- .../Settings/TestPropertySettings.cs | 27 +++++++ .../Settings/TestPropertySettingsContainer.cs | 73 +++++++++++++++++++ .../Settings/TestPropertySettingsProvider.cs | 59 +++++++++++++++ .../TestAdapter/TestAdapter.csproj | 29 +++++--- .../TestAdapter/TestPropertySettings.xsd | 33 +++++++++ 23 files changed, 409 insertions(+), 81 deletions(-) create mode 100644 GoogleTestAdapter/Core/Settings/ITestPropertySettings.cs create mode 100644 GoogleTestAdapter/Core/Settings/ITestPropertySettingsContainer.cs create mode 100644 GoogleTestAdapter/TestAdapter/Settings/TestPropertySettings.cs create mode 100644 GoogleTestAdapter/TestAdapter/Settings/TestPropertySettingsContainer.cs create mode 100644 GoogleTestAdapter/TestAdapter/Settings/TestPropertySettingsProvider.cs create mode 100644 GoogleTestAdapter/TestAdapter/TestPropertySettings.xsd diff --git a/GoogleTestAdapter/Core.Tests/Helpers/ProcessExecutorTests.cs b/GoogleTestAdapter/Core.Tests/Helpers/ProcessExecutorTests.cs index 5fa700238..ad3b6cd85 100644 --- a/GoogleTestAdapter/Core.Tests/Helpers/ProcessExecutorTests.cs +++ b/GoogleTestAdapter/Core.Tests/Helpers/ProcessExecutorTests.cs @@ -24,6 +24,7 @@ public void ExecuteProcessBlocking_PingLocalHost() Path.Combine(Environment.SystemDirectory, "ping.exe"), "localhost", "", + null, null, s => output.Add(s)); @@ -44,6 +45,7 @@ public void ExecuteProcessBlocking_SampleTests() TestResources.Tests_DebugX86, null, null, + null, "", s => output.Add(s)); diff --git a/GoogleTestAdapter/Core.Tests/Helpers/TestProcessLauncherTests.cs b/GoogleTestAdapter/Core.Tests/Helpers/TestProcessLauncherTests.cs index 45d7eb832..03edb91d0 100644 --- a/GoogleTestAdapter/Core.Tests/Helpers/TestProcessLauncherTests.cs +++ b/GoogleTestAdapter/Core.Tests/Helpers/TestProcessLauncherTests.cs @@ -31,7 +31,7 @@ public void GetOutputOfCommand_WhenDebugging_InvokesDebuggedProcessLauncherCorre int processId = -4711; var mockLauncher = new Mock(); mockLauncher.Setup(l => - l.LaunchProcessWithDebuggerAttached(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + l.LaunchProcessWithDebuggerAttached(It.IsAny(), It.IsAny(), null, It.IsAny(), It.IsAny())) .Returns(processId); new TestProcessLauncher(TestEnvironment.Logger, TestEnvironment.Options, true) @@ -42,6 +42,7 @@ public void GetOutputOfCommand_WhenDebugging_InvokesDebuggedProcessLauncherCorre mockLauncher.Verify(l => l.LaunchProcessWithDebuggerAttached( It.Is(s => s == "theCommand"), It.Is(s => s == "theDir"), + null, It.Is(s => s == "theParams"), It.Is(s => s == "") ), Times.Exactly(1)); diff --git a/GoogleTestAdapter/Core/Core.csproj b/GoogleTestAdapter/Core/Core.csproj index 400d9f7c0..17089af1f 100644 --- a/GoogleTestAdapter/Core/Core.csproj +++ b/GoogleTestAdapter/Core/Core.csproj @@ -42,15 +42,15 @@ - $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.Core.dll.lcl + $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.Core.dll.lcl Microsoft StrongName - - - false + + + false @@ -85,6 +85,8 @@ + + @@ -160,12 +162,12 @@ --> - - - - Microsoft - StrongName - - + + + + Microsoft + StrongName + + \ No newline at end of file diff --git a/GoogleTestAdapter/Core/Framework/IDebuggedProcessLauncher.cs b/GoogleTestAdapter/Core/Framework/IDebuggedProcessLauncher.cs index 320868129..b772d7b8b 100644 --- a/GoogleTestAdapter/Core/Framework/IDebuggedProcessLauncher.cs +++ b/GoogleTestAdapter/Core/Framework/IDebuggedProcessLauncher.cs @@ -1,9 +1,11 @@ -namespace GoogleTestAdapter.Framework +using System.Collections.Generic; + +namespace GoogleTestAdapter.Framework { public interface IDebuggedProcessLauncher { - int LaunchProcessWithDebuggerAttached(string command, string workingDirectory, string param, string pathExtension); + int LaunchProcessWithDebuggerAttached(string command, string workingDirectory, IDictionary additionalEnvVars, string param, string pathExtension); } } \ No newline at end of file diff --git a/GoogleTestAdapter/Core/Framework/IProcessExecutor.cs b/GoogleTestAdapter/Core/Framework/IProcessExecutor.cs index 47aab9076..05660e8c5 100644 --- a/GoogleTestAdapter/Core/Framework/IProcessExecutor.cs +++ b/GoogleTestAdapter/Core/Framework/IProcessExecutor.cs @@ -1,6 +1,7 @@ -// This file has been modified by Microsoft on 6/2017. +// This file has been modified by Microsoft on 5/2018. using System; +using System.Collections.Generic; using System.IO; namespace GoogleTestAdapter.Framework @@ -8,7 +9,7 @@ namespace GoogleTestAdapter.Framework public interface IProcessExecutor { - int ExecuteCommandBlocking(string command, string parameters, string workingDir, string pathExtension, Action reportOutputLine); + int ExecuteCommandBlocking(string command, string parameters, string workingDir, IDictionary envVars, string pathExtension, Action reportOutputLine); void Cancel(); } @@ -23,7 +24,7 @@ public static int ExecuteBatchFileBlocking(this IProcessExecutor executor, strin } string command = Path.Combine(Environment.SystemDirectory, "cmd.exe"); - return executor.ExecuteCommandBlocking(command, $"/C \"{batchFile}\" {parameters}", workingDir, pathExtension, + return executor.ExecuteCommandBlocking(command, $"/C \"{batchFile}\" {parameters}", workingDir, null, pathExtension, reportOutputLine); } } diff --git a/GoogleTestAdapter/Core/GoogleTestConstants.cs b/GoogleTestAdapter/Core/GoogleTestConstants.cs index 23f9b895e..312a0c276 100644 --- a/GoogleTestAdapter/Core/GoogleTestConstants.cs +++ b/GoogleTestAdapter/Core/GoogleTestConstants.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 9/2017. +// This file has been modified by Microsoft on 5/2018. using System; @@ -7,6 +7,7 @@ namespace GoogleTestAdapter public static class GoogleTestConstants { + public const string TestPropertySettingsName = "TestPropertySettingsForGoogleAdapter"; public const string SettingsName = "GoogleTestAdapterSettings"; public const string SettingsExtension = ".gta.runsettings"; public const string DurationsExtension = ".gta.testdurations"; diff --git a/GoogleTestAdapter/Core/Helpers/ProcessExecutor.cs b/GoogleTestAdapter/Core/Helpers/ProcessExecutor.cs index 953f58ff4..ea4acf0e2 100644 --- a/GoogleTestAdapter/Core/Helpers/ProcessExecutor.cs +++ b/GoogleTestAdapter/Core/Helpers/ProcessExecutor.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 5/2018. using System; using System.Collections; @@ -34,11 +34,11 @@ public ProcessExecutor(IDebuggerAttacher debuggerAttacher, ILogger logger) _logger = logger; } - public int ExecuteCommandBlocking(string command, string parameters, string workingDir, string pathExtension, Action reportOutputLine) + public int ExecuteCommandBlocking(string command, string parameters, string workingDir, IDictionary envVars, string pathExtension, Action reportOutputLine) { try { - return NativeMethods.ExecuteCommandBlocking(command, parameters, workingDir, pathExtension, _debuggerAttacher, reportOutputLine, processId => _processId = processId); + return NativeMethods.ExecuteCommandBlocking(command, parameters, workingDir, envVars, pathExtension, _debuggerAttacher, reportOutputLine, processId => _processId = processId); } catch (Win32Exception ex) @@ -96,12 +96,12 @@ protected override void Dispose(bool disposing) private const uint INFINITE = 0xFFFFFFFF; internal static int ExecuteCommandBlocking( - string command, string parameters, string workingDir, string pathExtension, + string command, string parameters, string workingDir, IDictionary envVars, string pathExtension, IDebuggerAttacher debuggerAttacher, Action reportOutputLine, Action reportProcessId) { using (var pipeStream = new ProcessOutputPipeStream()) { - var processInfo = CreateProcess(command, parameters, workingDir, pathExtension, pipeStream._writingEnd); + var processInfo = CreateProcess(command, parameters, workingDir, envVars, pathExtension, pipeStream._writingEnd); reportProcessId(processInfo.dwProcessId); using (var process = new SafeWaitHandle(processInfo.hProcess, true)) using (var thread = new SafeWaitHandle(processInfo.hThread, true)) @@ -136,12 +136,27 @@ public static void CreatePipe(out SafePipeHandle readingEnd, out SafePipeHandle throw new Win32Exception(Marshal.GetLastWin32Error(), "Could not set handle information"); } - private static StringBuilder CreateEnvironment(string pathExtension) + private static StringBuilder CreateEnvironment(string pathExtension, IDictionary additionalEnvVars) { StringDictionary envVariables = new ProcessStartInfo().EnvironmentVariables; + if (additionalEnvVars != null) + { + foreach (var entry in additionalEnvVars) + { + envVariables[entry.Key] = entry.Value; + } + } + if (!string.IsNullOrEmpty(pathExtension)) - envVariables["PATH"] = Utils.GetExtendedPath(pathExtension); + { + var path = Utils.GetExtendedPath(pathExtension); + if (envVariables.ContainsKey("PATH")) + { + path += $";{envVariables["PATH"]}"; + } + envVariables["PATH"] = path; + } var envVariablesList = new List(); foreach (DictionaryEntry entry in envVariables) @@ -159,7 +174,8 @@ private static StringBuilder CreateEnvironment(string pathExtension) return result; } - private static PROCESS_INFORMATION CreateProcess(string command, string parameters, string workingDir, string pathExtension, + private static PROCESS_INFORMATION CreateProcess(string command, string parameters, string workingDir, + IDictionary envVars, string pathExtension, SafePipeHandle outputPipeWritingEnd) { var startupinfoex = new STARTUPINFOEX @@ -190,7 +206,7 @@ private static PROCESS_INFORMATION CreateProcess(string command, string paramete lpThreadAttributes: null, bInheritHandles: true, dwCreationFlags: CREATE_EXTENDED_STARTUPINFO_PRESENT | CREATE_SUSPENDED, - lpEnvironment: CreateEnvironment(pathExtension), + lpEnvironment: CreateEnvironment(pathExtension, envVars), lpCurrentDirectory: workingDir, lpStartupInfo: startupinfoex, lpProcessInformation: out processInfo)) diff --git a/GoogleTestAdapter/Core/Helpers/ProcessLauncher.cs b/GoogleTestAdapter/Core/Helpers/ProcessLauncher.cs index 2f231f411..488152842 100644 --- a/GoogleTestAdapter/Core/Helpers/ProcessLauncher.cs +++ b/GoogleTestAdapter/Core/Helpers/ProcessLauncher.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 5/2018. using System; using System.Collections.Generic; @@ -29,26 +29,26 @@ public ProcessLauncher(ILogger logger, string pathExtension, Action reportP public List GetOutputOfCommand(string command) { int dummy; - return GetOutputOfCommand("", command, "", false, false, out dummy); + return GetOutputOfCommand("", null, command, "", false, false, out dummy); } public List GetOutputOfCommand(string workingDirectory, string command, string param, bool printTestOutput, bool throwIfError) { int dummy; - return GetOutputOfCommand(workingDirectory, command, param, printTestOutput, throwIfError, out dummy); + return GetOutputOfCommand(workingDirectory, null, command, param, printTestOutput, throwIfError, out dummy); } - public List GetOutputOfCommand(string workingDirectory, string command, string param, bool printTestOutput, + public List GetOutputOfCommand(string workingDirectory, IDictionary envVars, string command, string param, bool printTestOutput, bool throwIfError, out int processExitCode) { var output = new List(); - processExitCode = LaunchProcess(workingDirectory, command, param, printTestOutput, throwIfError, output); + processExitCode = LaunchProcess(workingDirectory, envVars, command, param, printTestOutput, throwIfError, output); return output; } - private int LaunchProcess(string workingDirectory, string command, string param, bool printTestOutput, + private int LaunchProcess(string workingDirectory, IDictionary additionalEnvVars, string command, string param, bool printTestOutput, bool throwIfError, List output) { var processStartInfo = new ProcessStartInfo(command, param) @@ -61,8 +61,23 @@ private int LaunchProcess(string workingDirectory, string command, string param, WorkingDirectory = workingDirectory }; + if (additionalEnvVars != null) + { + foreach (var entry in additionalEnvVars) + { + processStartInfo.EnvironmentVariables[entry.Key] = entry.Value; + } + } + if (!string.IsNullOrEmpty(_pathExtension)) - processStartInfo.EnvironmentVariables["PATH"] = Utils.GetExtendedPath(_pathExtension); + { + var path = Utils.GetExtendedPath(_pathExtension); + if (processStartInfo.EnvironmentVariables.ContainsKey("PATH")) + { + path += $";{processStartInfo.EnvironmentVariables["PATH"]}"; + } + processStartInfo.EnvironmentVariables["PATH"] = path; + } Process process = Process.Start(processStartInfo); if (process != null) diff --git a/GoogleTestAdapter/Core/Helpers/TestProcessLauncher.cs b/GoogleTestAdapter/Core/Helpers/TestProcessLauncher.cs index 08ee5d7c8..f4df720e2 100644 --- a/GoogleTestAdapter/Core/Helpers/TestProcessLauncher.cs +++ b/GoogleTestAdapter/Core/Helpers/TestProcessLauncher.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 9/2017. +// This file has been modified by Microsoft on 5/2018. using System; using System.Collections.Generic; @@ -23,26 +23,31 @@ public TestProcessLauncher(ILogger logger, SettingsWrapper settings, bool isBein _isBeingDebugged = isBeingDebugged; } - public List GetOutputOfCommand(string workingDirectory, string command, string param, bool printTestOutput, bool throwIfError, IDebuggedProcessLauncher debuggedLauncher) + { + return GetOutputOfCommand(workingDirectory, null, command, param, printTestOutput, throwIfError, debuggedLauncher); + } + + public List GetOutputOfCommand(string workingDirectory, IDictionary envVars, string command, string param, bool printTestOutput, + bool throwIfError, IDebuggedProcessLauncher debuggedLauncher) { int dummy; - return GetOutputOfCommand(workingDirectory, command, param, printTestOutput, throwIfError, debuggedLauncher, out dummy); + return GetOutputOfCommand(workingDirectory, envVars, command, param, printTestOutput, throwIfError, debuggedLauncher, out dummy); } - public List GetOutputOfCommand(string workingDirectory, string command, string param, bool printTestOutput, + public List GetOutputOfCommand(string workingDirectory, IDictionary envVars, string command, string param, bool printTestOutput, bool throwIfError, IDebuggedProcessLauncher debuggedLauncher, out int processExitCode) { if (_isBeingDebugged) { var output = new List(); - processExitCode = LaunchProcessWithDebuggerAttached(workingDirectory, command, param, printTestOutput, debuggedLauncher); + processExitCode = LaunchProcessWithDebuggerAttached(workingDirectory, envVars, command, param, printTestOutput, debuggedLauncher); return output; } var actualLauncher = new ProcessLauncher(_logger, _settings.GetPathExtension(command), processId => _processId = processId); - return actualLauncher.GetOutputOfCommand(workingDirectory, command, param, printTestOutput, + return actualLauncher.GetOutputOfCommand(workingDirectory, envVars, command, param, printTestOutput, throwIfError, out processExitCode); } @@ -77,7 +82,7 @@ public static void KillProcess(int processId, ILogger logger) } - private int LaunchProcessWithDebuggerAttached(string workingDirectory, string command, string param, bool printTestOutput, + private int LaunchProcessWithDebuggerAttached(string workingDirectory, IDictionary envVars, string command, string param, bool printTestOutput, IDebuggedProcessLauncher handle) { _logger.LogInfo(String.Format(Resources.AttachDebuggerMessage, command)); @@ -85,7 +90,7 @@ private int LaunchProcessWithDebuggerAttached(string workingDirectory, string co { _logger.DebugInfo(Resources.DebuggerAttachedOutputMessage); } - _processId = handle.LaunchProcessWithDebuggerAttached(command, workingDirectory, param, _settings.GetPathExtension(command)); + _processId = handle.LaunchProcessWithDebuggerAttached(command, workingDirectory, envVars, param, _settings.GetPathExtension(command)); Process process = Process.GetProcessById(_processId.Value); var waiter = new ProcessWaiter(process); waiter.WaitForExit(); diff --git a/GoogleTestAdapter/Core/Runners/ParallelTestRunner.cs b/GoogleTestAdapter/Core/Runners/ParallelTestRunner.cs index 74e934153..a18b83e93 100644 --- a/GoogleTestAdapter/Core/Runners/ParallelTestRunner.cs +++ b/GoogleTestAdapter/Core/Runners/ParallelTestRunner.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 5/2018. using System; using System.Collections.Generic; diff --git a/GoogleTestAdapter/Core/Runners/PreparingTestRunner.cs b/GoogleTestAdapter/Core/Runners/PreparingTestRunner.cs index 10025237f..5b335f46a 100644 --- a/GoogleTestAdapter/Core/Runners/PreparingTestRunner.cs +++ b/GoogleTestAdapter/Core/Runners/PreparingTestRunner.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 5/2018. using System; using System.IO; @@ -128,7 +128,7 @@ private void RunBatch(BatchType batchType, string workingDirectory, string batch else { new TestProcessLauncher(_logger, _settings, isBeingDebugged).GetOutputOfCommand( - workingDirectory, batch, "", false, false, null, out batchExitCode); + workingDirectory, null, batch, "", false, false, null, out batchExitCode); } if (batchExitCode == 0) diff --git a/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs b/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs index 2a3de9fd9..ecb429963 100644 --- a/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs +++ b/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 5/2018. using System; using System.Collections.Generic; @@ -55,14 +55,46 @@ public void RunTests(IEnumerable testCasesToRun, string baseDir, _settings.ExecuteWithSettingsForExecutable(executable, () => { - RunTestsFromExecutable( - executable, - finalWorkingDir, - groupedTestCases[executable], - finalParameters, - isBeingDebugged, - debuggedLauncher, - executor); + var testsWithNoTestPropertySettings = groupedTestCases[executable]; + + if (_settings.TestPropertySettingsContainer != null) + { + testsWithNoTestPropertySettings = new List(); + + foreach (var testCase in groupedTestCases[executable]) + { + ITestPropertySettings settings; + if (_settings.TestPropertySettingsContainer.TryGetSettings(testCase.FullyQualifiedName, out settings)) + { + RunTestsFromExecutable( + executable, + settings.WorkingDirectory, + settings.Environment, + Enumerable.Repeat(testCase, 1), + finalParameters, + isBeingDebugged, + debuggedLauncher, + executor); + } + else + { + testsWithNoTestPropertySettings.Add(testCase); + } + } + } + + if (testsWithNoTestPropertySettings.Count != 0) + { + RunTestsFromExecutable( + executable, + finalWorkingDir, + null, + testsWithNoTestPropertySettings, + finalParameters, + isBeingDebugged, + debuggedLauncher, + executor); + } }, _logger); } @@ -80,7 +112,7 @@ public void Cancel() // ReSharper disable once UnusedParameter.Local - private void RunTestsFromExecutable(string executable, string workingDir, + private void RunTestsFromExecutable(string executable, string workingDir, IDictionary envVars, IEnumerable testCasesToRun, string userParameters, bool isBeingDebugged, IDebuggedProcessLauncher debuggedLauncher, IProcessExecutor executor) { @@ -95,7 +127,7 @@ private void RunTestsFromExecutable(string executable, string workingDir, break; } var streamingParser = new StreamingStandardOutputTestResultParser(arguments.TestCases, _logger, _frameworkReporter); - var results = RunTests(executable, workingDir, isBeingDebugged, debuggedLauncher, arguments, resultXmlFile, executor, streamingParser).ToArray(); + var results = RunTests(executable, workingDir, envVars, isBeingDebugged, debuggedLauncher, arguments, resultXmlFile, executor, streamingParser).ToArray(); try { @@ -121,12 +153,12 @@ private void RunTestsFromExecutable(string executable, string workingDir, } } - private IEnumerable RunTests(string executable, string workingDir, bool isBeingDebugged, + private IEnumerable RunTests(string executable, string workingDir, IDictionary envVars, bool isBeingDebugged, IDebuggedProcessLauncher debuggedLauncher, CommandLineGenerator.Args arguments, string resultXmlFile, IProcessExecutor executor, StreamingStandardOutputTestResultParser streamingParser) { try { - return TryRunTests(executable, workingDir, isBeingDebugged, debuggedLauncher, arguments, resultXmlFile, executor, streamingParser); + return TryRunTests(executable, workingDir, envVars, isBeingDebugged, debuggedLauncher, arguments, resultXmlFile, executor, streamingParser); } catch (Exception e) { @@ -143,7 +175,7 @@ public static void LogExecutionError(ILogger logger, string executable, string w logger.LogError(String.Format(Resources.ExecuteSteps, threadName, workingDir, Environment.NewLine, executable, arguments)); } - private IEnumerable TryRunTests(string executable, string workingDir, bool isBeingDebugged, + private IEnumerable TryRunTests(string executable, string workingDir, IDictionary envVars, bool isBeingDebugged, IDebuggedProcessLauncher debuggedLauncher, CommandLineGenerator.Args arguments, string resultXmlFile, IProcessExecutor executor, StreamingStandardOutputTestResultParser streamingParser) { @@ -151,13 +183,13 @@ private IEnumerable TryRunTests(string executable, string workingDir if (_settings.UseNewTestExecutionFramework) { DebugUtils.AssertIsNotNull(executor, nameof(executor)); - consoleOutput = RunTestExecutableWithNewFramework(executable, workingDir, arguments, executor, streamingParser); + consoleOutput = RunTestExecutableWithNewFramework(executable, workingDir, envVars, arguments, executor, streamingParser); } else { _processLauncher = new TestProcessLauncher(_logger, _settings, isBeingDebugged); consoleOutput = - _processLauncher.GetOutputOfCommand(workingDir, executable, arguments.CommandLine, + _processLauncher.GetOutputOfCommand(workingDir, envVars, executable, arguments.CommandLine, _settings.PrintTestOutput && !_settings.ParallelTestExecution, false, debuggedLauncher); } @@ -171,7 +203,8 @@ private IEnumerable TryRunTests(string executable, string workingDir return testResults; } - private List RunTestExecutableWithNewFramework(string executable, string workingDir, CommandLineGenerator.Args arguments, IProcessExecutor executor, + private List RunTestExecutableWithNewFramework(string executable, string workingDir, IDictionary envVars, + CommandLineGenerator.Args arguments, IProcessExecutor executor, StreamingStandardOutputTestResultParser streamingParser) { string pathExtension = _settings.GetPathExtension(executable); @@ -199,7 +232,7 @@ private List RunTestExecutableWithNewFramework(string executable, string }; _processExecutor = executor; _processExecutor.ExecuteCommandBlocking( - executable, arguments.CommandLine, workingDir, pathExtension, + executable, arguments.CommandLine, workingDir, envVars, pathExtension, reportOutputAction); streamingParser.Flush(); diff --git a/GoogleTestAdapter/Core/Settings/ITestPropertySettings.cs b/GoogleTestAdapter/Core/Settings/ITestPropertySettings.cs new file mode 100644 index 000000000..717692219 --- /dev/null +++ b/GoogleTestAdapter/Core/Settings/ITestPropertySettings.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace GoogleTestAdapter.Settings +{ + public interface ITestPropertySettings + { + IDictionary Environment { get; } + string WorkingDirectory { get; } + } +} diff --git a/GoogleTestAdapter/Core/Settings/ITestPropertySettingsContainer.cs b/GoogleTestAdapter/Core/Settings/ITestPropertySettingsContainer.cs new file mode 100644 index 000000000..e784e35a3 --- /dev/null +++ b/GoogleTestAdapter/Core/Settings/ITestPropertySettingsContainer.cs @@ -0,0 +1,8 @@ + +namespace GoogleTestAdapter.Settings +{ + public interface ITestPropertySettingsContainer + { + bool TryGetSettings(string testName, out ITestPropertySettings settings); + } +} diff --git a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs index b60174ed0..018aa8bad 100644 --- a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs +++ b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 9/2017. +// This file has been modified by Microsoft on 5/2018. using System; using System.Collections.Generic; @@ -46,6 +46,7 @@ public class SettingsWrapper .ToArray(); private readonly IGoogleTestAdapterSettingsContainer _settingsContainer; + private readonly ITestPropertySettingsContainer _testPropertySettingsContainer; public RegexTraitParser RegexTraitParser { private get; set; } private int _nrOfRunningExecutions; @@ -54,14 +55,22 @@ public class SettingsWrapper private IGoogleTestAdapterSettings _currentSettings; public SettingsWrapper(IGoogleTestAdapterSettingsContainer settingsContainer) + : this(settingsContainer, null) + { + } + + public ITestPropertySettingsContainer TestPropertySettingsContainer => _testPropertySettingsContainer; + + public SettingsWrapper(IGoogleTestAdapterSettingsContainer settingsContainer, ITestPropertySettingsContainer testPropertySettingsContainer) { _settingsContainer = settingsContainer; + _testPropertySettingsContainer = testPropertySettingsContainer; _currentSettings = _settingsContainer.SolutionSettings; } public virtual SettingsWrapper Clone() { - return new SettingsWrapper(_settingsContainer) { RegexTraitParser = RegexTraitParser }; + return new SettingsWrapper(_settingsContainer, _testPropertySettingsContainer) { RegexTraitParser = RegexTraitParser }; } // needed for mocking diff --git a/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs b/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs index a3eeb6b68..34638102b 100644 --- a/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs +++ b/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 9/2017. +// This file has been modified by Microsoft on 5/2018. using System; using System.Collections.Generic; @@ -45,7 +45,7 @@ public IList CreateTestCases(Action reportTestCase = null) { var launcher = new ProcessLauncher(_logger, _settings.GetPathExtension(_executable), null); int processExitCode; - standardOutput = launcher.GetOutputOfCommand("", _executable, GoogleTestConstants.ListTestsOption, + standardOutput = launcher.GetOutputOfCommand("", null, _executable, GoogleTestConstants.ListTestsOption, false, false, out processExitCode); if (!CheckProcessExitCode(processExitCode, standardOutput)) @@ -138,6 +138,7 @@ private IList NewCreateTestcases(Action reportTestCase, List _executable, GoogleTestConstants.ListTestsOption, "", + null, _settings.GetPathExtension(_executable), lineAction); }, TaskCreationOptions.AttachedToParent); diff --git a/GoogleTestAdapter/TestAdapter/CommonFunctions.cs b/GoogleTestAdapter/TestAdapter/CommonFunctions.cs index 85875176e..9a434a3d7 100644 --- a/GoogleTestAdapter/TestAdapter/CommonFunctions.cs +++ b/GoogleTestAdapter/TestAdapter/CommonFunctions.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 5/2018. using System; using System.Collections.Generic; @@ -53,7 +53,9 @@ public static void CreateEnvironment(IRunSettings runSettings, IMessageLogger me projectSettings.GetUnsetValuesFrom(ourRunSettings.SolutionSettings); } - var settingsWrapper = new SettingsWrapper(ourRunSettings); + var testSettings = runSettings.GetSettings(GoogleTestConstants.TestPropertySettingsName) as TestPropertySettingsProvider; + + var settingsWrapper = new SettingsWrapper(ourRunSettings, testSettings?.TestPropertySettings); var loggerAdapter = new VsTestFrameworkLogger(messageLogger, () => settingsWrapper.DebugMode, () => settingsWrapper.TimestampOutput); var regexParser = new RegexTraitParser(loggerAdapter); diff --git a/GoogleTestAdapter/TestAdapter/Framework/DebuggedProcessLauncher.cs b/GoogleTestAdapter/TestAdapter/Framework/DebuggedProcessLauncher.cs index 5c7e5f6d2..b5ffcd959 100644 --- a/GoogleTestAdapter/TestAdapter/Framework/DebuggedProcessLauncher.cs +++ b/GoogleTestAdapter/TestAdapter/Framework/DebuggedProcessLauncher.cs @@ -15,10 +15,31 @@ public DebuggedProcessLauncher(IFrameworkHandle handle) } public int LaunchProcessWithDebuggerAttached(string command, string workingDirectory, string param, string pathExtension) + { + return LaunchProcessWithDebuggerAttached(command, workingDirectory, null, param, pathExtension); + } + + public int LaunchProcessWithDebuggerAttached(string command, string workingDirectory, IDictionary additionalEnvVars, string param, string pathExtension) { IDictionary envVariables = new Dictionary(); + if (additionalEnvVars != null) + { + foreach (var envVar in additionalEnvVars) + { + envVariables[envVar.Key] = envVar.Value; + } + } + if (!string.IsNullOrEmpty(pathExtension)) - envVariables["PATH"] = Utils.GetExtendedPath(pathExtension); + { + var path = Utils.GetExtendedPath(pathExtension); + if (envVariables.ContainsKey("PATH")) + { + path += $";{envVariables["PATH"]}"; + } + envVariables["PATH"] = path; + } + return _frameworkHandle.LaunchProcessWithDebuggerAttached(command, workingDirectory, param, envVariables); } } diff --git a/GoogleTestAdapter/TestAdapter/Settings/TestPropertySettings.cs b/GoogleTestAdapter/TestAdapter/Settings/TestPropertySettings.cs new file mode 100644 index 000000000..5db12677f --- /dev/null +++ b/GoogleTestAdapter/TestAdapter/Settings/TestPropertySettings.cs @@ -0,0 +1,27 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +using GoogleTestAdapter.Settings; +using System.Collections.Generic; + +namespace GoogleTestAdapter.TestAdapter.Settings +{ + public class TestPropertySettings : ITestPropertySettings + { + public IDictionary Environment { get; private set; } + + public string WorkingDirectory { get; private set; } + + public TestPropertySettings(TestPropertySettingsContainer.TestProperties test) + { + var environment = new Dictionary(); + foreach (var envVar in test.Environment) + { + environment.Add(envVar.Name, envVar.Value); + } + + this.Environment = environment; + this.WorkingDirectory = test.WorkingDirectory; + } + } +} diff --git a/GoogleTestAdapter/TestAdapter/Settings/TestPropertySettingsContainer.cs b/GoogleTestAdapter/TestAdapter/Settings/TestPropertySettingsContainer.cs new file mode 100644 index 000000000..a3f30de78 --- /dev/null +++ b/GoogleTestAdapter/TestAdapter/Settings/TestPropertySettingsContainer.cs @@ -0,0 +1,73 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +using GoogleTestAdapter.Settings; +using Microsoft.VisualStudio.TestPlatform.ObjectModel; +using System.Collections.Generic; +using System.Xml; +using System.Xml.Serialization; + +namespace GoogleTestAdapter.TestAdapter.Settings +{ + [XmlRoot(GoogleTestConstants.TestPropertySettingsName)] + public class TestPropertySettingsContainer : TestRunSettings, ITestPropertySettingsContainer + { + public class EnvVar + { + public string Name { get; set; } + public string Value { get; set; } + } + + public class TestProperties + { + public string Name { get; set; } + public string Command { get; set; } + public List Environment { get; set; } + public string WorkingDirectory { get; set; } + } + + private IDictionary _tests; + + public TestPropertySettingsContainer() + : base(GoogleTestConstants.TestPropertySettingsName) + { + } + + public List Tests { get; set; } + + public override XmlElement ToXml() + { + var document = new XmlDocument(); + using (XmlWriter writer = document.CreateNavigator().AppendChild()) + { + new XmlSerializer(typeof(RunSettingsContainer)) + .Serialize(writer, this); + } + return document.DocumentElement; + } + + public bool TryGetSettings(string testName, out ITestPropertySettings settings) + { + EnsureTestPropertiesMap(); + return _tests.TryGetValue(testName, out settings); + } + + private void EnsureTestPropertiesMap() + { + if (_tests != null) + { + return; + } + + _tests = new Dictionary(); + if (this.Tests != null) + { + foreach (var t in this.Tests) + { + var propertySettings = new TestPropertySettings(t); + _tests.Add(t.Name, propertySettings); + } + } + } + } +} diff --git a/GoogleTestAdapter/TestAdapter/Settings/TestPropertySettingsProvider.cs b/GoogleTestAdapter/TestAdapter/Settings/TestPropertySettingsProvider.cs new file mode 100644 index 000000000..0cd63e263 --- /dev/null +++ b/GoogleTestAdapter/TestAdapter/Settings/TestPropertySettingsProvider.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. + +using Microsoft.VisualStudio.TestPlatform.ObjectModel; +using Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter; +using System; +using System.ComponentModel.Composition; +using System.Reflection; +using System.Xml; +using System.Xml.Schema; +using System.Xml.Serialization; + +namespace GoogleTestAdapter.TestAdapter.Settings +{ + [Export(typeof(ISettingsProvider))] + [SettingsName(GoogleTestConstants.TestPropertySettingsName)] + public class TestPropertySettingsProvider : ISettingsProvider + { + public string Name => GoogleTestConstants.TestPropertySettingsName; + + public TestPropertySettingsContainer TestPropertySettings { get; set; } + + public void Load(XmlReader reader) + { + ValidateArg.NotNull(reader, nameof(reader)); + + var schemaSet = new XmlSchemaSet(); + var schemaStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("TestPropertySettings.xsd"); + schemaSet.Add(null, XmlReader.Create(schemaStream)); + + var settings = new XmlReaderSettings + { + Schemas = schemaSet, + ValidationType = ValidationType.Schema, + ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings + }; + + settings.ValidationEventHandler += (object o, ValidationEventArgs e) => throw e.Exception; + + using (var newReader = XmlReader.Create(reader, settings)) + { + try + { + if (newReader.Read() && newReader.Name.Equals(this.Name)) + { + XmlSerializer deserializer = new XmlSerializer(typeof(TestPropertySettingsContainer)); + this.TestPropertySettings = deserializer.Deserialize(newReader) as TestPropertySettingsContainer; + } + } + catch (InvalidOperationException e) when (e.InnerException is XmlSchemaValidationException) + { + throw new InvalidRunSettingsException( + String.Format(Resources.Invalid, GoogleTestConstants.TestPropertySettingsName), + e.InnerException); + } + } + } + } +} diff --git a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj index 68fff4904..47b5d2e37 100644 --- a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj +++ b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj @@ -44,15 +44,15 @@ - $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.TestAdapter.dll.lcl + $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.TestAdapter.dll.lcl Microsoft StrongName - - - false + + + false @@ -213,6 +213,9 @@ + + + @@ -229,6 +232,10 @@ Resources.Designer.cs Designer + + Designer + TestPropertySettings.xsd + Designer @@ -271,12 +278,12 @@ $(DevEnvDir)CommonExtensions\Microsoft\TestWindow\vstest.console.exe "$(SolutionDir)..\SampleTests\Debug\Tests_gta.exe" /Settings:"$(SolutionDir)..\SampleTests\SampleTests.gta.runsettings" /TestCaseFilter:"DisplayName=TestMath.AddPasses" /TestAdapterPath:"$(TargetDir)" - - - - Microsoft - StrongName - - + + + + Microsoft + StrongName + + \ No newline at end of file diff --git a/GoogleTestAdapter/TestAdapter/TestPropertySettings.xsd b/GoogleTestAdapter/TestAdapter/TestPropertySettings.xsd new file mode 100644 index 000000000..c191de572 --- /dev/null +++ b/GoogleTestAdapter/TestAdapter/TestPropertySettings.xsd @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From c7e35fa700720ca421b32856cf099d3f1089521a Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Thu, 24 May 2018 17:30:04 -0700 Subject: [PATCH 66/96] switch the tafgt package to async (#132) * switch the tafgt package to async * get service async --- .../GoogleTestExtensionOptionsPage.cs | 16 ++++++---- .../GoogleTestExtensionOptionsPage.cs | 2 +- .../VsPackage.TAfGT/VsPackage.TAfGT.csproj | 29 ++++++++++++------- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs index 90bb61a3f..0d819e02b 100644 --- a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 9/2017. +// This file has been modified by Microsoft on 5/2018. using GoogleTestAdapter.Settings; using GoogleTestAdapter.TestAdapter.Settings; @@ -15,11 +15,13 @@ using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices; using System.ServiceModel; +using System.Threading; +using Task = System.Threading.Tasks.Task; namespace GoogleTestAdapter.VsPackage { - [PackageRegistration(UseManagedResourcesOnly = true)] + [PackageRegistration(AllowsBackgroundLoading = true, UseManagedResourcesOnly = true)] [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] // Info on this package for Help/About [Guid(PackageGuidString)] [SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1650:ElementDocumentationMustBeSpelledCorrectly", Justification = "pkgdef, VS and vsixmanifest are valid VS terms")] @@ -27,7 +29,7 @@ namespace GoogleTestAdapter.VsPackage [ProvideOptionPage(typeof(ParallelizationOptionsDialogPage), OptionsCategoryName, "Parallelization", 110, 502, true)] [ProvideOptionPage(typeof(GoogleTestOptionsDialogPage), OptionsCategoryName, "Google Test", 110, 503, true)] [ProvideMenuResource("Menus.ctmenu", 1)] - public sealed partial class GoogleTestExtensionOptionsPage : Package, IGoogleTestExtensionOptionsPage, IDisposable + public sealed partial class GoogleTestExtensionOptionsPage : AsyncPackage, IGoogleTestExtensionOptionsPage, IDisposable { private readonly string _debuggingNamedPipeId = Guid.NewGuid().ToString(); @@ -40,13 +42,15 @@ public sealed partial class GoogleTestExtensionOptionsPage : Package, IGoogleTes // ReSharper disable once NotAccessedField.Local private DebuggerAttacherServiceHost _debuggerAttacherServiceHost; - protected override void Initialize() + protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress) { - base.Initialize(); + await base.InitializeAsync(cancellationToken, progress); - var componentModel = (IComponentModel)GetGlobalService(typeof(SComponentModel)); + var componentModel = await GetServiceAsync(typeof(SComponentModel)) as IComponentModel; _globalRunSettings = componentModel.GetService(); + await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); + _generalOptions = (GeneralOptionsDialogPage)GetDialogPage(typeof(GeneralOptionsDialogPage)); _parallelizationOptions = (ParallelizationOptionsDialogPage)GetDialogPage(typeof(ParallelizationOptionsDialogPage)); _googleTestOptions = (GoogleTestOptionsDialogPage)GetDialogPage(typeof(GoogleTestOptionsDialogPage)); diff --git a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs index c0d37dc76..82fc793cf 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs @@ -6,7 +6,7 @@ namespace GoogleTestAdapter.VsPackage { - [ProvideAutoLoad(UIContextGuid)] + [ProvideAutoLoad(UIContextGuid, PackageAutoLoadFlags.BackgroundLoad)] [ProvideUIContextRule(UIContextGuid, OptionsCategoryName, "VCProject & TestExplorer", new string[] { "VCProject", "TestExplorer" }, new string[] { VSConstants.UICONTEXT.VCProject_string, TestExplorerContextGuid })] diff --git a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj index 9cb3a9132..e77c63205 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj +++ b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj @@ -160,9 +160,15 @@ False + + True + True + + True + False @@ -196,6 +202,7 @@ True False + False True @@ -211,15 +218,15 @@ - $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.VsPackage.TAfGT.dll.lcl + $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.VsPackage.TAfGT.dll.lcl Microsoft StrongName - - - false + + + false @@ -274,12 +281,12 @@ - - - - Microsoft - StrongName - - + + + + Microsoft + StrongName + + \ No newline at end of file From d8e598a1d4d5e2026da92397eb6773c4a24fa7ff Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 27 Jun 2018 11:36:40 -0700 Subject: [PATCH 67/96] Use new vsixlangpack schema and fix package load in non-english localizations (#134) --- .../Packaging.TAfGT/cs/Extension.vsixlangpack | 11 +++++++---- .../Packaging.TAfGT/de/Extension.vsixlangpack | 11 +++++++---- .../Packaging.TAfGT/es/Extension.vsixlangpack | 11 +++++++---- .../Packaging.TAfGT/fr/Extension.vsixlangpack | 11 +++++++---- .../Packaging.TAfGT/it/Extension.vsixlangpack | 11 +++++++---- .../Packaging.TAfGT/ja/Extension.vsixlangpack | 11 +++++++---- .../Packaging.TAfGT/ko/Extension.vsixlangpack | 11 +++++++---- .../Packaging.TAfGT/pl/Extension.vsixlangpack | 11 +++++++---- .../Packaging.TAfGT/pt-BR/Extension.vsixlangpack | 11 +++++++---- .../Packaging.TAfGT/ru/Extension.vsixlangpack | 11 +++++++---- .../Packaging.TAfGT/tr/Extension.vsixlangpack | 11 +++++++---- .../Packaging.TAfGT/zh-Hans/Extension.vsixlangpack | 11 +++++++---- .../Packaging.TAfGT/zh-Hant/Extension.vsixlangpack | 11 +++++++---- 13 files changed, 91 insertions(+), 52 deletions(-) diff --git a/GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack index b41be315c..8f4d6cd57 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - Testovací adaptér pro Google Test - + + + + Testovací adaptér pro Google Test + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack index d913f9a58..864e25bc9 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - Testadapter für Google Test - + + + + Testadapter für Google Test + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack index 02c289aad..1d54d7048 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - Test Adapter para Google Test - + + + + Test Adapter para Google Test + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack index a4c6113d1..662c6181d 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - Adaptateur de test pour Google Test - + + + + Adaptateur de test pour Google Test + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack index bbdc82478..a1613a4e7 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - Test Adapter for Google Test - + + + + Test Adapter for Google Test + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack index bbdc82478..a1613a4e7 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - Test Adapter for Google Test - + + + + Test Adapter for Google Test + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack index bbdc82478..a1613a4e7 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - Test Adapter for Google Test - + + + + Test Adapter for Google Test + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack index bbdc82478..a1613a4e7 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - Test Adapter for Google Test - + + + + Test Adapter for Google Test + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack index 1ed57191a..5a7028758 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - Adaptador de Teste para o Google Test - + + + + Adaptador de Teste para o Google Test + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack index c05354360..d0657a5ae 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - Адаптер теста для Google Test - + + + + Адаптер теста для Google Test + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack index 0df5f9d7d..ef0f0361d 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - Google Test için Test Bağdaştırıcısı - + + + + Google Test için Test Bağdaştırıcısı + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/zh-Hans/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/zh-Hans/Extension.vsixlangpack index 9e5aebc01..6bd1f1da1 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/zh-Hans/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/zh-Hans/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - 适用于 Google Test 的测试适配器 - + + + + 适用于 Google Test 的测试适配器 + + + \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/zh-Hant/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/zh-Hant/Extension.vsixlangpack index 6b169336d..516be1c87 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/zh-Hant/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/zh-Hant/Extension.vsixlangpack @@ -1,4 +1,7 @@ - - - 適用於 Google Test 的測試配接器 - + + + + 適用於 Google Test 的測試配接器 + + + \ No newline at end of file From 59b7db52f02a28249e42e89d1f288baa0fcfe6de Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Mon, 29 Oct 2018 15:00:39 -0700 Subject: [PATCH 68/96] Update GoogleTest.vstemplate (#144) --- .../GoogleTestProjectTemplate/GoogleTest.vstemplate | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate index 93e3df519..4f1188b2a 100644 --- a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate +++ b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate @@ -1,7 +1,7 @@ Google Test - A Google Test based unit testing project. + Write C++ unit tests using Google Test. Includes a copy of the Google Test library for use. VC Microsoft.VisualC.Project.GoogleTest 1000 @@ -29,4 +29,4 @@ - \ No newline at end of file + From 16c09bc6e6efacec9f6f4523ac7a40c6bc0a3d08 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Tue, 30 Oct 2018 15:53:42 -0700 Subject: [PATCH 69/96] update reference (#145) --- GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj index e77c63205..ed3a341f3 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj +++ b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj @@ -202,7 +202,7 @@ True False - + False True From 4d19c29fc3bef5b94885517b6977cfd168e0884d Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Fri, 11 Jan 2019 14:10:29 -0800 Subject: [PATCH 70/96] Update Google Test reference to 1.8.1 + fixes to support VS2019 (#148) * update googletest release to 1.8.1 * update vsix to install on dev16 * update nuget package references to 1.8.1 and add 2019 as supported version * update nuget references in project to latest version * remove flag that is being removed * fix debug build and update default toolset for project template * allow v142 toolset --- .../GoogleTest.vcxproj | 4 +- .../GoogleTest.vstemplate | 2 +- .../Packaging.TAfGT/Packaging.TAfGT.csproj | 6 +-- .../source.extension.vsixmanifest | 20 ++++---- .../TestAdapter/Framework/VsVersion.cs | 4 +- .../VsPackage.TAfGT/VsPackage.TAfGT.csproj | 2 +- GoogleTestNuGet/Build.ps1 | 51 +++++++++++-------- GoogleTestNuGet/googletest.nuspec.tt | 2 +- GoogleTestNuGet/googletest.targets.tt | 18 +++---- ThirdParty/googletest | 2 +- 10 files changed, 61 insertions(+), 50 deletions(-) diff --git a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vcxproj b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vcxproj index 2b6f47d1d..ae8fa98f2 100644 --- a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vcxproj +++ b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vcxproj @@ -23,7 +23,7 @@ Win32Proj $targetplatformversion$ Application - v141 + v142 Unicode @@ -53,7 +53,6 @@ pch.h Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true EnableFastChecks $rtdebug$ Level3 @@ -69,7 +68,6 @@ pch.h Disabled X64;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true EnableFastChecks $rtdebug$ Level3 diff --git a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate index 4f1188b2a..470b68558 100644 --- a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate +++ b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate @@ -26,7 +26,7 @@ - + diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index 13feddd62..1f21716fe 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -49,15 +49,15 @@ - + CopyIfNewer true - + CopyIfNewer true - + CopyIfNewer true diff --git a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest index bcd9b6f78..82b8c6516 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest +++ b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest @@ -13,10 +13,10 @@ Unit Test, C++, Google Test, GoogleTest, GTest, Test Explorer, Testing - - - - + + + + @@ -28,16 +28,16 @@ - - - + + + - - - + + + NuGet Package Manager diff --git a/GoogleTestAdapter/TestAdapter/Framework/VsVersion.cs b/GoogleTestAdapter/TestAdapter/Framework/VsVersion.cs index f0085cea1..fee9f1515 100644 --- a/GoogleTestAdapter/TestAdapter/Framework/VsVersion.cs +++ b/GoogleTestAdapter/TestAdapter/Framework/VsVersion.cs @@ -16,7 +16,7 @@ namespace GoogleTestAdapter.TestAdapter.Framework [SuppressMessage("ReSharper", "InconsistentNaming")] public enum VsVersion { - Unknown = -1, VS2012 = 0, VS2012_1 = 11, VS2013 = 12, VS2015 = 14, VS2017 = 15 + Unknown = -1, VS2012 = 0, VS2012_1 = 11, VS2013 = 12, VS2015 = 14, VS2017 = 15, VS2019 = 16 } public static class VsVersionExtensions @@ -36,6 +36,8 @@ public static int Year(this VsVersion version) return 2015; case VsVersion.VS2017: return 2017; + case VsVersion.VS2019: + return 2019; default: throw new InvalidOperationException(); } diff --git a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj index ed3a341f3..67f7c2a00 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj +++ b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj @@ -44,6 +44,7 @@ $(FlavoredTargetFrameworkVersion) true false + False true @@ -70,7 +71,6 @@ prompt 4 true - False diff --git a/GoogleTestNuGet/Build.ps1 b/GoogleTestNuGet/Build.ps1 index f8a363a0c..e86c8570a 100644 --- a/GoogleTestNuGet/Build.ps1 +++ b/GoogleTestNuGet/Build.ps1 @@ -126,6 +126,7 @@ function Add-Signing { ) $xml = [xml](Get-Content "$Directory\$ProjectName.vcxproj") + $ProjectNameDebug = -join("$ProjectName", "d") $MicroBuildProps = $xml.CreateElement("Import", "http://schemas.microsoft.com/developer/msbuild/2003") $MicroBuildProps.SetAttribute("Project", "$PSScriptRoot\..\NuGetPackages\MicroBuild.Core.0.2.0\build\MicroBuild.Core.props") @@ -141,16 +142,26 @@ function Add-Signing { $RealSignGroup.AppendChild($DelaySign) | Out-Null $FileSignGroup = $xml.CreateElement("ItemGroup", "http://schemas.microsoft.com/developer/msbuild/2003") - $FilesToSign = $xml.CreateElement("FilesToSign", "http://schemas.microsoft.com/developer/msbuild/2003") - $FilesToSign.SetAttribute("Include", "`$(OutDir)\$ProjectName.dll") - $FilesToSign.SetAttribute("Condition", "'`$(RealSign)' == 'True' and '`$(TargetExt)' == '.dll'") - $Authenticode = $xml.CreateElement("Authenticode", "http://schemas.microsoft.com/developer/msbuild/2003") - $Authenticode.set_InnerXML("Microsoft") - $StrongName = $xml.CreateElement("StrongName", "http://schemas.microsoft.com/developer/msbuild/2003") - $StrongName.set_InnerXML("StrongName") - $FilesToSign.AppendChild($Authenticode) | Out-Null - $FilesToSign.AppendChild($StrongName) | Out-Null - $FileSignGroup.AppendChild($FilesToSign) | Out-Null + $FilesToSignRel = $xml.CreateElement("FilesToSign", "http://schemas.microsoft.com/developer/msbuild/2003") + $FilesToSignRel.SetAttribute("Include", "`$(OutDir)\$ProjectName.dll") + $FilesToSignRel.SetAttribute("Condition", "'`$(RealSign)' == 'True' and '`$(TargetExt)' == '.dll' and '`$(Configuration)' == 'RelWithDebInfo'") + $AuthenticodeRel = $xml.CreateElement("Authenticode", "http://schemas.microsoft.com/developer/msbuild/2003") + $AuthenticodeRel.set_InnerXML("Microsoft") + $StrongNameRel = $xml.CreateElement("StrongName", "http://schemas.microsoft.com/developer/msbuild/2003") + $StrongNameRel.set_InnerXML("StrongName") + $FilesToSignRel.AppendChild($AuthenticodeRel) | Out-Null + $FilesToSignRel.AppendChild($StrongNameRel) | Out-Null + $FileSignGroup.AppendChild($FilesToSignRel) | Out-Null + $FilesToSignDebug = $xml.CreateElement("FilesToSign", "http://schemas.microsoft.com/developer/msbuild/2003") + $FilesToSignDebug.SetAttribute("Include", "`$(OutDir)\$ProjectNameDebug.dll") + $FilesToSignDebug.SetAttribute("Condition", "'`$(RealSign)' == 'True' and '`$(TargetExt)' == '.dll' and '`$(Configuration)' == 'Debug'") + $AuthenticodeDebug = $xml.CreateElement("Authenticode", "http://schemas.microsoft.com/developer/msbuild/2003") + $AuthenticodeDebug.set_InnerXML("Microsoft") + $StrongNameDebug = $xml.CreateElement("StrongName", "http://schemas.microsoft.com/developer/msbuild/2003") + $StrongNameDebug.set_InnerXML("StrongName") + $FilesToSignDebug.AppendChild($AuthenticodeDebug) | Out-Null + $FilesToSignDebug.AppendChild($StrongNameDebug) | Out-Null + $FileSignGroup.AppendChild($FilesToSignDebug) | Out-Null $MicroBuildTargets = $xml.CreateElement("Import", "http://schemas.microsoft.com/developer/msbuild/2003") $MicroBuildTargets.SetAttribute("Project", "$PSScriptRoot\..\NuGetPackages\MicroBuild.Core.0.2.0\build\MicroBuild.Core.targets") @@ -252,12 +263,12 @@ function Build-NuGet { $DestinationPath = $_[1] if ($DynamicLibraryLinkage) { - Copy-CreateItem -Path "$BuildPath\Debug\gtest.dll" -Destination "$DestinationPath\Debug\gtest.dll" - Copy-CreateItem -Path "$BuildPath\Debug\gtest.lib" -Destination "$DestinationPath\Debug\gtest.lib" - Copy-CreateItem -Path "$BuildPath\Debug\gtest.pdb" -Destination "$DestinationPath\Debug\gtest.pdb" - Copy-CreateItem -Path "$BuildPath\Debug\gtest_main.dll" -Destination "$DestinationPath\Debug\gtest_main.dll" - Copy-CreateItem -Path "$BuildPath\Debug\gtest_main.lib" -Destination "$DestinationPath\Debug\gtest_main.lib" - Copy-CreateItem -Path "$BuildPath\Debug\gtest_main.pdb" -Destination "$DestinationPath\Debug\gtest_main.pdb" + Copy-CreateItem -Path "$BuildPath\Debug\gtestd.dll" -Destination "$DestinationPath\Debug\gtestd.dll" + Copy-CreateItem -Path "$BuildPath\Debug\gtestd.lib" -Destination "$DestinationPath\Debug\gtestd.lib" + Copy-CreateItem -Path "$BuildPath\Debug\gtestd.pdb" -Destination "$DestinationPath\Debug\gtestd.pdb" + Copy-CreateItem -Path "$BuildPath\Debug\gtest_maind.dll" -Destination "$DestinationPath\Debug\gtest_maind.dll" + Copy-CreateItem -Path "$BuildPath\Debug\gtest_maind.lib" -Destination "$DestinationPath\Debug\gtest_maind.lib" + Copy-CreateItem -Path "$BuildPath\Debug\gtest_maind.pdb" -Destination "$DestinationPath\Debug\gtest_maind.pdb" Copy-CreateItem -Path "$BuildPath\RelWithDebInfo\gtest.dll" -Destination "$DestinationPath\Release\gtest.dll" Copy-CreateItem -Path "$BuildPath\RelWithDebInfo\gtest.lib" -Destination "$DestinationPath\Release\gtest.lib" @@ -266,10 +277,10 @@ function Build-NuGet { Copy-CreateItem -Path "$BuildPath\RelWithDebInfo\gtest_main.lib" -Destination "$DestinationPath\Release\gtest_main.lib" Copy-CreateItem -Path "$BuildPath\RelWithDebInfo\gtest_main.pdb" -Destination "$DestinationPath\Release\gtest_main.pdb" } else { - Copy-CreateItem -Path "$BuildPath\Debug\gtest.lib" -Destination "$DestinationPath\Debug\gtest.lib" - Copy-CreateItem -Path "$BuildPath\Debug\gtest.pdb" -Destination "$DestinationPath\Debug\gtest.pdb" - Copy-CreateItem -Path "$BuildPath\Debug\gtest_main.lib" -Destination "$DestinationPath\Debug\gtest_main.lib" - Copy-CreateItem -Path "$BuildPath\Debug\gtest_main.pdb" -Destination "$DestinationPath\Debug\gtest_main.pdb" + Copy-CreateItem -Path "$BuildPath\Debug\gtestd.lib" -Destination "$DestinationPath\Debug\gtestd.lib" + Copy-CreateItem -Path "$BuildPath\gtest.dir\Debug\gtest.pdb" -Destination "$DestinationPath\Debug\gtest.pdb" + Copy-CreateItem -Path "$BuildPath\Debug\gtest_maind.lib" -Destination "$DestinationPath\Debug\gtest_maind.lib" + Copy-CreateItem -Path "$BuildPath\gtest_main.dir\Debug\gtest_main.pdb" -Destination "$DestinationPath\Debug\gtest_main.pdb" Copy-CreateItem -Path "$BuildPath\RelWithDebInfo\gtest.lib" -Destination "$DestinationPath\Release\gtest.lib" Copy-CreateItem -Path "$BuildPath\gtest.dir\RelWithDebInfo\gtest.pdb" -Destination "$DestinationPath\Release\gtest.pdb" diff --git a/GoogleTestNuGet/googletest.nuspec.tt b/GoogleTestNuGet/googletest.nuspec.tt index d3a8a4a68..097e38c68 100644 --- a/GoogleTestNuGet/googletest.nuspec.tt +++ b/GoogleTestNuGet/googletest.nuspec.tt @@ -5,7 +5,7 @@ <#= PackageName #> - 1.8.0 + 1.8.1 Microsoft microsoft,visualcpp https://github.com/Microsoft/TestAdapterForGoogleTest diff --git a/GoogleTestNuGet/googletest.targets.tt b/GoogleTestNuGet/googletest.targets.tt index 9c9e67062..232474fed 100644 --- a/GoogleTestNuGet/googletest.targets.tt +++ b/GoogleTestNuGet/googletest.targets.tt @@ -5,7 +5,7 @@ <#@ parameter type="System.String" name="PathToBinaries" #> <#@ parameter type="System.String" name="ConfigurationType" #> - + >true> @@ -16,12 +16,12 @@ - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Debug\gtest.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Debug\gtest_main.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Debug\gtestd.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Debug\gtest_maind.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Release\gtest.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Release\gtest_main.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Debug\gtest.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Debug\gtest_main.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Debug\gtestd.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Debug\gtest_maind.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Release\gtest.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Release\gtest_main.lib;%(AdditionalDependencies) @@ -31,8 +31,8 @@ <# if (ConfigurationType == "dyn") { #> - - + + <# } #> @@ -47,8 +47,8 @@ <# if (ConfigurationType == "dyn") { #> - - + + <# } #> diff --git a/ThirdParty/googletest b/ThirdParty/googletest index ec44c6c16..2fe3bd994 160000 --- a/ThirdParty/googletest +++ b/ThirdParty/googletest @@ -1 +1 @@ -Subproject commit ec44c6c1675c25b9827aacd08c02433cccde7780 +Subproject commit 2fe3bd994b3189899d93f1d5a881e725e046fdc2 From 74444d0fd580b0a20f4c01da24a4b641bf4af5c8 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Fri, 8 Mar 2019 17:05:37 -0800 Subject: [PATCH 71/96] Fix GTA build (#153) * added support for asynchronous package loading (#243) * clean up merge --- .../source.extension.vsixmanifest | 62 +++--- .../AsyncPackageRegistrationAttribute.cs | 192 ++++++++++++++++++ .../AsyncPackage/ExtensionMethods.cs | 48 +++++ .../AsyncPackage/ProvideAutoLoadAttribute.cs | 118 +++++++++++ .../GoogleTestExtensionOptionsPage.cs | 49 ++++- .../VsPackage.GTA/VsPackage.GTA.csproj | 104 ++++++---- .../VsPackage.GTA/packages.config | 19 +- .../GoogleTestExtensionOptionsPage.cs | 46 ++--- .../GoogleTestExtensionOptionsPage.cs | 19 +- 9 files changed, 549 insertions(+), 108 deletions(-) create mode 100644 GoogleTestAdapter/VsPackage.GTA/AsyncPackage/AsyncPackageRegistrationAttribute.cs create mode 100644 GoogleTestAdapter/VsPackage.GTA/AsyncPackage/ExtensionMethods.cs create mode 100644 GoogleTestAdapter/VsPackage.GTA/AsyncPackage/ProvideAutoLoadAttribute.cs diff --git a/GoogleTestAdapter/Packaging.GTA/source.extension.vsixmanifest b/GoogleTestAdapter/Packaging.GTA/source.extension.vsixmanifest index 16efffb82..e07d7e9df 100644 --- a/GoogleTestAdapter/Packaging.GTA/source.extension.vsixmanifest +++ b/GoogleTestAdapter/Packaging.GTA/source.extension.vsixmanifest @@ -1,34 +1,34 @@  - - - Google Test Adapter - Adds support for the C++ unit testing framework Google Tests. - https://github.com/csoltenborn/GoogleTestAdapter - LICENSE.txt - Resources\Icons\Icon.ico - Resources\Preview.png - Unit Test, C++, Google Test, GoogleTest, GTest, Test Explorer, Testing - - - - - - - - - - - - - - - - - - - - - - + + + Google Test Adapter + Adds support for the C++ unit testing framework Google Tests. + https://github.com/csoltenborn/GoogleTestAdapter + LICENSE.txt + Resources\Icons\Icon.ico + Resources\Preview.png + Unit Test, C++, Google Test, GoogleTest, GTest, Test Explorer, Testing + + + + + + + + + + + + + + + + + + + + + + diff --git a/GoogleTestAdapter/VsPackage.GTA/AsyncPackage/AsyncPackageRegistrationAttribute.cs b/GoogleTestAdapter/VsPackage.GTA/AsyncPackage/AsyncPackageRegistrationAttribute.cs new file mode 100644 index 000000000..f5b0b9a80 --- /dev/null +++ b/GoogleTestAdapter/VsPackage.GTA/AsyncPackage/AsyncPackageRegistrationAttribute.cs @@ -0,0 +1,192 @@ +//------------------------------------------------------------------------------ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +//------------------------------------------------------------------------------ + +namespace Microsoft.VisualStudio.AsyncPackageHelpers { + + using System; + using System.Globalization; + using System.IO; + using System.ComponentModel; + using System.ComponentModel.Design; + using Microsoft.VisualStudio.Shell; + using Microsoft.VisualStudio.Shell.Interop; + + /// + /// This attribute is defined on a package to get it to be registered. It + /// is internal because packages are meant to be registered, so it is + /// implicit just by having a package in the assembly. + /// + [AttributeUsage(AttributeTargets.Class, Inherited=true, AllowMultiple=false)] + public sealed class AsyncPackageRegistrationAttribute : RegistrationAttribute + { + private RegistrationMethod registrationMethod = RegistrationMethod.Default; + private bool useManagedResources = false; + private bool allowsBackgroundLoad = false; + private string satellitePath = null; + + /// + /// Select between specifying the Codebase entry or the Assembly entry in the registry. + /// This can be overriden during registration + /// + public RegistrationMethod RegisterUsing + { + get + { + return registrationMethod; + } + set + { + registrationMethod = value; + } + } + + /// + /// For managed resources, there should not be a native ui dll registered. + /// + public bool UseManagedResourcesOnly + { + get { return useManagedResources; } + set { useManagedResources = value; } + } + + /// + /// Package is safe to load on a background thread. + /// + public bool AllowsBackgroundLoading + { + get { return allowsBackgroundLoad; } + set { allowsBackgroundLoad = value; } + } + + /// + /// To specify a resource dll located in a different location then the default, + /// set this property. This can be useful if your package is installed in the GAC. + /// If this is not set, the directory where the package is located will be use. + /// + /// Note that the dll should be located at the following path: + /// SatellitePath\lcid\PackageDllNameUI.dll + /// + public string SatellitePath + { + get { return satellitePath; } + set { satellitePath = value; } + } + + private string RegKeyName(RegistrationContext context) + { + return String.Format(CultureInfo.InvariantCulture, "Packages\\{0}", context.ComponentType.GUID.ToString("B")); + } + + /// + /// Called to register this attribute with the given context. The context + /// contains the location where the registration information should be placed. + /// it also contains such as the type being registered, and path information. + /// + /// This method is called both for registration and unregistration. The difference is + /// that unregistering just uses a hive that reverses the changes applied to it. + /// + /// + /// Contains the location where the registration information should be placed. + /// It also contains other information such as the type being registered + /// and path of the assembly. + /// + public override void Register(RegistrationContext context) { + Type t = context.ComponentType; + + Key packageKey = null; + try + { + packageKey = context.CreateKey(RegKeyName(context)); + + //use a friendly description if it exists. + DescriptionAttribute attr = TypeDescriptor.GetAttributes(t)[typeof(DescriptionAttribute)] as DescriptionAttribute; + if (attr != null && !String.IsNullOrEmpty(attr.Description)) { + packageKey.SetValue(string.Empty, attr.Description); + } + else { + packageKey.SetValue(string.Empty, t.Name); + } + + packageKey.SetValue("InprocServer32", context.InprocServerPath); + packageKey.SetValue("Class", t.FullName); + + // If specified on the command line, let the command line option override + if (context.RegistrationMethod != RegistrationMethod.Default) + { + registrationMethod = context.RegistrationMethod; + } + + // Select registration method + switch (registrationMethod) + { + case RegistrationMethod.Assembly: + case RegistrationMethod.Default: + packageKey.SetValue("Assembly", t.Assembly.FullName); + break; + + case RegistrationMethod.CodeBase: + packageKey.SetValue("CodeBase", context.CodeBase); + break; + } + + Key childKey = null; + if (!useManagedResources) + { + try + { + childKey = packageKey.CreateSubkey("SatelliteDll"); + + // Register the satellite dll + string satelliteDllPath; + if (SatellitePath != null) + { + // Use provided path + satelliteDllPath = context.EscapePath(SatellitePath); + } + else + { + // Default to package path + satelliteDllPath = context.ComponentPath; + } + childKey.SetValue("Path", satelliteDllPath); + childKey.SetValue("DllName", String.Format(CultureInfo.InvariantCulture, "{0}UI.dll", Path.GetFileNameWithoutExtension(t.Assembly.ManifestModule.Name))); + } + finally + { + if (childKey != null) + childKey.Close(); + } + } + + if (allowsBackgroundLoad) + { + packageKey.SetValue("AllowsBackgroundLoad", true); + } + + if (typeof(IVsPackageDynamicToolOwner).IsAssignableFrom(context.ComponentType) || + typeof(IVsPackageDynamicToolOwnerEx).IsAssignableFrom(context.ComponentType)) + { + packageKey.SetValue("SupportsDynamicToolOwner", Microsoft.VisualStudio.PlatformUI.Boxes.BooleanTrue); + } + } + finally + { + if (packageKey != null) + packageKey.Close(); + } + } + + /// + /// Unregister this package. + /// + /// + public override void Unregister(RegistrationContext context) + { + context.RemoveKey(RegKeyName(context)); + } + + } +} diff --git a/GoogleTestAdapter/VsPackage.GTA/AsyncPackage/ExtensionMethods.cs b/GoogleTestAdapter/VsPackage.GTA/AsyncPackage/ExtensionMethods.cs new file mode 100644 index 000000000..1fc1376f8 --- /dev/null +++ b/GoogleTestAdapter/VsPackage.GTA/AsyncPackage/ExtensionMethods.cs @@ -0,0 +1,48 @@ +using System; +using System.Runtime.InteropServices; +using Microsoft.VisualStudio.Shell.Interop; +using System.Threading.Tasks; +using Microsoft.VisualStudio.Shell; + +namespace Microsoft.VisualStudio.AsyncPackageHelpers +{ + public static class ExtensionMethods + { + /// + /// Helper method to use async/await with IAsyncServiceProvider implementation + /// + /// IAsyncServciceProvider instance + /// Type of the Visual Studio service requested + /// Service object as type of T + public static async Task GetServiceAsync(this IAsyncServiceProvider asyncServiceProvider, Type serviceType) where T : class + { + T returnValue = null; + + await ThreadHelper.JoinableTaskFactory.RunAsync(async () => + { + object serviceInstance = null; + Guid serviceTypeGuid = serviceType.GUID; + serviceInstance = await asyncServiceProvider.QueryServiceAsync(ref serviceTypeGuid); + + // We have to make sure we are on main UI thread before trying to cast as underlying implementation + // can be an STA COM object and doing a cast would require calling QueryInterface/AddRef marshaling + // to main thread via COM. + await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); + returnValue = serviceInstance as T; + }); + + return returnValue; + } + + /// + /// Gets if async package is supported in the current instance of Visual Studio + /// + /// an IServiceProvider instance, usually a Package instance + /// true if async packages are supported + public static bool IsAsyncPackageSupported(this IServiceProvider serviceProvider) + { + IAsyncServiceProvider asyncServiceProvider = serviceProvider.GetService(typeof(SAsyncServiceProvider)) as IAsyncServiceProvider; + return asyncServiceProvider != null; + } + } +} \ No newline at end of file diff --git a/GoogleTestAdapter/VsPackage.GTA/AsyncPackage/ProvideAutoLoadAttribute.cs b/GoogleTestAdapter/VsPackage.GTA/AsyncPackage/ProvideAutoLoadAttribute.cs new file mode 100644 index 000000000..cf0f3103a --- /dev/null +++ b/GoogleTestAdapter/VsPackage.GTA/AsyncPackage/ProvideAutoLoadAttribute.cs @@ -0,0 +1,118 @@ +//------------------------------------------------------------------------------ +// +// Copyright (c) Microsoft Corporation, All rights reserved. +// This code sample is provided "AS IS" without warranty of any kind, +// it is not recommended for use in a production environment. +// +//------------------------------------------------------------------------------ + +namespace Microsoft.VisualStudio.AsyncPackageHelpers +{ + + using System; + using System.Globalization; + using Microsoft.VisualStudio.Shell; + + [Flags] + public enum PackageAutoLoadFlags + { + /// + /// Indicates no special auto-load behavior. This is the default flag value if not specified. + /// + None = 0x0, + + /// + /// When set package will not auto load in newer Visual Studio versions with rule based UI contexts + /// + SkipWhenUIContextRulesActive = 0x1, + + /// + /// When set, if the associated package is marked as allowing background loads (via the ), + /// then the package will be loaded asynchronously, in the background, when the associated UI context is triggered. + /// + BackgroundLoad = 0x2 + } + + /// + /// This attribute registers the package as an extender. The GUID passed in determines + /// what is being extended. The attributes on a package do not control the behavior of + /// the package, but they can be used by registration tools to register the proper + /// information with Visual Studio. + /// + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)] + public sealed class ProvideAutoLoadAttribute : RegistrationAttribute + { + + private Guid loadGuid = Guid.Empty; + + /// + /// Specify that the package should get loaded when this context is active. + /// + /// Context which should trigger the loading of your package. + public ProvideAutoLoadAttribute(string cmdUiContextGuid) : this(cmdUiContextGuid, PackageAutoLoadFlags.None) + { + } + + /// + /// Specify that the package should get loaded when this context is active. + /// + /// Context which should trigger the loading of your package. + public ProvideAutoLoadAttribute(string cmdUiContextGuid, PackageAutoLoadFlags flags = PackageAutoLoadFlags.None) + { + loadGuid = new Guid(cmdUiContextGuid); + Flags = flags; + } + + /// + /// Context Guid which triggers the loading of the package. + /// + public Guid LoadGuid + { + get + { + return loadGuid; + } + } + + /// + /// Specifies the options for package auto load entry + /// + public PackageAutoLoadFlags Flags + { + get; + private set; + } + + /// + /// The reg key name of this AutoLoad. + /// + private string RegKeyName + { + get + { + return string.Format(CultureInfo.InvariantCulture, "AutoLoadPackages\\{0}", loadGuid.ToString("B")); + } + } + + /// + /// Called to register this attribute with the given context. The context + /// contains the location where the registration information should be placed. + /// it also contains such as the type being registered, and path information. + /// + public override void Register(RegistrationContext context) + { + using (Key childKey = context.CreateKey(RegKeyName)) + { + childKey.SetValue(context.ComponentType.GUID.ToString("B"), (int)Flags); + } + } + + /// + /// Unregister this AutoLoad specification. + /// + public override void Unregister(RegistrationContext context) + { + context.RemoveValue(RegKeyName, context.ComponentType.GUID.ToString("B")); + } + } +} diff --git a/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs index e49755ce4..faeff3bbc 100644 --- a/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs @@ -1,6 +1,10 @@ -// This file has been modified by Microsoft on 9/2017. +// This file has been modified by Microsoft on 3/2019. +using GoogleTestAdapter.TestAdapter.Settings; using GoogleTestAdapter.VsPackage.ReleaseNotes; +using Microsoft.VisualStudio; +using Microsoft.VisualStudio.AsyncPackageHelpers; +using Microsoft.VisualStudio.ComponentModelHost; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; using System; @@ -9,15 +13,52 @@ namespace GoogleTestAdapter.VsPackage { - [ProvideAutoLoad(UIContextGuids.SolutionExists)] - public partial class GoogleTestExtensionOptionsPage + [AsyncPackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)] + [Microsoft.VisualStudio.AsyncPackageHelpers.ProvideAutoLoad(VSConstants.UICONTEXT.NoSolution_string, PackageAutoLoadFlags.BackgroundLoad)] + [Microsoft.VisualStudio.Shell.ProvideAutoLoad(UIContextGuids.SolutionExists)] + public partial class GoogleTestExtensionOptionsPage : Package, IAsyncLoadablePackageInitialize { private const string PackageGuidString = "e7c90fcb-0943-4908-9ae8-3b6a9d22ec9e"; private const string OptionsCategoryName = "Google Test Adapter"; + private bool _isAsyncLoadSupported; + + protected override void Initialize() + { + base.Initialize(); + + _isAsyncLoadSupported = this.IsAsyncPackageSupported(); + if (!_isAsyncLoadSupported) + { + var componentModel = (IComponentModel)GetGlobalService(typeof(SComponentModel)); + _globalRunSettings = componentModel.GetService(); + DoInitialize(); + } + } + + IVsTask IAsyncLoadablePackageInitialize.Initialize(IAsyncServiceProvider serviceProvider, IProfferAsyncService profferService, + IAsyncProgressCallback progressCallback) + { + if (!_isAsyncLoadSupported) + { + throw new InvalidOperationException("Async Initialize method should not be called when async load is not supported."); + } + + return ThreadHelper.JoinableTaskFactory.RunAsync(async () => + { + var componentModel = await serviceProvider.GetServiceAsync(typeof(SComponentModel)); + _globalRunSettings = componentModel.GetService(); + + await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); + + DoInitialize(); + + return null; + }).AsVsTask(); + } private void DisplayReleaseNotesIfNecessary() { - var thread = new Thread(DisplayReleaseNotesIfNecessaryProc); + var thread = new System.Threading.Thread(DisplayReleaseNotesIfNecessaryProc); thread.SetApartmentState(ApartmentState.STA); thread.Start(); } diff --git a/GoogleTestAdapter/VsPackage.GTA/VsPackage.GTA.csproj b/GoogleTestAdapter/VsPackage.GTA/VsPackage.GTA.csproj index 649bdab33..f9b9c0288 100644 --- a/GoogleTestAdapter/VsPackage.GTA/VsPackage.GTA.csproj +++ b/GoogleTestAdapter/VsPackage.GTA/VsPackage.GTA.csproj @@ -44,6 +44,7 @@ $(FlavoredTargetFrameworkVersion) true false + False true @@ -69,6 +70,9 @@ False + + + Component @@ -136,82 +140,92 @@ + + $(NuGetPackages)CommonMark.NET.0.15.1\lib\net45\CommonMark.dll + + ..\..\NuGetPackages\VSSDK.DTE.7.0.4\lib\net20\envdte.dll False - $(NuGetPackages)VSSDK.DTE.7.0.4\lib\net20\envdte.dll - True + False + ..\..\NuGetPackages\VSSDK.DTE.10.10.0.4\lib\net20\envdte100.dll False - $(NuGetPackages)VSSDK.DTE.10.10.0.4\lib\net20\envdte100.dll - True + False + ..\..\NuGetPackages\VSSDK.DTE.8.8.0.4\lib\net20\envdte80.dll False - $(NuGetPackages)VSSDK.DTE.8.8.0.4\lib\net20\envdte80.dll - True + False + ..\..\NuGetPackages\VSSDK.DTE.9.9.0.4\lib\net20\envdte90.dll False - $(NuGetPackages)VSSDK.DTE.9.9.0.4\lib\net20\envdte90.dll - True + False + ..\..\NuGetPackages\VSSDK.DTE.9.9.0.4\lib\net20\envdte90a.dll False - $(NuGetPackages)VSSDK.DTE.9.9.0.4\lib\net20\envdte90a.dll - True - - - $(NuGetPackages)CommonMark.NET.0.15.1\lib\net45\CommonMark.dll + False - - $(NuGetPackages)VSSDK.ComponentModelHost.11.0.4\lib\net45\Microsoft.VisualStudio.ComponentModelHost.dll + + ..\..\NuGetPackages\VSSDK.ComponentModelHost.12.0.4\lib\net45\Microsoft.VisualStudio.ComponentModelHost.dll False - $(NuGetPackages)VSSDK.GraphModel.11.0.4\lib\net45\Microsoft.VisualStudio.GraphModel.dll + ..\..\NuGetPackages\VSSDK.GraphModel.11.0.4\lib\net45\Microsoft.VisualStudio.GraphModel.dll False - $(NuGetPackages)VSSDK.OLE.Interop.7.0.4\lib\net20\Microsoft.VisualStudio.OLE.Interop.dll - True + ..\..\NuGetPackages\VSSDK.OLE.Interop.7.0.4\lib\net20\Microsoft.VisualStudio.OLE.Interop.dll False - - $(NuGetPackages)VSSDK.Shell.11.11.0.0\lib\net45\Microsoft.VisualStudio.Shell.11.0.dll - True + + ..\..\NuGetPackages\VSSDK.Shell.12.12.0.4\lib\net45\Microsoft.VisualStudio.Shell.12.0.dll + False - $(NuGetPackages)VSSDK.Shell.Immutable.10.10.0.4\lib\net40\Microsoft.VisualStudio.Shell.Immutable.10.0.dll - True + ..\..\NuGetPackages\VSSDK.Shell.Immutable.10.10.0.4\lib\net40\Microsoft.VisualStudio.Shell.Immutable.10.0.dll False - $(NuGetPackages)VSSDK.Shell.Immutable.11.11.0.4\lib\net45\Microsoft.VisualStudio.Shell.Immutable.11.0.dll - True + ..\..\NuGetPackages\VSSDK.Shell.Immutable.11.11.0.4\lib\net45\Microsoft.VisualStudio.Shell.Immutable.11.0.dll + False + + + ..\..\NuGetPackages\VSSDK.Shell.Immutable.12.12.0.4\lib\net45\Microsoft.VisualStudio.Shell.Immutable.12.0.dll False - $(NuGetPackages)VSSDK.Shell.Interop.7.0.4\lib\net20\Microsoft.VisualStudio.Shell.Interop.dll - True + ..\..\NuGetPackages\VSSDK.Shell.Interop.7.0.4\lib\net20\Microsoft.VisualStudio.Shell.Interop.dll False - $(NuGetPackages)VSSDK.Shell.Interop.10.10.0.0\lib\net20\Microsoft.VisualStudio.Shell.Interop.10.0.dll + ..\..\NuGetPackages\VSSDK.Shell.Interop.10.10.0.4\lib\net20\Microsoft.VisualStudio.Shell.Interop.10.0.dll + False False - $(NuGetPackages)VSSDK.Shell.Interop.11.11.0.0\lib\net20\Microsoft.VisualStudio.Shell.Interop.11.0.dll + ..\..\NuGetPackages\VSSDK.Shell.Interop.11.11.0.4\lib\net20\Microsoft.VisualStudio.Shell.Interop.11.0.dll + False False + + ..\..\NuGetPackages\VSSDK.Shell.Interop.12.12.0.4\lib\net20\Microsoft.VisualStudio.Shell.Interop.12.0.dll + False + False + + + True + - $(NuGetPackages)VSSDK.Shell.Interop.10.10.0.0\lib\net20\Microsoft.VisualStudio.Shell.Interop.8.0.dll + ..\..\NuGetPackages\VSSDK.Shell.Interop.8.8.0.4\lib\net20\Microsoft.VisualStudio.Shell.Interop.8.0.dll False - $(NuGetPackages)VSSDK.Shell.Interop.10.10.0.0\lib\net20\Microsoft.VisualStudio.Shell.Interop.9.0.dll + ..\..\NuGetPackages\VSSDK.Shell.Interop.9.9.0.4\lib\net20\Microsoft.VisualStudio.Shell.Interop.9.0.dll False @@ -223,29 +237,33 @@ True - $(NuGetPackages)VSSDK.TextManager.Interop.7.0.4\lib\net20\Microsoft.VisualStudio.TextManager.Interop.dll - True + ..\..\NuGetPackages\VSSDK.TextManager.Interop.7.0.4\lib\net20\Microsoft.VisualStudio.TextManager.Interop.dll False + ..\..\NuGetPackages\VSSDK.TextManager.Interop.10.10.0.4\lib\net20\Microsoft.VisualStudio.TextManager.Interop.10.0.dll False - $(NuGetPackages)VSSDK.TextManager.Interop.10.10.0.4\lib\net20\Microsoft.VisualStudio.TextManager.Interop.10.0.dll - True + False - $(NuGetPackages)VSSDK.TextManager.Interop.8.8.0.4\lib\net20\Microsoft.VisualStudio.TextManager.Interop.8.0.dll - True + ..\..\NuGetPackages\VSSDK.TextManager.Interop.8.8.0.4\lib\net20\Microsoft.VisualStudio.TextManager.Interop.8.0.dll + False False - $(NuGetPackages)VSSDK.TextManager.Interop.9.9.0.4\lib\net20\Microsoft.VisualStudio.TextManager.Interop.9.0.dll - True + ..\..\NuGetPackages\VSSDK.TextManager.Interop.9.9.0.4\lib\net20\Microsoft.VisualStudio.TextManager.Interop.9.0.dll + False + + + ..\..\NuGetPackages\VSSDK.Threading.12.0.4\lib\net45\Microsoft.VisualStudio.Threading.dll False + + + ..\..\NuGetPackages\VSSDK.DTE.7.0.4\lib\net20\stdole.dll False - $(NuGetPackages)VSSDK.DTE.7.0.4\lib\net20\stdole.dll - True + False @@ -253,8 +271,12 @@ + + + + diff --git a/GoogleTestAdapter/VsPackage.GTA/packages.config b/GoogleTestAdapter/VsPackage.GTA/packages.config index 5e0560398..cb463d7a3 100644 --- a/GoogleTestAdapter/VsPackage.GTA/packages.config +++ b/GoogleTestAdapter/VsPackage.GTA/packages.config @@ -5,29 +5,34 @@ - - + + - + - - + + - - + + + + + + + \ No newline at end of file diff --git a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs index 0d819e02b..0b48ed17d 100644 --- a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 5/2018. +// This file has been modified by Microsoft on 3/2019. using GoogleTestAdapter.Settings; using GoogleTestAdapter.TestAdapter.Settings; @@ -7,7 +7,6 @@ using GoogleTestAdapter.VsPackage.Helpers; using GoogleTestAdapter.VsPackage.OptionsPages; using Microsoft.VisualStudio; -using Microsoft.VisualStudio.ComponentModelHost; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; using System; @@ -15,13 +14,10 @@ using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices; using System.ServiceModel; -using System.Threading; -using Task = System.Threading.Tasks.Task; namespace GoogleTestAdapter.VsPackage { - [PackageRegistration(AllowsBackgroundLoading = true, UseManagedResourcesOnly = true)] [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] // Info on this package for Help/About [Guid(PackageGuidString)] [SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1650:ElementDocumentationMustBeSpelledCorrectly", Justification = "pkgdef, VS and vsixmanifest are valid VS terms")] @@ -29,7 +25,7 @@ namespace GoogleTestAdapter.VsPackage [ProvideOptionPage(typeof(ParallelizationOptionsDialogPage), OptionsCategoryName, "Parallelization", 110, 502, true)] [ProvideOptionPage(typeof(GoogleTestOptionsDialogPage), OptionsCategoryName, "Google Test", 110, 503, true)] [ProvideMenuResource("Menus.ctmenu", 1)] - public sealed partial class GoogleTestExtensionOptionsPage : AsyncPackage, IGoogleTestExtensionOptionsPage, IDisposable + public sealed partial class GoogleTestExtensionOptionsPage : IGoogleTestExtensionOptionsPage, IDisposable { private readonly string _debuggingNamedPipeId = Guid.NewGuid().ToString(); @@ -42,32 +38,38 @@ public sealed partial class GoogleTestExtensionOptionsPage : AsyncPackage, IGoog // ReSharper disable once NotAccessedField.Local private DebuggerAttacherServiceHost _debuggerAttacherServiceHost; - protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress) + private void DoInitialize() { - await base.InitializeAsync(cancellationToken, progress); - - var componentModel = await GetServiceAsync(typeof(SComponentModel)) as IComponentModel; - _globalRunSettings = componentModel.GetService(); - - await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); + InitializeOptions(); + InitializeCommands(); + InitializeDebuggerAttacherService(); + DisplayReleaseNotesIfNecessary(); + } - _generalOptions = (GeneralOptionsDialogPage)GetDialogPage(typeof(GeneralOptionsDialogPage)); - _parallelizationOptions = (ParallelizationOptionsDialogPage)GetDialogPage(typeof(ParallelizationOptionsDialogPage)); - _googleTestOptions = (GoogleTestOptionsDialogPage)GetDialogPage(typeof(GoogleTestOptionsDialogPage)); + private void InitializeOptions() + { + _generalOptions = (GeneralOptionsDialogPage) GetDialogPage(typeof(GeneralOptionsDialogPage)); + _parallelizationOptions = + (ParallelizationOptionsDialogPage) GetDialogPage(typeof(ParallelizationOptionsDialogPage)); + _googleTestOptions = (GoogleTestOptionsDialogPage) GetDialogPage(typeof(GoogleTestOptionsDialogPage)); _globalRunSettings.RunSettings = GetRunSettingsFromOptionPages(); _generalOptions.PropertyChanged += OptionsChanged; _parallelizationOptions.PropertyChanged += OptionsChanged; _googleTestOptions.PropertyChanged += OptionsChanged; + } + private void InitializeCommands() + { SwitchCatchExceptionsOptionCommand.Initialize(this); SwitchBreakOnFailureOptionCommand.Initialize(this); SwitchParallelExecutionOptionCommand.Initialize(this); SwitchPrintTestOutputOptionCommand.Initialize(this); + } - DisplayReleaseNotesIfNecessary(); - + private void InitializeDebuggerAttacherService() + { var logger = new ActivityLogLogger(this, () => _generalOptions.DebugMode); var debuggerAttacher = new VsDebuggerAttacher(this); _debuggerAttacherServiceHost = new DebuggerAttacherServiceHost(_debuggingNamedPipeId, debuggerAttacher, logger); @@ -103,15 +105,11 @@ protected override void Dispose(bool disposing) try { - // Cannot simply do ".?" because Code Analysis does not understand that. - if (_debuggerAttacherServiceHost != null) - { - _debuggerAttacherServiceHost.Close(); - } + _debuggerAttacherServiceHost?.Close(); } catch (CommunicationException) { - _debuggerAttacherServiceHost.Abort(); + _debuggerAttacherServiceHost?.Abort(); } } base.Dispose(disposing); diff --git a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs index 82fc793cf..4dccad96f 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs @@ -1,22 +1,39 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. +using GoogleTestAdapter.TestAdapter.Settings; using Microsoft.VisualStudio; +using Microsoft.VisualStudio.ComponentModelHost; using Microsoft.VisualStudio.Shell; +using System; +using System.Threading; namespace GoogleTestAdapter.VsPackage { + [PackageRegistration(AllowsBackgroundLoading = true, UseManagedResourcesOnly = true)] [ProvideAutoLoad(UIContextGuid, PackageAutoLoadFlags.BackgroundLoad)] [ProvideUIContextRule(UIContextGuid, OptionsCategoryName, "VCProject & TestExplorer", new string[] { "VCProject", "TestExplorer" }, new string[] { VSConstants.UICONTEXT.VCProject_string, TestExplorerContextGuid })] - public partial class GoogleTestExtensionOptionsPage + public partial class GoogleTestExtensionOptionsPage : AsyncPackage { private const string PackageGuidString = "6fac3232-df1d-400a-95ac-7daeaaee74ac"; private const string UIContextGuid = "7517f9ae-397f-48e1-8e1b-dac609d9f52d"; private const string TestExplorerContextGuid = "ec25b527-d893-4ec0-a814-d2c9f1782997"; private const string OptionsCategoryName = "Test Adapter for Google Test"; + protected override async System.Threading.Tasks.Task InitializeAsync(CancellationToken cancellationToken, IProgress progress) + { + await base.InitializeAsync(cancellationToken, progress); + + var componentModel = await GetServiceAsync(typeof(SComponentModel)) as IComponentModel; + _globalRunSettings = componentModel.GetService(); + + await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); + + DoInitialize(); + } + private void DisplayReleaseNotesIfNecessary() { // TAfGT does not display release notes. From a64df6d9a529349ac1c62b2b4ea1075318049704 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 20 Mar 2019 16:54:27 -0700 Subject: [PATCH 72/96] fix copyright (#154) --- GoogleTestNuGet/googletest.nuspec.tt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GoogleTestNuGet/googletest.nuspec.tt b/GoogleTestNuGet/googletest.nuspec.tt index 097e38c68..cb2d4ce47 100644 --- a/GoogleTestNuGet/googletest.nuspec.tt +++ b/GoogleTestNuGet/googletest.nuspec.tt @@ -11,7 +11,7 @@ https://github.com/Microsoft/TestAdapterForGoogleTest https://raw.githubusercontent.com/Microsoft/TestAdapterForGoogleTest/dev15/GoogleTestNuGet/license%20(MIT).txt true - © Microsoft Corporation. All rights reserved. + © Microsoft Corporation. All rights reserved. Google Test compiled for Windows. native googletest google test gtest c++ cpp https://raw.githubusercontent.com/Microsoft/TestAdapterForGoogleTest/dev15/GoogleTestAdapter/Resources/Icons/Icon_128.png From 8a2f19a26575ed05c11ea06604b5fbd159dc0108 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Mon, 25 Mar 2019 14:19:27 -0700 Subject: [PATCH 73/96] Add signing project for nuget packages (#155) * add signing project for nupkgs --- GoogleTestNuGet/googletest.SignNuGet.proj | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 GoogleTestNuGet/googletest.SignNuGet.proj diff --git a/GoogleTestNuGet/googletest.SignNuGet.proj b/GoogleTestNuGet/googletest.SignNuGet.proj new file mode 100644 index 000000000..10015327a --- /dev/null +++ b/GoogleTestNuGet/googletest.SignNuGet.proj @@ -0,0 +1,24 @@ + + + + + + {9C5FB75F-BE2A-4358-A2C8-E950EB2A027A} + $(FlavoredTargetFrameworkVersion) + + + $(MSBuildThisFileDirectory)\..\GoogleTestAdapter\Packages + $(MSBuildThisFileDirectory)\..\GoogleTestAdapter\Packages + library + 2008 + + + + + + NuGet + + + + + \ No newline at end of file From 15b0446b79ee80c2dee85556e2a951c953cf9998 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Fri, 8 Nov 2019 17:01:20 -0800 Subject: [PATCH 74/96] Update targets for debug pdbs (#166) * update targets for debug pdbs * update sign auth to latest cert --- .../Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj | 4 ++-- GoogleTestAdapter/Common/Common.csproj | 2 +- GoogleTestAdapter/Core/Core.csproj | 4 ++-- GoogleTestAdapter/DiaResolver/DiaResolver.csproj | 4 ++-- .../NewProjectWizard/NewProjectWizard.csproj | 4 ++-- GoogleTestAdapter/TestAdapter/TestAdapter.csproj | 4 ++-- GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj | 4 ++-- GoogleTestNuGet/Build.ps1 | 4 ++-- GoogleTestNuGet/googletest.targets.tt | 8 ++++---- 9 files changed, 19 insertions(+), 19 deletions(-) diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj b/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj index 56d757ad6..165c44fd7 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj @@ -43,7 +43,7 @@ $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.Common.Dynamic.dll.lcl - Microsoft + Microsoft400 StrongName @@ -93,7 +93,7 @@ - Microsoft + Microsoft400 StrongName diff --git a/GoogleTestAdapter/Common/Common.csproj b/GoogleTestAdapter/Common/Common.csproj index 4eca93703..8513c215d 100644 --- a/GoogleTestAdapter/Common/Common.csproj +++ b/GoogleTestAdapter/Common/Common.csproj @@ -40,7 +40,7 @@ - Microsoft + Microsoft400 StrongName diff --git a/GoogleTestAdapter/Core/Core.csproj b/GoogleTestAdapter/Core/Core.csproj index 17089af1f..437ebf1c9 100644 --- a/GoogleTestAdapter/Core/Core.csproj +++ b/GoogleTestAdapter/Core/Core.csproj @@ -45,7 +45,7 @@ $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.Core.dll.lcl - Microsoft + Microsoft400 StrongName @@ -165,7 +165,7 @@ - Microsoft + Microsoft400 StrongName diff --git a/GoogleTestAdapter/DiaResolver/DiaResolver.csproj b/GoogleTestAdapter/DiaResolver/DiaResolver.csproj index 92b94911f..0893300d3 100644 --- a/GoogleTestAdapter/DiaResolver/DiaResolver.csproj +++ b/GoogleTestAdapter/DiaResolver/DiaResolver.csproj @@ -47,7 +47,7 @@ $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.DiaResolver.dll.lcl - Microsoft + Microsoft400 StrongName @@ -128,7 +128,7 @@ - Microsoft + Microsoft400 StrongName diff --git a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj index af07d62b9..c3f05a264 100644 --- a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj +++ b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj @@ -48,7 +48,7 @@ $(LSBuildRoot)\MCP_excludeBaml.lss - Microsoft + Microsoft400 StrongName @@ -176,7 +176,7 @@ - Microsoft + Microsoft400 StrongName diff --git a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj index 47b5d2e37..b74f57aef 100644 --- a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj +++ b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj @@ -47,7 +47,7 @@ $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.TestAdapter.dll.lcl - Microsoft + Microsoft400 StrongName @@ -281,7 +281,7 @@ - Microsoft + Microsoft400 StrongName diff --git a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj index 67f7c2a00..14561f081 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj +++ b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj @@ -221,7 +221,7 @@ $(MSBuildThisFileDirectory)..\..\loc\lcl\{Lang}\GoogleTestAdapter.VsPackage.TAfGT.dll.lcl - Microsoft + Microsoft400 StrongName @@ -284,7 +284,7 @@ - Microsoft + Microsoft400 StrongName diff --git a/GoogleTestNuGet/Build.ps1 b/GoogleTestNuGet/Build.ps1 index e86c8570a..66bc3bd6d 100644 --- a/GoogleTestNuGet/Build.ps1 +++ b/GoogleTestNuGet/Build.ps1 @@ -146,7 +146,7 @@ function Add-Signing { $FilesToSignRel.SetAttribute("Include", "`$(OutDir)\$ProjectName.dll") $FilesToSignRel.SetAttribute("Condition", "'`$(RealSign)' == 'True' and '`$(TargetExt)' == '.dll' and '`$(Configuration)' == 'RelWithDebInfo'") $AuthenticodeRel = $xml.CreateElement("Authenticode", "http://schemas.microsoft.com/developer/msbuild/2003") - $AuthenticodeRel.set_InnerXML("Microsoft") + $AuthenticodeRel.set_InnerXML("Microsoft400") $StrongNameRel = $xml.CreateElement("StrongName", "http://schemas.microsoft.com/developer/msbuild/2003") $StrongNameRel.set_InnerXML("StrongName") $FilesToSignRel.AppendChild($AuthenticodeRel) | Out-Null @@ -156,7 +156,7 @@ function Add-Signing { $FilesToSignDebug.SetAttribute("Include", "`$(OutDir)\$ProjectNameDebug.dll") $FilesToSignDebug.SetAttribute("Condition", "'`$(RealSign)' == 'True' and '`$(TargetExt)' == '.dll' and '`$(Configuration)' == 'Debug'") $AuthenticodeDebug = $xml.CreateElement("Authenticode", "http://schemas.microsoft.com/developer/msbuild/2003") - $AuthenticodeDebug.set_InnerXML("Microsoft") + $AuthenticodeDebug.set_InnerXML("Microsoft400") $StrongNameDebug = $xml.CreateElement("StrongName", "http://schemas.microsoft.com/developer/msbuild/2003") $StrongNameDebug.set_InnerXML("StrongName") $FilesToSignDebug.AppendChild($AuthenticodeDebug) | Out-Null diff --git a/GoogleTestNuGet/googletest.targets.tt b/GoogleTestNuGet/googletest.targets.tt index 232474fed..91fce8d18 100644 --- a/GoogleTestNuGet/googletest.targets.tt +++ b/GoogleTestNuGet/googletest.targets.tt @@ -34,8 +34,8 @@ <# } #> - - + + <# if (ConfigurationType == "dyn") { #> @@ -50,8 +50,8 @@ <# } #> - - + + <# if (ConfigurationType == "dyn") { #> From 1dc83ae1b26b3085c56408623d092d9d98afbe5d Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 13 Nov 2019 16:24:22 -0800 Subject: [PATCH 75/96] Bump nuget package by minor version (#169) * bump nuget package by minor version * update nuget package references for vsix --- GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj | 6 +++--- GoogleTestNuGet/googletest.nuspec.tt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index 1f21716fe..5958a887b 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -49,15 +49,15 @@ - + CopyIfNewer true - + CopyIfNewer true - + CopyIfNewer true diff --git a/GoogleTestNuGet/googletest.nuspec.tt b/GoogleTestNuGet/googletest.nuspec.tt index cb2d4ce47..d26d4b90d 100644 --- a/GoogleTestNuGet/googletest.nuspec.tt +++ b/GoogleTestNuGet/googletest.nuspec.tt @@ -5,7 +5,7 @@ <#= PackageName #> - 1.8.1 + 1.8.1.1 Microsoft microsoft,visualcpp https://github.com/Microsoft/TestAdapterForGoogleTest From d86835156b1294b09c2f92351b6cbca4d2674881 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Tue, 19 Nov 2019 10:04:46 -0800 Subject: [PATCH 76/96] Use different pdb names for static vs dyn libs and update all version refs to new version (#171) * update all versions to be consistent * special case targets for static debug pdb names --- .../GoogleTest.vstemplate | 2 +- .../Packaging.TAfGT/Packaging.TAfGT.csproj | 6 +++--- .../source.extension.vsixmanifest | 6 +++--- GoogleTestNuGet/googletest.nuspec.tt | 2 +- GoogleTestNuGet/googletest.targets.tt | 19 +++++++++++++------ 5 files changed, 21 insertions(+), 14 deletions(-) diff --git a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate index 470b68558..70121ee25 100644 --- a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate +++ b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate @@ -26,7 +26,7 @@ - + diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index 5958a887b..d72c49bea 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -49,15 +49,15 @@ - + CopyIfNewer true - + CopyIfNewer true - + CopyIfNewer true diff --git a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest index 82b8c6516..f7b9f2240 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest +++ b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest @@ -28,9 +28,9 @@ - - - + + + diff --git a/GoogleTestNuGet/googletest.nuspec.tt b/GoogleTestNuGet/googletest.nuspec.tt index d26d4b90d..a63f202bd 100644 --- a/GoogleTestNuGet/googletest.nuspec.tt +++ b/GoogleTestNuGet/googletest.nuspec.tt @@ -5,7 +5,7 @@ <#= PackageName #> - 1.8.1.1 + 1.8.1.2 Microsoft microsoft,visualcpp https://github.com/Microsoft/TestAdapterForGoogleTest diff --git a/GoogleTestNuGet/googletest.targets.tt b/GoogleTestNuGet/googletest.targets.tt index 91fce8d18..348ae95e4 100644 --- a/GoogleTestNuGet/googletest.targets.tt +++ b/GoogleTestNuGet/googletest.targets.tt @@ -33,9 +33,12 @@ <# if (ConfigurationType == "dyn") { #> + + + <# } else { #> + + <# } #> - - <# if (ConfigurationType == "dyn") { #> @@ -49,16 +52,20 @@ <# if (ConfigurationType == "dyn") { #> + + + <# } else { #> + + <# } #> - - <# if (ConfigurationType == "dyn") { #> + <# } else { #> + + <# } #> - - From 58707b674d4ab2cb6a4ec32abf0b5f0eda0f3b54 Mon Sep 17 00:00:00 2001 From: ncook-hxgn <36889813+ncook-hxgn@users.noreply.github.com> Date: Wed, 15 Jan 2020 19:57:21 +0000 Subject: [PATCH 77/96] Update GoogleTest.targets.tt to allow for nonstandard build configurations (#168) This is achieved with the assumption that what's not specifically debug, is release, interms of $(Configuration). --- GoogleTestNuGet/googletest.targets.tt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/GoogleTestNuGet/googletest.targets.tt b/GoogleTestNuGet/googletest.targets.tt index 348ae95e4..050fad661 100644 --- a/GoogleTestNuGet/googletest.targets.tt +++ b/GoogleTestNuGet/googletest.targets.tt @@ -18,12 +18,12 @@ $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Debug\gtestd.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Debug\gtest_maind.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Release\gtest.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Release\gtest_main.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Release\gtest.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Release\gtest_main.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Debug\gtestd.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Debug\gtest_maind.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Release\gtest.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Release\gtest_main.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Release\gtest.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Release\gtest_main.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)include;%(AdditionalIncludeDirectories) @@ -40,13 +40,13 @@ <# } #> - + <# if (ConfigurationType == "dyn") { #> <# } #> - - + + <# if (ConfigurationType == "dyn") { #> @@ -59,7 +59,7 @@ <# } #> - + <# if (ConfigurationType == "dyn") { #> From 55f3a710ddb9ae33be8c17a5f4ab6b81f9cbd520 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 15 Jan 2020 13:45:12 -0800 Subject: [PATCH 78/96] update googletest nuget package version (#173) --- .../GoogleTestProjectTemplate/GoogleTest.vstemplate | 2 +- GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj | 6 +++--- .../Packaging.TAfGT/source.extension.vsixmanifest | 6 +++--- GoogleTestNuGet/googletest.nuspec.tt | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate index 70121ee25..af99044e3 100644 --- a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate +++ b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate @@ -26,7 +26,7 @@ - + diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index d72c49bea..b185fa349 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -49,15 +49,15 @@ - + CopyIfNewer true - + CopyIfNewer true - + CopyIfNewer true diff --git a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest index f7b9f2240..d3ba192ad 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest +++ b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest @@ -28,9 +28,9 @@ - - - + + + diff --git a/GoogleTestNuGet/googletest.nuspec.tt b/GoogleTestNuGet/googletest.nuspec.tt index a63f202bd..dc54f301e 100644 --- a/GoogleTestNuGet/googletest.nuspec.tt +++ b/GoogleTestNuGet/googletest.nuspec.tt @@ -5,7 +5,7 @@ <#= PackageName #> - 1.8.1.2 + 1.8.1.3 Microsoft microsoft,visualcpp https://github.com/Microsoft/TestAdapterForGoogleTest From f3f71fa89783cd488f5f0dab1f1e2a4c4eaa4bd7 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 8 Apr 2020 11:06:30 -0700 Subject: [PATCH 79/96] Update import check to look for additional binaries (#175) * check for gtestd.dll import to fix discovery * check for gtest_main.dll and gtest_maind.dll as well --- GoogleTestAdapter/Core/GoogleTestConstants.cs | 5 ++++- GoogleTestAdapter/Core/GoogleTestDiscoverer.cs | 7 +++++-- GoogleTestAdapter/DiaResolver/PeParser.cs | 8 +++++--- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/GoogleTestAdapter/Core/GoogleTestConstants.cs b/GoogleTestAdapter/Core/GoogleTestConstants.cs index 312a0c276..9b5b42ff1 100644 --- a/GoogleTestAdapter/Core/GoogleTestConstants.cs +++ b/GoogleTestAdapter/Core/GoogleTestConstants.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 5/2018. +// This file has been modified by Microsoft on 4/2020. using System; @@ -32,6 +32,9 @@ public static class GoogleTestConstants public const string TypedTestMarker = ". # TypeParam = "; public const string GoogleTestDllMarker = "gtest.dll"; + public const string GoogleTestDllMarkerDebug = "gtestd.dll"; + public const string GoogleTestMainDllMarker = "gtest_main.dll"; + public const string GoogleTestMainDllMarkerDebug = "gtest_maind.dll"; public static readonly string[] GoogleTestExecutableMarkers = { diff --git a/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs b/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs index 398eb5149..3f9f24355 100644 --- a/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs +++ b/GoogleTestAdapter/Core/GoogleTestDiscoverer.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 9/2017. +// This file has been modified by Microsoft on 4/2020. using GoogleTestAdapter.Common; using GoogleTestAdapter.DiaResolver; @@ -104,7 +104,10 @@ public static bool IsGoogleTestExecutable(string executable, string customRegex, if (string.IsNullOrWhiteSpace(customRegex)) { - if (PeParser.FindImport(executable, GoogleTestConstants.GoogleTestDllMarker, StringComparison.OrdinalIgnoreCase, logger) + List gtestImports = new List() { GoogleTestConstants.GoogleTestDllMarker, GoogleTestConstants.GoogleTestDllMarkerDebug, + GoogleTestConstants.GoogleTestMainDllMarker, GoogleTestConstants.GoogleTestMainDllMarkerDebug }; + + if (PeParser.FindImport(executable, gtestImports, StringComparison.OrdinalIgnoreCase, logger) || Utils.BinaryFileContainsStrings(executable, Encoding.ASCII, GoogleTestConstants.GoogleTestExecutableMarkers)) { return true; diff --git a/GoogleTestAdapter/DiaResolver/PeParser.cs b/GoogleTestAdapter/DiaResolver/PeParser.cs index ac8256fa4..75988e3d9 100644 --- a/GoogleTestAdapter/DiaResolver/PeParser.cs +++ b/GoogleTestAdapter/DiaResolver/PeParser.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 11/2017. +// This file has been modified by Microsoft on 4/2020. using GoogleTestAdapter.Common; using Microsoft.Win32.SafeHandles; @@ -277,12 +277,14 @@ public static List ParseImports(string executable, ILogger logger) return imports; } - public static bool FindImport(string executable, string import, StringComparison comparisonType, ILogger logger) + public static bool FindImport(string executable, List imports, StringComparison comparisonType, ILogger logger) { var found = false; ProcessImports(executable, logger, (currentImport) => { - found = String.Compare(import, currentImport, comparisonType) == 0; + foreach (var import in imports) + found = found || String.Compare(import, currentImport, comparisonType) == 0; + return !found; // Continue only if not found yet. }); return found; From 3712f9152b5ee2f757f5a3b86f0cddc9d00094ee Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Fri, 17 Apr 2020 14:18:34 -0700 Subject: [PATCH 80/96] update working dir (#176) --- GoogleTestAdapter/Core/Settings/SettingsWrapper.cs | 6 +++++- GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs | 6 ++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs index 018aa8bad..9134762a5 100644 --- a/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs +++ b/GoogleTestAdapter/Core/Settings/SettingsWrapper.cs @@ -176,7 +176,11 @@ public string GetBatchForTestTeardown(string solutionDirectory, string testDirec => ReplacePlaceholders(BatchForTestTeardown, solutionDirectory, testDirectory, threadId); public string GetWorkingDir(string solutionDirectory, string testDirectory, int threadId) - => ReplacePlaceholders(WorkingDir, solutionDirectory, testDirectory, threadId); + { + return string.IsNullOrWhiteSpace(WorkingDir) + ? OptionWorkingDirDefaultValue + : ReplacePlaceholders(WorkingDir, solutionDirectory, testDirectory, threadId); + } private string ReplacePlaceholders(string theString, string solutionDirectory, string testDirectory, int threadId) diff --git a/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs b/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs index 34638102b..6edaa47d9 100644 --- a/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs +++ b/GoogleTestAdapter/Core/TestCases/TestCaseFactory.cs @@ -45,7 +45,8 @@ public IList CreateTestCases(Action reportTestCase = null) { var launcher = new ProcessLauncher(_logger, _settings.GetPathExtension(_executable), null); int processExitCode; - standardOutput = launcher.GetOutputOfCommand("", null, _executable, GoogleTestConstants.ListTestsOption, + string workingDir = new FileInfo(_executable).DirectoryName; + standardOutput = launcher.GetOutputOfCommand(workingDir, null, _executable, GoogleTestConstants.ListTestsOption, false, false, out processExitCode); if (!CheckProcessExitCode(processExitCode, standardOutput)) @@ -129,6 +130,7 @@ private IList NewCreateTestcases(Action reportTestCase, List try { + string workingDir = new FileInfo(_executable).DirectoryName; int processExitCode = ProcessExecutor.ExecutionFailed; ProcessExecutor executor = null; var listAndParseTestsTask = new Task(() => @@ -137,7 +139,7 @@ private IList NewCreateTestcases(Action reportTestCase, List processExitCode = executor.ExecuteCommandBlocking( _executable, GoogleTestConstants.ListTestsOption, - "", + workingDir, null, _settings.GetPathExtension(_executable), lineAction); From 4eef7188b0bcf37a434e5919423344086360e41b Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Tue, 30 Jun 2020 12:02:58 -0700 Subject: [PATCH 81/96] Rename GlobalRunSettings to not overlap with external GTA (#178) --- .../Helpers/RunSettingsServiceUnderTest.cs | 2 +- .../TestAdapter.Tests/Settings/RunSettingsServiceTests.cs | 4 ++-- .../TestAdapter/Settings/GlobalRunSettingsProvider.cs | 6 +++--- .../TestAdapter/Settings/IGlobalRunSettings.cs | 2 +- .../TestAdapter/Settings/IGlobalRunSettingsInternal.cs | 2 +- .../TestAdapter/Settings/RunSettingsService.cs | 4 ++-- .../VsPackage.GTA/GoogleTestExtensionOptionsPage.cs | 4 ++-- .../VsPackage.Shared/GoogleTestExtensionOptionsPage.cs | 2 +- .../VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs | 2 +- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/GoogleTestAdapter/TestAdapter.Tests/Helpers/RunSettingsServiceUnderTest.cs b/GoogleTestAdapter/TestAdapter.Tests/Helpers/RunSettingsServiceUnderTest.cs index 41821dbb1..275b77c19 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/Helpers/RunSettingsServiceUnderTest.cs +++ b/GoogleTestAdapter/TestAdapter.Tests/Helpers/RunSettingsServiceUnderTest.cs @@ -6,7 +6,7 @@ public class RunSettingsServiceUnderTest : RunSettingsService { private readonly string _solutionRunSettingsFile; - internal RunSettingsServiceUnderTest(IGlobalRunSettings globalRunSettings, string solutionRunSettingsFile) + internal RunSettingsServiceUnderTest(IGlobalRunSettings2 globalRunSettings, string solutionRunSettingsFile) : base(globalRunSettings) { _solutionRunSettingsFile = solutionRunSettingsFile; diff --git a/GoogleTestAdapter/TestAdapter.Tests/Settings/RunSettingsServiceTests.cs b/GoogleTestAdapter/TestAdapter.Tests/Settings/RunSettingsServiceTests.cs index 0f8f58067..773567c89 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/Settings/RunSettingsServiceTests.cs +++ b/GoogleTestAdapter/TestAdapter.Tests/Settings/RunSettingsServiceTests.cs @@ -305,7 +305,7 @@ private RunSettingsService SetupRunSettingsService(string solutionRunSettingsFil TraitsRegexesBefore = "Global" }; - var mockGlobalRunSettings = new Mock(); + var mockGlobalRunSettings = new Mock(); mockGlobalRunSettings.Setup(grs => grs.RunSettings).Returns(globalRunSettings); return new RunSettingsServiceUnderTest(mockGlobalRunSettings.Object, solutionRunSettingsFile); @@ -345,7 +345,7 @@ private RunSettingsContainer SetupFinalRunSettingsContainer( string userSolutionWorkingDir, string userProject1WorkingDir, string userProject3WorkingDir) { var globalSettings = new RunSettings { ProjectRegex = null, WorkingDir = GlobalWorkingDir }; - var mockGlobalRunSettings = new Mock(); + var mockGlobalRunSettings = new Mock(); mockGlobalRunSettings.Setup(grs => grs.RunSettings).Returns(globalSettings); var solutionSettingsContainer = SetupSettingsContainer(solutionSolutionWorkingDir, solutionProject1WorkingDir, solutionProject2WorkingDir, null); diff --git a/GoogleTestAdapter/TestAdapter/Settings/GlobalRunSettingsProvider.cs b/GoogleTestAdapter/TestAdapter/Settings/GlobalRunSettingsProvider.cs index cc1bf4e95..aa1b96216 100644 --- a/GoogleTestAdapter/TestAdapter/Settings/GlobalRunSettingsProvider.cs +++ b/GoogleTestAdapter/TestAdapter/Settings/GlobalRunSettingsProvider.cs @@ -4,9 +4,9 @@ namespace GoogleTestAdapter.TestAdapter.Settings { - [Export(typeof(IGlobalRunSettings))] - [Export(typeof(IGlobalRunSettingsInternal))] - public class GlobalRunSettingsProvider : IGlobalRunSettingsInternal + [Export(typeof(IGlobalRunSettings2))] + [Export(typeof(IGlobalRunSettingsInternal2))] + public class GlobalRunSettingsProvider : IGlobalRunSettingsInternal2 { public RunSettings RunSettings { get; set; } = new RunSettings(); } diff --git a/GoogleTestAdapter/TestAdapter/Settings/IGlobalRunSettings.cs b/GoogleTestAdapter/TestAdapter/Settings/IGlobalRunSettings.cs index 793442bda..b6f7fefff 100644 --- a/GoogleTestAdapter/TestAdapter/Settings/IGlobalRunSettings.cs +++ b/GoogleTestAdapter/TestAdapter/Settings/IGlobalRunSettings.cs @@ -3,7 +3,7 @@ namespace GoogleTestAdapter.TestAdapter.Settings { - public interface IGlobalRunSettings + public interface IGlobalRunSettings2 { RunSettings RunSettings { get; } } diff --git a/GoogleTestAdapter/TestAdapter/Settings/IGlobalRunSettingsInternal.cs b/GoogleTestAdapter/TestAdapter/Settings/IGlobalRunSettingsInternal.cs index 67b19f5c4..91ae7e5ff 100644 --- a/GoogleTestAdapter/TestAdapter/Settings/IGlobalRunSettingsInternal.cs +++ b/GoogleTestAdapter/TestAdapter/Settings/IGlobalRunSettingsInternal.cs @@ -3,7 +3,7 @@ namespace GoogleTestAdapter.TestAdapter.Settings { - public interface IGlobalRunSettingsInternal : IGlobalRunSettings + public interface IGlobalRunSettingsInternal2 : IGlobalRunSettings2 { new RunSettings RunSettings { get; set; } } diff --git a/GoogleTestAdapter/TestAdapter/Settings/RunSettingsService.cs b/GoogleTestAdapter/TestAdapter/Settings/RunSettingsService.cs index 871ed5679..7aae9a108 100644 --- a/GoogleTestAdapter/TestAdapter/Settings/RunSettingsService.cs +++ b/GoogleTestAdapter/TestAdapter/Settings/RunSettingsService.cs @@ -22,10 +22,10 @@ public class RunSettingsService : IRunSettingsService { public string Name => GoogleTestConstants.SettingsName; - private readonly IGlobalRunSettings _globalRunSettings; + private readonly IGlobalRunSettings2 _globalRunSettings; [ImportingConstructor] - public RunSettingsService([Import(typeof(IGlobalRunSettings))] IGlobalRunSettings globalRunSettings) + public RunSettingsService([Import(typeof(IGlobalRunSettings2))] IGlobalRunSettings2 globalRunSettings) { _globalRunSettings = globalRunSettings; } diff --git a/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs index faeff3bbc..af8f64e93 100644 --- a/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.GTA/GoogleTestExtensionOptionsPage.cs @@ -30,7 +30,7 @@ protected override void Initialize() if (!_isAsyncLoadSupported) { var componentModel = (IComponentModel)GetGlobalService(typeof(SComponentModel)); - _globalRunSettings = componentModel.GetService(); + _globalRunSettings = componentModel.GetService(); DoInitialize(); } } @@ -46,7 +46,7 @@ IVsTask IAsyncLoadablePackageInitialize.Initialize(IAsyncServiceProvider service return ThreadHelper.JoinableTaskFactory.RunAsync(async () => { var componentModel = await serviceProvider.GetServiceAsync(typeof(SComponentModel)); - _globalRunSettings = componentModel.GetService(); + _globalRunSettings = componentModel.GetService(); await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); diff --git a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs index 0b48ed17d..fd6c5967b 100644 --- a/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.Shared/GoogleTestExtensionOptionsPage.cs @@ -29,7 +29,7 @@ public sealed partial class GoogleTestExtensionOptionsPage : IGoogleTestExtensio { private readonly string _debuggingNamedPipeId = Guid.NewGuid().ToString(); - private IGlobalRunSettingsInternal _globalRunSettings; + private IGlobalRunSettingsInternal2 _globalRunSettings; private GeneralOptionsDialogPage _generalOptions; private ParallelizationOptionsDialogPage _parallelizationOptions; diff --git a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs index 4dccad96f..6c6207236 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs +++ b/GoogleTestAdapter/VsPackage.TAfGT/GoogleTestExtensionOptionsPage.cs @@ -27,7 +27,7 @@ protected override async System.Threading.Tasks.Task InitializeAsync(Cancellatio await base.InitializeAsync(cancellationToken, progress); var componentModel = await GetServiceAsync(typeof(SComponentModel)) as IComponentModel; - _globalRunSettings = componentModel.GetService(); + _globalRunSettings = componentModel.GetService(); await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); From 3bd150305c00716acc0ed81e026ac2aaa1995164 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Thu, 16 Jul 2020 11:28:53 -0700 Subject: [PATCH 82/96] update OpenCover nuget package (#179) --- GoogleTestAdapter/Core.Tests/packages.config | 2 +- GoogleTestAdapter/DiaResolver.Tests/packages.config | 2 +- GoogleTestAdapter/TestAdapter.Tests/packages.config.tt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/GoogleTestAdapter/Core.Tests/packages.config b/GoogleTestAdapter/Core.Tests/packages.config index f39d7135b..105f0dbc4 100644 --- a/GoogleTestAdapter/Core.Tests/packages.config +++ b/GoogleTestAdapter/Core.Tests/packages.config @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/GoogleTestAdapter/DiaResolver.Tests/packages.config b/GoogleTestAdapter/DiaResolver.Tests/packages.config index f4e3cbeef..351b72b0d 100644 --- a/GoogleTestAdapter/DiaResolver.Tests/packages.config +++ b/GoogleTestAdapter/DiaResolver.Tests/packages.config @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt b/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt index b2d03ed80..359d9adf7 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt +++ b/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt @@ -13,5 +13,5 @@ <# } #> - + \ No newline at end of file From 7acfec2b79f38dbd249fd6608262a2638089ed17 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Wed, 16 Sep 2020 17:38:05 -0700 Subject: [PATCH 83/96] add descriptions to resource files for localization (#182) --- .../Resources.Designer.cs | 27 +++++++++++++++++++ .../Common.Dynamic.TAfGT/Resources.resx | 9 +++++++ .../GoogleTestProjectTemplate/pch.cpp | 1 - .../GoogleTestProjectTemplate/pch.h | 1 - 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs index 2a3bb17dc..ee63b9032 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs @@ -60,6 +60,15 @@ internal Resources() { } } + /// + /// Looks up a localized string similar to Enables Visual Studio's testing tools with unit tests written for Google Test.. + /// + public static string ExtensionDescription { + get { + return ResourceManager.GetString("ExtensionDescription", resourceCulture); + } + } + /// /// Looks up a localized string similar to Test Adapter for Google Test. /// @@ -69,6 +78,24 @@ public static string ExtensionName { } } + /// + /// Looks up a localized string similar to A Google Test based unit test.. + /// + public static string NewItemDescription { + get { + return ResourceManager.GetString("NewItemDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Write C++ unit tests using Google Test. Includes a copy of the Google Test library for use.. + /// + public static string NewProjectDescrption { + get { + return ResourceManager.GetString("NewProjectDescrption", resourceCulture); + } + } + /// /// Looks up a localized string similar to Test Adapter for Google Test: Test discovery starting.... /// diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx index 28ecd4c11..7578cfa13 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx @@ -117,9 +117,18 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Enables Visual Studio's testing tools with unit tests written for Google Test. + Test Adapter for Google Test + + A Google Test based unit test. + + + Write C++ unit tests using Google Test. Includes a copy of the Google Test library for use. + Test Adapter for Google Test: Test discovery starting... diff --git a/GoogleTestAdapter/GoogleTestProjectTemplate/pch.cpp b/GoogleTestAdapter/GoogleTestProjectTemplate/pch.cpp index 97b544ec1..250fb2778 100644 --- a/GoogleTestAdapter/GoogleTestProjectTemplate/pch.cpp +++ b/GoogleTestAdapter/GoogleTestProjectTemplate/pch.cpp @@ -1,6 +1,5 @@ // // pch.cpp -// Include the standard header and generate the precompiled header. // #include "pch.h" diff --git a/GoogleTestAdapter/GoogleTestProjectTemplate/pch.h b/GoogleTestAdapter/GoogleTestProjectTemplate/pch.h index 29c81fffa..0572a70b0 100644 --- a/GoogleTestAdapter/GoogleTestProjectTemplate/pch.h +++ b/GoogleTestAdapter/GoogleTestProjectTemplate/pch.h @@ -1,6 +1,5 @@ // // pch.h -// Header for standard system include files. // #pragma once From 1e22a015d9c2f87ed399b4f2761945ca74d93bfc Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Tue, 22 Sep 2020 15:26:32 -0700 Subject: [PATCH 84/96] Move new strings to accessible resx (#183) --- .../Resources.Designer.cs | 18 --- .../Common.Dynamic.TAfGT/Resources.resx | 6 - .../GoogleTest.vstemplate | 4 +- .../GoogleTest.vstemplate | 4 +- .../Resources/VSPackage.Designer.cs | 145 ++++++++++++++++++ .../VsPackage.TAfGT/Resources/VSPackage.resx | 9 ++ .../VsPackage.TAfGT/VsPackage.TAfGT.csproj | 7 + 7 files changed, 165 insertions(+), 28 deletions(-) create mode 100644 GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.Designer.cs diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs index ee63b9032..42c4d4f59 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs @@ -78,24 +78,6 @@ public static string ExtensionName { } } - /// - /// Looks up a localized string similar to A Google Test based unit test.. - /// - public static string NewItemDescription { - get { - return ResourceManager.GetString("NewItemDescription", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Write C++ unit tests using Google Test. Includes a copy of the Google Test library for use.. - /// - public static string NewProjectDescrption { - get { - return ResourceManager.GetString("NewProjectDescrption", resourceCulture); - } - } - /// /// Looks up a localized string similar to Test Adapter for Google Test: Test discovery starting.... /// diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx index 7578cfa13..41de6cb29 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx @@ -123,12 +123,6 @@ Test Adapter for Google Test - - A Google Test based unit test. - - - Write C++ unit tests using Google Test. Includes a copy of the Google Test library for use. - Test Adapter for Google Test: Test discovery starting... diff --git a/GoogleTestAdapter/GoogleTestItemTemplate/GoogleTest.vstemplate b/GoogleTestAdapter/GoogleTestItemTemplate/GoogleTest.vstemplate index 91f42fcc7..f9bf7b474 100644 --- a/GoogleTestAdapter/GoogleTestItemTemplate/GoogleTest.vstemplate +++ b/GoogleTestAdapter/GoogleTestItemTemplate/GoogleTest.vstemplate @@ -1,7 +1,7 @@ - Google Test - A Google Test based unit test. + + VC Microsoft.VisualC.Item.GoogleTest 10 diff --git a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate index af99044e3..e1a5995e7 100644 --- a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate +++ b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate @@ -1,7 +1,7 @@ - Google Test - Write C++ unit tests using Google Test. Includes a copy of the Google Test library for use. + + VC Microsoft.VisualC.Project.GoogleTest 1000 diff --git a/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.Designer.cs b/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.Designer.cs new file mode 100644 index 000000000..4cc8797b2 --- /dev/null +++ b/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.Designer.cs @@ -0,0 +1,145 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace GoogleTestAdapter.VsPackage.TAfGT.Resources { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class VSPackage { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal VSPackage() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GoogleTestAdapter.VsPackage.TAfGT.Resources.VSPackage", typeof(VSPackage).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Test Adapter for Google Test. + /// + internal static string _110 { + get { + return ResourceManager.GetString("110", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enables Visual Studio's testing tools with unit tests written for Google Test. The use terms and Third Party Notices are available in the extension installation directory.. + /// + internal static string _112 { + get { + return ResourceManager.GetString("112", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A Google Test based unit test.. + /// + internal static string _113 { + get { + return ResourceManager.GetString("113", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Write C++ unit tests using Google Test. Includes a copy of the Google Test library for use.. + /// + internal static string _114 { + get { + return ResourceManager.GetString("114", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Google Test. + /// + internal static string _115 { + get { + return ResourceManager.GetString("115", resourceCulture); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon _400 { + get { + object obj = ResourceManager.GetObject("400", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// Looks up a localized string similar to General. + /// + internal static string _501 { + get { + return ResourceManager.GetString("501", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parallelization. + /// + internal static string _502 { + get { + return ResourceManager.GetString("502", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Google Test. + /// + internal static string _503 { + get { + return ResourceManager.GetString("503", resourceCulture); + } + } + } +} diff --git a/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx b/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx index d35349059..162150812 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx +++ b/GoogleTestAdapter/VsPackage.TAfGT/Resources/VSPackage.resx @@ -123,6 +123,15 @@ Enables Visual Studio's testing tools with unit tests written for Google Test. The use terms and Third Party Notices are available in the extension installation directory. + + A Google Test based unit test. + + + Write C++ unit tests using Google Test. Includes a copy of the Google Test library for use. + + + Google Test + ..\..\Resources\Icons\Icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj index 14561f081..28fe6af27 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj +++ b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj @@ -75,6 +75,11 @@ + + True + True + VSPackage.resx + @@ -92,6 +97,8 @@ true VSPackage Designer + ResXFileCodeGenerator + VSPackage.Designer.cs From 3d3a583a059a89d2a27c2957c6f0161e57187b8d Mon Sep 17 00:00:00 2001 From: Cristiano Suzuki Date: Mon, 19 Oct 2020 15:09:49 -0700 Subject: [PATCH 85/96] Delta translations (#184) Co-authored-by: Cristiano Suzuki --- .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../CHS/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../CHT/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../CSY/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../DEU/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../ESN/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../FRA/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../ITA/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../JPN/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../KOR/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../PLK/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../PTB/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../RUS/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ .../GoogleTestAdapter.Common.Dynamic.dll.lcl | 9 +++++++ .../TRK/GoogleTestAdapter.DiaResolver.dll.lcl | 9 +++++++ .../GoogleTestAdapter.VsPackage.TAfGT.dll.lcl | 27 +++++++++++++++++++ 39 files changed, 585 insertions(+) diff --git a/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl index b911ad45d..8707e7fe3 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl index c2552f85f..d35eff628 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 788623e32..65ab75ccb 100644 --- a/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/CHS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl index 80bb88f0f..272ed1121 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl index 453752a6e..c5ad77b65 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 79e7097a7..ece5d10f7 100644 --- a/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/CHT/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl index 2f794d6f5..e098b7395 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl index 6e81f78fd..9c302340d 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 23834d4c1..1fa3ce022 100644 --- a/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/CSY/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl index ab9d11df0..99ad368cf 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl index 1b4acf1ac..9fcb68242 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index f903febfa..782e0c961 100644 --- a/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/DEU/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl index edf7731a5..0d09cc101 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl index 68f538957..1be13cbc7 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 062b49ead..bad5e56bd 100644 --- a/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/ESN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl index ccb867877..4775b7a6f 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl index cf0ab7cc3..66399a851 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 3c0582d95..ec230ac01 100644 --- a/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/FRA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl index d52063ace..e5cec2ec7 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl index 67e62e519..faf6f545b 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 56090fa54..209263053 100644 --- a/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/ITA/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl index b24950c64..7e86cc4fd 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl index 09347ab71..c6a4da21b 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 39775af47..ff23c107c 100644 --- a/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/JPN/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl index 9bb58f5a5..d5dc2393f 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl index 207611307..7b9ba262f 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 3d092701a..2e9ee3d06 100644 --- a/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/KOR/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl index 89a536a80..477e5afa6 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl index 53f465d45..457cb292e 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index dfaf8f5d9..1d0c60e18 100644 --- a/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/PLK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl index db041b8e0..d0d04b0f1 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl index 3745b942b..86dc51556 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 14c4902fa..c72d3ea23 100644 --- a/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/PTB/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl index 7986709e2..821059732 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl index 43ae1774c..af649c92d 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index dee7554ab..087fb8cef 100644 --- a/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/RUS/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl index 51dccaae7..3c35da76e 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.Common.Dynamic.dll.lcl @@ -10,6 +10,15 @@ + + + + + + + + + diff --git a/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl index a60067f76..1e8d9b2e6 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.DiaResolver.dll.lcl @@ -28,6 +28,15 @@ + + + + + + + + + diff --git a/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl b/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl index 94b799f05..04d5a1e32 100644 --- a/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl +++ b/loc/lcl/TRK/GoogleTestAdapter.VsPackage.TAfGT.dll.lcl @@ -103,6 +103,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + From 9ba730b4783b37562a795f2cd6c34bd808fc8037 Mon Sep 17 00:00:00 2001 From: Tristan Labelle Date: Fri, 8 Jan 2021 15:52:21 -0800 Subject: [PATCH 86/96] Untemplatize rules xaml file --- GoogleTestNuGet/Build.ps1 | 8 ++--- ...sui.xml.tt => googletest.propertiesui.xml} | 7 ++--- .../googletest.propertiesui.xml.tt.proj | 13 -------- GoogleTestNuGet/googletest.targets.tt | 30 +++++++++---------- 4 files changed, 19 insertions(+), 39 deletions(-) rename GoogleTestNuGet/{googletest.propertiesui.xml.tt => googletest.propertiesui.xml} (55%) delete mode 100644 GoogleTestNuGet/googletest.propertiesui.xml.tt.proj diff --git a/GoogleTestNuGet/Build.ps1 b/GoogleTestNuGet/Build.ps1 index 66bc3bd6d..638a030d7 100644 --- a/GoogleTestNuGet/Build.ps1 +++ b/GoogleTestNuGet/Build.ps1 @@ -192,7 +192,7 @@ function Build-Binaries { Push-Location $Dir try { $CMakeArgs = @() - $CMakeArgs += "-G", "Visual Studio 15 2017" + $CMakeArgs += "-G", "`"Visual Studio 15 2017`"" $CMakeArgs += "-T", $BuildToolset $CMakeArgs += "-A", $Platform $CMakeArgs += "-D", "BUILD_SHARED_LIBS=$(Convert-BooleanToOnOff $DynamicLibraryLinkage)" @@ -247,11 +247,7 @@ function Build-NuGet { $TargetsTTArgs += "googletest.targets.tt.proj" Invoke-Executable msbuild $TargetsTTArgs - $PropertiesUITTArgs = @() - $PropertiesUITTArgs += "/p:PackageNameDashes=`"$PackageNameDashes`"" - $PropertiesUITTArgs += "/p:OutputFileName=`"$Dir\build\native\$PackageName.propertiesui.xml`"" - $PropertiesUITTArgs += "googletest.propertiesui.xml.tt.proj" - Invoke-Executable msbuild $PropertiesUITTArgs + Copy-Item -Path "googletest.propertiesui.xml" -Destination "$Dir\build\native\googletest.propertiesui.xml" Copy-Item -Recurse -Path "..\ThirdParty\googletest\googletest\include" -Destination "$Dir\build\native\include" diff --git a/GoogleTestNuGet/googletest.propertiesui.xml.tt b/GoogleTestNuGet/googletest.propertiesui.xml similarity index 55% rename from GoogleTestNuGet/googletest.propertiesui.xml.tt rename to GoogleTestNuGet/googletest.propertiesui.xml index 37c4500b6..395f43c0a 100644 --- a/GoogleTestNuGet/googletest.propertiesui.xml.tt +++ b/GoogleTestNuGet/googletest.propertiesui.xml @@ -1,16 +1,13 @@ -<#@ template language="c#" hostspecific="true" #> -<#@ output extension=".targets" #> -<#@ parameter type="System.String" name="PackageNameDashes" #> - + - + diff --git a/GoogleTestNuGet/googletest.propertiesui.xml.tt.proj b/GoogleTestNuGet/googletest.propertiesui.xml.tt.proj deleted file mode 100644 index 6084ae4aa..000000000 --- a/GoogleTestNuGet/googletest.propertiesui.xml.tt.proj +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - TextTemplatingFileGenerator - $(OutputFileName) - - - $(PackageNameDashes) - - - \ No newline at end of file diff --git a/GoogleTestNuGet/googletest.targets.tt b/GoogleTestNuGet/googletest.targets.tt index 050fad661..aa1d4a6a1 100644 --- a/GoogleTestNuGet/googletest.targets.tt +++ b/GoogleTestNuGet/googletest.targets.tt @@ -12,18 +12,18 @@ >true> - + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Debug\gtestd.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Debug\gtest_maind.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Debug\gtest_maind.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Release\gtest.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Release\gtest_main.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Release\gtest_main.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Debug\gtestd.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Debug\gtest_maind.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Debug\gtest_maind.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Release\gtest.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Release\gtest_main.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Release\gtest_main.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)include;%(AdditionalIncludeDirectories) @@ -32,40 +32,40 @@ <# if (ConfigurationType == "dyn") { #> - + - + <# } else { #> - + <# } #> <# if (ConfigurationType == "dyn") { #> - + <# } #> - + <# if (ConfigurationType == "dyn") { #> - + - + <# } else { #> - + <# } #> <# if (ConfigurationType == "dyn") { #> - + <# } else { #> - + <# } #> From 4d26aef5017fbbd83b6d5ed39d51869a01204b77 Mon Sep 17 00:00:00 2001 From: Tristan Labelle Date: Fri, 8 Jan 2021 17:24:02 -0800 Subject: [PATCH 87/96] PR feedback --- GoogleTestNuGet/Build.ps1 | 2 +- GoogleTestNuGet/googletest.propertiesui.xml | 4 +-- GoogleTestNuGet/googletest.targets.tt | 28 ++++++++++----------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/GoogleTestNuGet/Build.ps1 b/GoogleTestNuGet/Build.ps1 index 638a030d7..6fba22b85 100644 --- a/GoogleTestNuGet/Build.ps1 +++ b/GoogleTestNuGet/Build.ps1 @@ -192,7 +192,7 @@ function Build-Binaries { Push-Location $Dir try { $CMakeArgs = @() - $CMakeArgs += "-G", "`"Visual Studio 15 2017`"" + $CMakeArgs += "-G", "Visual Studio 15 2017" $CMakeArgs += "-T", $BuildToolset $CMakeArgs += "-A", $Platform $CMakeArgs += "-D", "BUILD_SHARED_LIBS=$(Convert-BooleanToOnOff $DynamicLibraryLinkage)" diff --git a/GoogleTestNuGet/googletest.propertiesui.xml b/GoogleTestNuGet/googletest.propertiesui.xml index 395f43c0a..830aa8316 100644 --- a/GoogleTestNuGet/googletest.propertiesui.xml +++ b/GoogleTestNuGet/googletest.propertiesui.xml @@ -1,13 +1,13 @@ - + - + diff --git a/GoogleTestNuGet/googletest.targets.tt b/GoogleTestNuGet/googletest.targets.tt index aa1d4a6a1..2fc019814 100644 --- a/GoogleTestNuGet/googletest.targets.tt +++ b/GoogleTestNuGet/googletest.targets.tt @@ -17,13 +17,13 @@ $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Debug\gtestd.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Debug\gtest_maind.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Debug\gtest_maind.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Release\gtest.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Release\gtest_main.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x64\Release\gtest_main.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Debug\gtestd.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Debug\gtest_maind.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Debug\gtest_maind.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Release\gtest.lib;%(AdditionalDependencies) - $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Release\gtest_main.lib;%(AdditionalDependencies) + $(MSBuildThisFileDirectory)..\..\\<#= PathToBinaries #>\x86\Release\gtest_main.lib;%(AdditionalDependencies) $(MSBuildThisFileDirectory)include;%(AdditionalIncludeDirectories) @@ -32,40 +32,40 @@ <# if (ConfigurationType == "dyn") { #> - + - + <# } else { #> - + <# } #> <# if (ConfigurationType == "dyn") { #> - + <# } #> - + <# if (ConfigurationType == "dyn") { #> - + - + <# } else { #> - + <# } #> <# if (ConfigurationType == "dyn") { #> - + <# } else { #> - + <# } #> From 66aeffce9385a9663d2c42a010822e6fe50bd379 Mon Sep 17 00:00:00 2001 From: Tristan Labelle Date: Wed, 27 Jan 2021 15:38:39 -0800 Subject: [PATCH 88/96] Fix nuget packages (#186) Fix nuget restore. Co-authored-by: Spencer Bloom --- .../Common.Dynamic.GTA/Common.Dynamic.GTA.csproj | 4 ++-- .../Common.Dynamic.TAfGT.csproj | 4 ++-- GoogleTestAdapter/Common/Common.csproj | 4 ++-- GoogleTestAdapter/Core/Core.csproj | 4 ++-- GoogleTestAdapter/DiaResolver/DiaResolver.csproj | 4 ++-- .../NewProjectWizard/NewProjectWizard.csproj | 8 ++++---- .../Packaging.GTA/Packaging.GTA.csproj | 4 ++-- .../Packaging.TAfGT/Packaging.TAfGT.csproj | 4 ++-- .../TestAdapter.Tests/TestAdapter.Tests.csproj | 8 ++++---- .../TestAdapter.Tests/packages.config.tt | 4 ++-- GoogleTestAdapter/TestAdapter/TestAdapter.csproj | 12 ++++++------ GoogleTestAdapter/TestAdapter/packages.config.tt | 4 ++-- .../VsPackage.GTA/VsPackage.GTA.csproj | 8 ++++---- GoogleTestAdapter/VsPackage.GTA/packages.config | 2 +- .../VsPackage.TAfGT/VsPackage.TAfGT.csproj | 14 +++++++------- GoogleTestAdapter/VsPackage.TAfGT/packages.config | 6 +++--- GoogleTestNuGet/Build.ps1 | 8 ++++---- GoogleTestNuGet/googletest.SignNuGet.proj | 4 ++-- NuGet.config | 2 +- ...tudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj | 4 ++-- swix/packages.config | 2 +- 21 files changed, 57 insertions(+), 57 deletions(-) diff --git a/GoogleTestAdapter/Common.Dynamic.GTA/Common.Dynamic.GTA.csproj b/GoogleTestAdapter/Common.Dynamic.GTA/Common.Dynamic.GTA.csproj index 042f88e2d..c6bb845f2 100644 --- a/GoogleTestAdapter/Common.Dynamic.GTA/Common.Dynamic.GTA.csproj +++ b/GoogleTestAdapter/Common.Dynamic.GTA/Common.Dynamic.GTA.csproj @@ -2,7 +2,7 @@ - + Debug AnyCPU @@ -63,7 +63,7 @@ - + if exist "$(SolutionDir)Keys\Key_Release.snk" ( echo Using Release key for signing assembly diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj b/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj index 165c44fd7..c9ee97eef 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Common.Dynamic.TAfGT.csproj @@ -2,7 +2,7 @@ - + Debug AnyCPU @@ -80,7 +80,7 @@ - + if exist "$(SolutionDir)Keys\Key_Release.snk" ( echo Using Release key for signing assembly diff --git a/GoogleTestAdapter/Common/Common.csproj b/GoogleTestAdapter/Common/Common.csproj index 8513c215d..7a147b77e 100644 --- a/GoogleTestAdapter/Common/Common.csproj +++ b/GoogleTestAdapter/Common/Common.csproj @@ -2,7 +2,7 @@ - + Debug AnyCPU @@ -63,7 +63,7 @@ - + if exist "$(SolutionDir)Keys\Key_Release.snk" ( echo Using Release key for signing assembly diff --git a/GoogleTestAdapter/Core/Core.csproj b/GoogleTestAdapter/Core/Core.csproj index 437ebf1c9..6b62aa9ca 100644 --- a/GoogleTestAdapter/Core/Core.csproj +++ b/GoogleTestAdapter/Core/Core.csproj @@ -2,7 +2,7 @@ - + Debug AnyCPU @@ -145,7 +145,7 @@ - + if exist "$(SolutionDir)Keys\Key_Release.snk" ( echo Using Release key for signing assembly diff --git a/GoogleTestAdapter/DiaResolver/DiaResolver.csproj b/GoogleTestAdapter/DiaResolver/DiaResolver.csproj index 0893300d3..6ee7c2275 100644 --- a/GoogleTestAdapter/DiaResolver/DiaResolver.csproj +++ b/GoogleTestAdapter/DiaResolver/DiaResolver.csproj @@ -2,7 +2,7 @@ - + Debug AnyCPU @@ -108,7 +108,7 @@ - + if exist "$(SolutionDir)Keys\Key_Release.snk" ( echo Using Release key for signing assembly diff --git a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj index c3f05a264..673d962db 100644 --- a/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj +++ b/GoogleTestAdapter/NewProjectWizard/NewProjectWizard.csproj @@ -1,7 +1,7 @@  - + Debug @@ -165,13 +165,13 @@ - + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + diff --git a/GoogleTestAdapter/Packaging.GTA/Packaging.GTA.csproj b/GoogleTestAdapter/Packaging.GTA/Packaging.GTA.csproj index 74cbe5529..7e099e968 100644 --- a/GoogleTestAdapter/Packaging.GTA/Packaging.GTA.csproj +++ b/GoogleTestAdapter/Packaging.GTA/Packaging.GTA.csproj @@ -2,7 +2,7 @@ - + 15.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) @@ -109,7 +109,7 @@ - + diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index b185fa349..07ddc7c66 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -2,7 +2,7 @@ - + 15.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) @@ -181,7 +181,7 @@ - + \ No newline at end of file diff --git a/GoogleTestAdapter/TestAdapter.Tests/TestAdapter.Tests.csproj b/GoogleTestAdapter/TestAdapter.Tests/TestAdapter.Tests.csproj index 32791190b..e84816874 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/TestAdapter.Tests.csproj +++ b/GoogleTestAdapter/TestAdapter.Tests/TestAdapter.Tests.csproj @@ -53,22 +53,22 @@ True - $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.1\lib\net46\Microsoft.TestPlatform.CoreUtilities.dll + $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.TestPlatform.CoreUtilities.dll $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.11.0.0\lib\net35\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll True - $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.1\lib\net46\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll + $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll True $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.11.0.61030\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll True - - $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.15.0.26510-d15rel\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll + + $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.11.0.61030\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll True diff --git a/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt b/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt index 359d9adf7..49677e154 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt +++ b/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt @@ -10,8 +10,8 @@ <# } else if (TestAdapterFlavor == "TAfGT") { #> - - + + <# } #> \ No newline at end of file diff --git a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj index b74f57aef..4a2be1911 100644 --- a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj +++ b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj @@ -2,7 +2,7 @@ - + Debug AnyCPU @@ -134,22 +134,22 @@ False - $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.1\lib\net46\Microsoft.TestPlatform.CoreUtilities.dll + $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.TestPlatform.CoreUtilities.dll $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.11.0.0\lib\net35\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll False - $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.1\lib\net46\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll + $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll False $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.11.0.61030\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll False - - $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.15.0.26510-d15rel\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll + + $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.11.0.61030\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll False @@ -256,7 +256,7 @@ - + if exist "$(SolutionDir)Keys\Key_Release.snk" ( echo Using Release key for signing assembly diff --git a/GoogleTestAdapter/TestAdapter/packages.config.tt b/GoogleTestAdapter/TestAdapter/packages.config.tt index 732cda6be..e0bb10aa1 100644 --- a/GoogleTestAdapter/TestAdapter/packages.config.tt +++ b/GoogleTestAdapter/TestAdapter/packages.config.tt @@ -30,7 +30,7 @@ <# } else if (TestAdapterFlavor == "TAfGT") { #> - - + + <# } #> \ No newline at end of file diff --git a/GoogleTestAdapter/VsPackage.GTA/VsPackage.GTA.csproj b/GoogleTestAdapter/VsPackage.GTA/VsPackage.GTA.csproj index f9b9c0288..3f6da46b6 100644 --- a/GoogleTestAdapter/VsPackage.GTA/VsPackage.GTA.csproj +++ b/GoogleTestAdapter/VsPackage.GTA/VsPackage.GTA.csproj @@ -1,7 +1,7 @@  - + 15.0 11.0 @@ -323,8 +323,8 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/GoogleTestAdapter/VsPackage.GTA/packages.config b/GoogleTestAdapter/VsPackage.GTA/packages.config index cb463d7a3..5cd1b84d5 100644 --- a/GoogleTestAdapter/VsPackage.GTA/packages.config +++ b/GoogleTestAdapter/VsPackage.GTA/packages.config @@ -1,7 +1,7 @@  - + diff --git a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj index 28fe6af27..af7f25e49 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj +++ b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj @@ -1,7 +1,7 @@  - + 15.0 11.0 @@ -183,14 +183,14 @@ False - $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.1\lib\net46\Microsoft.TestPlatform.CoreUtilities.dll + $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.TestPlatform.CoreUtilities.dll - $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.1\lib\net46\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll + $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll False - $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.15.0.26510-d15rel\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll + $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.11.0.61030\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll False @@ -284,10 +284,10 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + diff --git a/GoogleTestAdapter/VsPackage.TAfGT/packages.config b/GoogleTestAdapter/VsPackage.TAfGT/packages.config index 832b99531..f3a3af0ab 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/packages.config +++ b/GoogleTestAdapter/VsPackage.TAfGT/packages.config @@ -1,7 +1,7 @@  - - - + + + \ No newline at end of file diff --git a/GoogleTestNuGet/Build.ps1 b/GoogleTestNuGet/Build.ps1 index 6fba22b85..4b3afe173 100644 --- a/GoogleTestNuGet/Build.ps1 +++ b/GoogleTestNuGet/Build.ps1 @@ -129,8 +129,8 @@ function Add-Signing { $ProjectNameDebug = -join("$ProjectName", "d") $MicroBuildProps = $xml.CreateElement("Import", "http://schemas.microsoft.com/developer/msbuild/2003") - $MicroBuildProps.SetAttribute("Project", "$PSScriptRoot\..\NuGetPackages\MicroBuild.Core.0.2.0\build\MicroBuild.Core.props") - $MicroBuildProps.SetAttribute("Condition", "Exists('$PSScriptRoot\..\NuGetPackages\MicroBuild.Core.0.2.0\build\MicroBuild.Core.props')") + $MicroBuildProps.SetAttribute("Project", "$PSScriptRoot\..\NuGetPackages\Microsoft.VisualStudioEng.MicroBuild.Core.0.4.1\build\Microsoft.VisualStudioEng.MicroBuild.Core.props") + $MicroBuildProps.SetAttribute("Condition", "Exists('$PSScriptRoot\..\NuGetPackages\Microsoft.VisualStudioEng.MicroBuild.Core.0.4.1\build\Microsoft.VisualStudioEng.MicroBuild.Core.props')") $RealSignGroup = $xml.CreateElement("PropertyGroup", "http://schemas.microsoft.com/developer/msbuild/2003") $RealSignGroup.SetAttribute("Condition", "'`$(RealSign)' == 'True'") @@ -164,8 +164,8 @@ function Add-Signing { $FileSignGroup.AppendChild($FilesToSignDebug) | Out-Null $MicroBuildTargets = $xml.CreateElement("Import", "http://schemas.microsoft.com/developer/msbuild/2003") - $MicroBuildTargets.SetAttribute("Project", "$PSScriptRoot\..\NuGetPackages\MicroBuild.Core.0.2.0\build\MicroBuild.Core.targets") - $MicroBuildTargets.SetAttribute("Condition", "Exists('$PSScriptRoot\..\NuGetPackages\MicroBuild.Core.0.2.0\build\MicroBuild.Core.targets')") + $MicroBuildTargets.SetAttribute("Project", "$PSScriptRoot\..\NuGetPackages\Microsoft.VisualStudioEng.MicroBuild.Core.0.4.1\build\Microsoft.VisualStudioEng.MicroBuild.Core.targets") + $MicroBuildTargets.SetAttribute("Condition", "Exists('$PSScriptRoot\..\NuGetPackages\Microsoft.VisualStudioEng.MicroBuild.Core.0.4.1\build\Microsoft.VisualStudioEng.MicroBuild.Core.targets')") $xml.Project.AppendChild($MicroBuildProps) | Out-Null $xml.Project.AppendChild($RealSignGroup) | Out-Null diff --git a/GoogleTestNuGet/googletest.SignNuGet.proj b/GoogleTestNuGet/googletest.SignNuGet.proj index 10015327a..1ab92d0ea 100644 --- a/GoogleTestNuGet/googletest.SignNuGet.proj +++ b/GoogleTestNuGet/googletest.SignNuGet.proj @@ -1,7 +1,7 @@ - + {9C5FB75F-BE2A-4358-A2C8-E950EB2A027A} $(FlavoredTargetFrameworkVersion) @@ -20,5 +20,5 @@ - + \ No newline at end of file diff --git a/NuGet.config b/NuGet.config index 990da8be2..5d6912c2a 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + diff --git a/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj b/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj index 760f2c1b3..c7f5c654c 100644 --- a/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj +++ b/swix/core/Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest.vsmanproj @@ -11,11 +11,11 @@ - + - + \ No newline at end of file diff --git a/swix/packages.config b/swix/packages.config index 263143fe4..1654c4f41 100644 --- a/swix/packages.config +++ b/swix/packages.config @@ -1,5 +1,5 @@ - + \ No newline at end of file From 6ea4ad24bf1441df6f68bde9c037b78e0474b38e Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Thu, 28 Jan 2021 15:31:43 -0800 Subject: [PATCH 89/96] Draft: Apply upstream patch to remove TestWindow dependency (#187) * Apply upstream patch https://github.com/csoltenborn/GoogleTestAdapter/pull/222 * Fixes to make it work with TAfGT flavor and resource string management. Co-authored-by: Spencer Bloom --- .../Common.Dynamic.GTA/Resources.Designer.cs | 37 +++++++++++++++++++ .../Common.Dynamic.GTA/Resources.resx | 15 ++++++++ .../Resources.Designer.cs | 28 ++++++++++++++ .../Common.Dynamic.TAfGT/Resources.resx | 12 ++++++ GoogleTestAdapter/Common/Common.csproj | 2 +- .../{Resources.cs => CommonResources.cs} | 4 +- .../Core/Runners/SequentialTestRunner.cs | 2 +- .../TestAdapter.Tests.csproj | 10 ----- .../TestAdapter.Tests/packages.config.tt | 4 +- .../TestAdapter/TestAdapter.csproj | 9 ----- .../TestAdapter/TestDiscoverer.cs | 6 +-- GoogleTestAdapter/TestAdapter/TestExecutor.cs | 2 +- .../TestAdapter/packages.config.tt | 4 +- .../Helpers/RunSettingsServiceUnderTest.cs | 2 +- .../Settings/RunSettingsServiceTests.cs | 5 ++- .../VsPackage.GTA.Tests.Unit.csproj | 12 +++++- .../VsPackage.GTA.Tests.Unit/packages.config | 2 + .../VsPackage.GTA/VsPackage.GTA.csproj | 4 ++ .../Helpers/ActivityLogLogger.cs | 1 - .../Settings/RunSettingsService.cs | 8 ++-- .../VsPackage.Shared.projitems | 1 + .../VsPackage.TAfGT/VsPackage.TAfGT.csproj | 6 ++- 22 files changed, 133 insertions(+), 43 deletions(-) rename GoogleTestAdapter/Common/{Resources.cs => CommonResources.cs} (98%) rename GoogleTestAdapter/{TestAdapter.Tests => VsPackage.GTA.Tests.Unit}/Helpers/RunSettingsServiceUnderTest.cs (92%) rename GoogleTestAdapter/{TestAdapter.Tests => VsPackage.GTA.Tests.Unit}/Settings/RunSettingsServiceTests.cs (99%) rename GoogleTestAdapter/{TestAdapter => VsPackage.Shared}/Settings/RunSettingsService.cs (93%) diff --git a/GoogleTestAdapter/Common.Dynamic.GTA/Resources.Designer.cs b/GoogleTestAdapter/Common.Dynamic.GTA/Resources.Designer.cs index 624ae434c..40459c2fd 100644 --- a/GoogleTestAdapter/Common.Dynamic.GTA/Resources.Designer.cs +++ b/GoogleTestAdapter/Common.Dynamic.GTA/Resources.Designer.cs @@ -60,6 +60,16 @@ internal Resources() { } } + /// + /// Looks up a localized string similar to Solution test settings file could not be parsed, check file: {0} + ///Exception: {1}. + /// + public static string CantParseSettings { + get { + return ResourceManager.GetString("CantParseSettings", resourceCulture); + } + } + /// /// Looks up a localized string similar to Google Test Adapter. /// @@ -69,6 +79,33 @@ public static string ExtensionName { } } + /// + /// Looks up a localized string similar to RunSettingsDocument does not contain a RunSettings node! Canceling settings merging.... + /// + public static string RunSettingsMissingNode { + get { + return ResourceManager.GetString("RunSettingsMissingNode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Solution test settings file found at '{0}', but does not contain {1} node. + /// + public static string SolutionFoundButMissingNode { + get { + return ResourceManager.GetString("SolutionFoundButMissingNode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to . + /// + public static string String1 { + get { + return ResourceManager.GetString("String1", resourceCulture); + } + } + /// /// Looks up a localized string similar to Google Test Adapter: Test discovery starting.... /// diff --git a/GoogleTestAdapter/Common.Dynamic.GTA/Resources.resx b/GoogleTestAdapter/Common.Dynamic.GTA/Resources.resx index 049878359..772ef0b16 100644 --- a/GoogleTestAdapter/Common.Dynamic.GTA/Resources.resx +++ b/GoogleTestAdapter/Common.Dynamic.GTA/Resources.resx @@ -117,9 +117,24 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Solution test settings file could not be parsed, check file: {0} +Exception: {1} + Google Test Adapter + + RunSettingsDocument does not contain a RunSettings node! Canceling settings merging... + + + Solution test settings file found at '{0}', but does not contain {1} node + {0} represents the path to a solution test settings file. {1} represents the non-localized name of an XML node. + + + + {0} represents the path to a solution test settings file. {1} represents a textual summary of an exception, likely non-localized. + Google Test Adapter: Test discovery starting... diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs index 42c4d4f59..ff0a33157 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.Designer.cs @@ -60,6 +60,16 @@ internal Resources() { } } + /// + /// Looks up a localized string similar to Solution test settings file could not be parsed, check file: {0} + ///Exception: {1}. + /// + public static string CantParseSettings { + get { + return ResourceManager.GetString("CantParseSettings", resourceCulture); + } + } + /// /// Looks up a localized string similar to Enables Visual Studio's testing tools with unit tests written for Google Test.. /// @@ -78,6 +88,24 @@ public static string ExtensionName { } } + /// + /// Looks up a localized string similar to RunSettingsDocument does not contain a RunSettings node! Canceling settings merging.... + /// + public static string RunSettingsMissingNode { + get { + return ResourceManager.GetString("RunSettingsMissingNode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Solution test settings file found at '{0}', but does not contain {1} node. + /// + public static string SolutionFoundButMissingNode { + get { + return ResourceManager.GetString("SolutionFoundButMissingNode", resourceCulture); + } + } + /// /// Looks up a localized string similar to Test Adapter for Google Test: Test discovery starting.... /// diff --git a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx index 41de6cb29..279c91399 100644 --- a/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx +++ b/GoogleTestAdapter/Common.Dynamic.TAfGT/Resources.resx @@ -117,12 +117,24 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Solution test settings file could not be parsed, check file: {0} +Exception: {1} + {0} represents the path to a solution test settings file. {1} represents a textual summary of an exception, likely non-localized. + Enables Visual Studio's testing tools with unit tests written for Google Test. Test Adapter for Google Test + + RunSettingsDocument does not contain a RunSettings node! Canceling settings merging... + + + Solution test settings file found at '{0}', but does not contain {1} node + {0} represents the path to a solution test settings file. {1} represents the non-localized name of an XML node. + Test Adapter for Google Test: Test discovery starting... diff --git a/GoogleTestAdapter/Common/Common.csproj b/GoogleTestAdapter/Common/Common.csproj index 7a147b77e..c1836b820 100644 --- a/GoogleTestAdapter/Common/Common.csproj +++ b/GoogleTestAdapter/Common/Common.csproj @@ -57,7 +57,7 @@ - + diff --git a/GoogleTestAdapter/Common/Resources.cs b/GoogleTestAdapter/Common/CommonResources.cs similarity index 98% rename from GoogleTestAdapter/Common/Resources.cs rename to GoogleTestAdapter/Common/CommonResources.cs index bc07d0c01..913b44045 100644 --- a/GoogleTestAdapter/Common/Resources.cs +++ b/GoogleTestAdapter/Common/CommonResources.cs @@ -6,7 +6,7 @@ /// /// Based on the auto-generated resources file from Common.Dynamic /// - public class Resources + public class CommonResources { private static global::System.Resources.ResourceManager resourceMan; @@ -14,7 +14,7 @@ public class Resources private static global::System.Globalization.CultureInfo resourceCulture; [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() + internal CommonResources() { } diff --git a/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs b/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs index ecb429963..2150c248e 100644 --- a/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs +++ b/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs @@ -171,7 +171,7 @@ public static void LogExecutionError(ILogger logger, string executable, string w { logger.LogError(String.Format(Resources.RunExecutableError, threadName, executable, exception.Message)); logger.DebugError(String.Format(Resources.StackTrace, threadName, Environment.NewLine, exception.StackTrace)); - logger.LogError(String.Format(Common.Resources.TroubleShootingLink, threadName)); + logger.LogError(String.Format(CommonResources.TroubleShootingLink, threadName)); logger.LogError(String.Format(Resources.ExecuteSteps, threadName, workingDir, Environment.NewLine, executable, arguments)); } diff --git a/GoogleTestAdapter/TestAdapter.Tests/TestAdapter.Tests.csproj b/GoogleTestAdapter/TestAdapter.Tests/TestAdapter.Tests.csproj index e84816874..efb29a6f6 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/TestAdapter.Tests.csproj +++ b/GoogleTestAdapter/TestAdapter.Tests/TestAdapter.Tests.csproj @@ -63,14 +63,6 @@ $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll True - - $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.11.0.61030\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll - True - - - $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.11.0.61030\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll - True - $(NuGetPackages)Moq.4.5.30\lib\net45\Moq.dll True @@ -95,7 +87,6 @@ - @@ -108,7 +99,6 @@ - diff --git a/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt b/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt index 49677e154..821f7c294 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt +++ b/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt @@ -8,10 +8,8 @@ <# if (TestAdapterFlavor == "GTA") { #> - <# } else if (TestAdapterFlavor == "TAfGT") { #> - <# } #> - \ No newline at end of file + diff --git a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj index 4a2be1911..e4e2769e7 100644 --- a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj +++ b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj @@ -144,14 +144,6 @@ $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll False - - $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.11.0.61030\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll - False - - - $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.11.0.61030\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll - False - $(NuGetPackages)VSSDK.TextManager.Interop.7.0.4\lib\net20\Microsoft.VisualStudio.TextManager.Interop.dll True @@ -212,7 +204,6 @@ - diff --git a/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs b/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs index e7dd5bfb0..4dfef1789 100644 --- a/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs +++ b/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs @@ -46,7 +46,7 @@ public void DiscoverTests(IEnumerable executables, IDiscoveryContext dis return; CommonFunctions.LogVisualStudioVersion(_logger); - _logger.LogInfo(Common.Resources.TestDiscoveryStarting); + _logger.LogInfo(CommonResources.TestDiscoveryStarting); _logger.DebugInfo(String.Format(Resources.Settings, _settings)); try @@ -71,10 +71,10 @@ private bool IsSupportedVisualStudioVersion() switch (version) { case VsVersion.Unknown: - _logger.LogWarning(String.Format(Resources.IdentifyVSError, Common.Resources.ExtensionName)); + _logger.LogWarning(String.Format(Resources.IdentifyVSError, CommonResources.ExtensionName)); return true; case VsVersion.VS2012: - _logger.LogError(String.Format(Resources.VS2012Error, Common.Resources.ExtensionName)); + _logger.LogError(String.Format(Resources.VS2012Error, CommonResources.ExtensionName)); return false; default: return true; diff --git a/GoogleTestAdapter/TestAdapter/TestExecutor.cs b/GoogleTestAdapter/TestAdapter/TestExecutor.cs index dec15155e..e214cd8d8 100644 --- a/GoogleTestAdapter/TestAdapter/TestExecutor.cs +++ b/GoogleTestAdapter/TestAdapter/TestExecutor.cs @@ -133,7 +133,7 @@ private Stopwatch StartStopWatchAndInitEnvironment(IRunContext runContext, IFram CommonFunctions.LogVisualStudioVersion(_logger); - _logger.LogInfo(Common.Resources.TestExecutionStarting); + _logger.LogInfo(CommonResources.TestExecutionStarting); _logger.DebugInfo(String.Format(Resources.Settings, _settings)); return stopwatch; diff --git a/GoogleTestAdapter/TestAdapter/packages.config.tt b/GoogleTestAdapter/TestAdapter/packages.config.tt index e0bb10aa1..b42060716 100644 --- a/GoogleTestAdapter/TestAdapter/packages.config.tt +++ b/GoogleTestAdapter/TestAdapter/packages.config.tt @@ -5,7 +5,6 @@ <# if (TestAdapterFlavor == "GTA") { #> - @@ -31,6 +30,5 @@ <# } else if (TestAdapterFlavor == "TAfGT") { #> - <# } #> - \ No newline at end of file + diff --git a/GoogleTestAdapter/TestAdapter.Tests/Helpers/RunSettingsServiceUnderTest.cs b/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/Helpers/RunSettingsServiceUnderTest.cs similarity index 92% rename from GoogleTestAdapter/TestAdapter.Tests/Helpers/RunSettingsServiceUnderTest.cs rename to GoogleTestAdapter/VsPackage.GTA.Tests.Unit/Helpers/RunSettingsServiceUnderTest.cs index 275b77c19..bff7c3c5a 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/Helpers/RunSettingsServiceUnderTest.cs +++ b/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/Helpers/RunSettingsServiceUnderTest.cs @@ -1,6 +1,6 @@ using GoogleTestAdapter.TestAdapter.Settings; -namespace GoogleTestAdapter.TestAdapter.Helpers +namespace GoogleTestAdapter.VsPackage.Helpers { public class RunSettingsServiceUnderTest : RunSettingsService { diff --git a/GoogleTestAdapter/TestAdapter.Tests/Settings/RunSettingsServiceTests.cs b/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/Settings/RunSettingsServiceTests.cs similarity index 99% rename from GoogleTestAdapter/TestAdapter.Tests/Settings/RunSettingsServiceTests.cs rename to GoogleTestAdapter/VsPackage.GTA.Tests.Unit/Settings/RunSettingsServiceTests.cs index 773567c89..66acfbc1e 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/Settings/RunSettingsServiceTests.cs +++ b/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/Settings/RunSettingsServiceTests.cs @@ -7,8 +7,9 @@ using System.Xml.XPath; using FluentAssertions; using GoogleTestAdapter.Settings; -using GoogleTestAdapter.TestAdapter.Helpers; +using GoogleTestAdapter.TestAdapter.Settings; using GoogleTestAdapter.Tests.Common; +using GoogleTestAdapter.VsPackage.Helpers; using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestWindow.Extensibility; @@ -16,7 +17,7 @@ using static GoogleTestAdapter.Tests.Common.TestMetadata.TestCategories; // ReSharper disable PossibleNullReferenceException -namespace GoogleTestAdapter.TestAdapter.Settings +namespace GoogleTestAdapter.VsPackage.Settings { [TestClass] diff --git a/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/VsPackage.GTA.Tests.Unit.csproj b/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/VsPackage.GTA.Tests.Unit.csproj index 2b3a43e10..6cc7f139d 100644 --- a/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/VsPackage.GTA.Tests.Unit.csproj +++ b/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/VsPackage.GTA.Tests.Unit.csproj @@ -53,6 +53,12 @@ True + + $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.11.0.0\lib\net35\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll + + + $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.11.0.61030\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll + $(NuGetPackages)Moq.4.5.30\lib\net45\Moq.dll @@ -76,9 +82,11 @@ + + @@ -105,7 +113,9 @@ - + + Designer + diff --git a/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/packages.config b/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/packages.config index fe8e4fd7c..0c2db86b4 100644 --- a/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/packages.config +++ b/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/packages.config @@ -2,5 +2,7 @@ + + \ No newline at end of file diff --git a/GoogleTestAdapter/VsPackage.GTA/VsPackage.GTA.csproj b/GoogleTestAdapter/VsPackage.GTA/VsPackage.GTA.csproj index 3f6da46b6..4f32cefeb 100644 --- a/GoogleTestAdapter/VsPackage.GTA/VsPackage.GTA.csproj +++ b/GoogleTestAdapter/VsPackage.GTA/VsPackage.GTA.csproj @@ -279,6 +279,10 @@ + + {17f4b73f-e4d3-4e40-98fc-788b1d0f8225} + Common.Dynamic.GTA + {bc05d210-68cd-47d0-ae8c-0f3168d1be73} Common diff --git a/GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs b/GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs index a40c39076..35a44d683 100644 --- a/GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs +++ b/GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs @@ -2,7 +2,6 @@ using System; using GoogleTestAdapter.Common; -using GoogleTestAdapter.Settings; using Microsoft.VisualStudio.Shell.Interop; namespace GoogleTestAdapter.VsPackage.Helpers diff --git a/GoogleTestAdapter/TestAdapter/Settings/RunSettingsService.cs b/GoogleTestAdapter/VsPackage.Shared/Settings/RunSettingsService.cs similarity index 93% rename from GoogleTestAdapter/TestAdapter/Settings/RunSettingsService.cs rename to GoogleTestAdapter/VsPackage.Shared/Settings/RunSettingsService.cs index 7aae9a108..7dea8596a 100644 --- a/GoogleTestAdapter/TestAdapter/Settings/RunSettingsService.cs +++ b/GoogleTestAdapter/VsPackage.Shared/Settings/RunSettingsService.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 9/2017. +// This file has been modified by Microsoft on 1/2021. using EnvDTE; using GoogleTestAdapter.Settings; @@ -37,7 +37,7 @@ public IXPathNavigable AddRunSettings(IXPathNavigable runSettingDocument, Debug.Assert(runSettingsNavigator != null, "userRunSettingsNavigator == null!"); if (!runSettingsNavigator.MoveToChild(Constants.RunSettingsName, "")) { - logger.Log(MessageLevel.Warning, Resources.RunSettingsMissingNode); + logger.Log(MessageLevel.Warning, Common.Resources.RunSettingsMissingNode); return runSettingsNavigator; } @@ -72,7 +72,7 @@ public IXPathNavigable AddRunSettings(IXPathNavigable runSettingDocument, } else { - logger.Log(MessageLevel.Warning, string.Format(Resources.SolutionFoundButMissingNode, solutionRunSettingsFile, Constants.RunSettingsName)); + logger.Log(MessageLevel.Warning, string.Format(Common.Resources.SolutionFoundButMissingNode, solutionRunSettingsFile, Constants.RunSettingsName)); } } } @@ -80,7 +80,7 @@ public IXPathNavigable AddRunSettings(IXPathNavigable runSettingDocument, catch (Exception e) { logger.Log(MessageLevel.Warning, - string.Format(Resources.CantParseSettings, solutionRunSettingsFile, e)); + string.Format(Common.Resources.CantParseSettings, solutionRunSettingsFile, e)); } foreach (var projectSettings in settingsContainer.ProjectSettings) diff --git a/GoogleTestAdapter/VsPackage.Shared/VsPackage.Shared.projitems b/GoogleTestAdapter/VsPackage.Shared/VsPackage.Shared.projitems index ba789921c..2a0bbae4f 100644 --- a/GoogleTestAdapter/VsPackage.Shared/VsPackage.Shared.projitems +++ b/GoogleTestAdapter/VsPackage.Shared/VsPackage.Shared.projitems @@ -34,6 +34,7 @@ Component + diff --git a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj index af7f25e49..bf7396a67 100644 --- a/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj +++ b/GoogleTestAdapter/VsPackage.TAfGT/VsPackage.TAfGT.csproj @@ -189,7 +189,7 @@ $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll False - + $(NuGetPackages)Microsoft.VisualStudio.TestWindow.Interfaces.11.0.61030\lib\net45\Microsoft.VisualStudio.TestWindow.Interfaces.dll False @@ -237,6 +237,10 @@ + + {9041bded-fa1b-4c17-b7ea-7b750c470c23} + Common.Dynamic.TAfGT + {bc05d210-68cd-47d0-ae8c-0f3168d1be73} Common From 0b699a8ba48657769747e7bedc8cd3119462518b Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Thu, 28 Jan 2021 17:46:57 -0800 Subject: [PATCH 90/96] update modified by microsoft comments (#188) --- GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs | 2 +- GoogleTestAdapter/TestAdapter/TestDiscoverer.cs | 2 +- GoogleTestAdapter/TestAdapter/TestExecutor.cs | 2 +- .../Settings/RunSettingsServiceTests.cs | 2 +- GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs b/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs index 2150c248e..d2a5278ab 100644 --- a/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs +++ b/GoogleTestAdapter/Core/Runners/SequentialTestRunner.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 5/2018. +// This file has been modified by Microsoft on 1/2021. using System; using System.Collections.Generic; diff --git a/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs b/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs index 4dfef1789..a59acb311 100644 --- a/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs +++ b/GoogleTestAdapter/TestAdapter/TestDiscoverer.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 8/2017. +// This file has been modified by Microsoft on 1/2021. using System; using System.Collections.Generic; diff --git a/GoogleTestAdapter/TestAdapter/TestExecutor.cs b/GoogleTestAdapter/TestAdapter/TestExecutor.cs index e214cd8d8..c93540ca3 100644 --- a/GoogleTestAdapter/TestAdapter/TestExecutor.cs +++ b/GoogleTestAdapter/TestAdapter/TestExecutor.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 5/2018. +// This file has been modified by Microsoft on 1/2021. using System; using System.Linq; diff --git a/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/Settings/RunSettingsServiceTests.cs b/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/Settings/RunSettingsServiceTests.cs index 66acfbc1e..473ab45cd 100644 --- a/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/Settings/RunSettingsServiceTests.cs +++ b/GoogleTestAdapter/VsPackage.GTA.Tests.Unit/Settings/RunSettingsServiceTests.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 7/2017. +// This file has been modified by Microsoft on 1/2021. using System; using System.Collections.Generic; diff --git a/GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs b/GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs index 35a44d683..608c7d83f 100644 --- a/GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs +++ b/GoogleTestAdapter/VsPackage.Shared/Helpers/ActivityLogLogger.cs @@ -1,4 +1,4 @@ -// This file has been modified by Microsoft on 7/2017. +// This file has been modified by Microsoft on 1/2021. using System; using GoogleTestAdapter.Common; From bad59b1f1926443931760b859b4766660e5d5c4f Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Thu, 11 Mar 2021 16:33:04 -0800 Subject: [PATCH 91/96] fix reference packageID in the templates (#189) --- .../GoogleTestItemTemplate/GoogleTest.vstemplate | 4 ++-- .../GoogleTestProjectTemplate/GoogleTest.vstemplate | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/GoogleTestAdapter/GoogleTestItemTemplate/GoogleTest.vstemplate b/GoogleTestAdapter/GoogleTestItemTemplate/GoogleTest.vstemplate index f9bf7b474..3db883972 100644 --- a/GoogleTestAdapter/GoogleTestItemTemplate/GoogleTest.vstemplate +++ b/GoogleTestAdapter/GoogleTestItemTemplate/GoogleTest.vstemplate @@ -1,7 +1,7 @@ - - + + VC Microsoft.VisualC.Item.GoogleTest 10 diff --git a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate index e1a5995e7..be4f30ab6 100644 --- a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate +++ b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate @@ -1,7 +1,7 @@ - - + + VC Microsoft.VisualC.Project.GoogleTest 1000 From 804b901a7ecc9a9a51cd5dcbd0ded421d26e2bea Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Tue, 6 Apr 2021 12:43:06 -0700 Subject: [PATCH 92/96] Fix debugging from test explorer & don't attach to testhost.exe (#190) * update TestPlatform.ObjectModel reference * fix build by not trying to deploy * implement ITestExecutor2 to not attach to testhost.exe * add vspackage as mef component to vsixmanifest since we moved one of the testwindow exports there --- .../Packaging.TAfGT/Packaging.TAfGT.csproj | 2 +- .../Packaging.TAfGT/source.extension.vsixmanifest | 1 + .../TestAdapter.Tests/TestAdapter.Tests.csproj | 8 ++++---- .../TestAdapter.Tests/packages.config.tt | 2 +- GoogleTestAdapter/TestAdapter/TestAdapter.csproj | 8 ++++---- GoogleTestAdapter/TestAdapter/TestExecutor.cs | 13 ++++++++++++- GoogleTestAdapter/TestAdapter/packages.config.tt | 2 +- 7 files changed, 24 insertions(+), 12 deletions(-) diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index 07ddc7c66..945072566 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -25,7 +25,7 @@ true true true - false + false true diff --git a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest index d3ba192ad..266e6a3a7 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest +++ b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest @@ -33,6 +33,7 @@ + diff --git a/GoogleTestAdapter/TestAdapter.Tests/TestAdapter.Tests.csproj b/GoogleTestAdapter/TestAdapter.Tests/TestAdapter.Tests.csproj index efb29a6f6..8b7e6bd36 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/TestAdapter.Tests.csproj +++ b/GoogleTestAdapter/TestAdapter.Tests/TestAdapter.Tests.csproj @@ -52,15 +52,15 @@ $(NuGetPackages)FluentAssertions.4.19.0\lib\net45\FluentAssertions.Core.dll True - - $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.TestPlatform.CoreUtilities.dll + + $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.16.10.0-release-20210330-02\lib\net45\Microsoft.TestPlatform.CoreUtilities.dll $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.11.0.0\lib\net35\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll True - - $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll + + $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.16.10.0-release-20210330-02\lib\net45\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll True diff --git a/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt b/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt index 821f7c294..c62074d10 100644 --- a/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt +++ b/GoogleTestAdapter/TestAdapter.Tests/packages.config.tt @@ -9,7 +9,7 @@ <# if (TestAdapterFlavor == "GTA") { #> <# } else if (TestAdapterFlavor == "TAfGT") { #> - + <# } #> diff --git a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj index e4e2769e7..a6bbefdab 100644 --- a/GoogleTestAdapter/TestAdapter/TestAdapter.csproj +++ b/GoogleTestAdapter/TestAdapter/TestAdapter.csproj @@ -133,15 +133,15 @@ True False - - $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.TestPlatform.CoreUtilities.dll + + $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.16.10.0-release-20210330-02\lib\net45\Microsoft.TestPlatform.CoreUtilities.dll $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.11.0.0\lib\net35\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll False - - $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.15.0.0\lib\net46\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll + + $(NuGetPackages)Microsoft.TestPlatform.ObjectModel.16.10.0-release-20210330-02\lib\net45\Microsoft.VisualStudio.TestPlatform.ObjectModel.dll False diff --git a/GoogleTestAdapter/TestAdapter/TestExecutor.cs b/GoogleTestAdapter/TestAdapter/TestExecutor.cs index c93540ca3..a14e7e495 100644 --- a/GoogleTestAdapter/TestAdapter/TestExecutor.cs +++ b/GoogleTestAdapter/TestAdapter/TestExecutor.cs @@ -20,7 +20,7 @@ namespace GoogleTestAdapter.TestAdapter { [ExtensionUri(ExecutorUriString)] - public partial class TestExecutor : ITestExecutor + public partial class TestExecutor : ITestExecutor2 { public static readonly Uri ExecutorUri = new Uri(ExecutorUriString); @@ -234,6 +234,17 @@ private void DoRunTests(ICollection testCasesToRun, IRunContext runCon reporter.AllTestsFinished(); } + public bool ShouldAttachToTestHost(IEnumerable sources, IRunContext runContext) + { + // TODO: expose setting in runContext to attach to testhost if needed? + return false; + } + + public bool ShouldAttachToTestHost(IEnumerable tests, IRunContext runContext) + { + // TODO: expose setting in runContext to attach to testhost if needed? + return false; + } } } \ No newline at end of file diff --git a/GoogleTestAdapter/TestAdapter/packages.config.tt b/GoogleTestAdapter/TestAdapter/packages.config.tt index b42060716..6778031ab 100644 --- a/GoogleTestAdapter/TestAdapter/packages.config.tt +++ b/GoogleTestAdapter/TestAdapter/packages.config.tt @@ -29,6 +29,6 @@ <# } else if (TestAdapterFlavor == "TAfGT") { #> - + <# } #> From 5126f835bc6e390ef57454d978b465c30f2f38aa Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Thu, 22 Apr 2021 15:06:33 -0700 Subject: [PATCH 93/96] Localize the setting coming from the Google Test NuGet package (#191) Update the nuget package, bump the version, add the new references to the updated version. --- .../GoogleTest.vstemplate | 2 +- .../Packaging.TAfGT/Packaging.TAfGT.csproj | 6 +++--- .../source.extension.vsixmanifest | 6 +++--- GoogleTestNuGet/1029/googletest.propertiesui.xml | 16 ++++++++++++++++ GoogleTestNuGet/1031/googletest.propertiesui.xml | 16 ++++++++++++++++ .../{ => 1033}/googletest.propertiesui.xml | 0 GoogleTestNuGet/1034/googletest.propertiesui.xml | 16 ++++++++++++++++ GoogleTestNuGet/1036/googletest.propertiesui.xml | 16 ++++++++++++++++ GoogleTestNuGet/1040/googletest.propertiesui.xml | 16 ++++++++++++++++ GoogleTestNuGet/1041/googletest.propertiesui.xml | 16 ++++++++++++++++ GoogleTestNuGet/1042/googletest.propertiesui.xml | 16 ++++++++++++++++ GoogleTestNuGet/1045/googletest.propertiesui.xml | 16 ++++++++++++++++ GoogleTestNuGet/1046/googletest.propertiesui.xml | 16 ++++++++++++++++ GoogleTestNuGet/1049/googletest.propertiesui.xml | 16 ++++++++++++++++ GoogleTestNuGet/1055/googletest.propertiesui.xml | 16 ++++++++++++++++ .../31748/googletest.propertiesui.xml | 16 ++++++++++++++++ GoogleTestNuGet/4/googletest.propertiesui.xml | 16 ++++++++++++++++ GoogleTestNuGet/Build.ps1 | 16 +++++++++++++++- GoogleTestNuGet/googletest.nuspec.tt | 2 +- GoogleTestNuGet/googletest.targets.tt | 2 +- 20 files changed, 232 insertions(+), 10 deletions(-) create mode 100644 GoogleTestNuGet/1029/googletest.propertiesui.xml create mode 100644 GoogleTestNuGet/1031/googletest.propertiesui.xml rename GoogleTestNuGet/{ => 1033}/googletest.propertiesui.xml (100%) create mode 100644 GoogleTestNuGet/1034/googletest.propertiesui.xml create mode 100644 GoogleTestNuGet/1036/googletest.propertiesui.xml create mode 100644 GoogleTestNuGet/1040/googletest.propertiesui.xml create mode 100644 GoogleTestNuGet/1041/googletest.propertiesui.xml create mode 100644 GoogleTestNuGet/1042/googletest.propertiesui.xml create mode 100644 GoogleTestNuGet/1045/googletest.propertiesui.xml create mode 100644 GoogleTestNuGet/1046/googletest.propertiesui.xml create mode 100644 GoogleTestNuGet/1049/googletest.propertiesui.xml create mode 100644 GoogleTestNuGet/1055/googletest.propertiesui.xml create mode 100644 GoogleTestNuGet/31748/googletest.propertiesui.xml create mode 100644 GoogleTestNuGet/4/googletest.propertiesui.xml diff --git a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate index be4f30ab6..2ae418988 100644 --- a/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate +++ b/GoogleTestAdapter/GoogleTestProjectTemplate/GoogleTest.vstemplate @@ -26,7 +26,7 @@ - + diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index 945072566..fb24efc11 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -49,15 +49,15 @@ - + CopyIfNewer true - + CopyIfNewer true - + CopyIfNewer true diff --git a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest index 266e6a3a7..bf389d22e 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest +++ b/GoogleTestAdapter/Packaging.TAfGT/source.extension.vsixmanifest @@ -28,9 +28,9 @@ - - - + + + diff --git a/GoogleTestNuGet/1029/googletest.propertiesui.xml b/GoogleTestNuGet/1029/googletest.propertiesui.xml new file mode 100644 index 000000000..98aec3923 --- /dev/null +++ b/GoogleTestNuGet/1029/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/1031/googletest.propertiesui.xml b/GoogleTestNuGet/1031/googletest.propertiesui.xml new file mode 100644 index 000000000..9edb0579e --- /dev/null +++ b/GoogleTestNuGet/1031/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/googletest.propertiesui.xml b/GoogleTestNuGet/1033/googletest.propertiesui.xml similarity index 100% rename from GoogleTestNuGet/googletest.propertiesui.xml rename to GoogleTestNuGet/1033/googletest.propertiesui.xml diff --git a/GoogleTestNuGet/1034/googletest.propertiesui.xml b/GoogleTestNuGet/1034/googletest.propertiesui.xml new file mode 100644 index 000000000..c506d0401 --- /dev/null +++ b/GoogleTestNuGet/1034/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/1036/googletest.propertiesui.xml b/GoogleTestNuGet/1036/googletest.propertiesui.xml new file mode 100644 index 000000000..a21c05685 --- /dev/null +++ b/GoogleTestNuGet/1036/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/1040/googletest.propertiesui.xml b/GoogleTestNuGet/1040/googletest.propertiesui.xml new file mode 100644 index 000000000..19a3fd521 --- /dev/null +++ b/GoogleTestNuGet/1040/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/1041/googletest.propertiesui.xml b/GoogleTestNuGet/1041/googletest.propertiesui.xml new file mode 100644 index 000000000..28926d993 --- /dev/null +++ b/GoogleTestNuGet/1041/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/1042/googletest.propertiesui.xml b/GoogleTestNuGet/1042/googletest.propertiesui.xml new file mode 100644 index 000000000..e4afd1165 --- /dev/null +++ b/GoogleTestNuGet/1042/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/1045/googletest.propertiesui.xml b/GoogleTestNuGet/1045/googletest.propertiesui.xml new file mode 100644 index 000000000..640a4e967 --- /dev/null +++ b/GoogleTestNuGet/1045/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/1046/googletest.propertiesui.xml b/GoogleTestNuGet/1046/googletest.propertiesui.xml new file mode 100644 index 000000000..39725f55b --- /dev/null +++ b/GoogleTestNuGet/1046/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/1049/googletest.propertiesui.xml b/GoogleTestNuGet/1049/googletest.propertiesui.xml new file mode 100644 index 000000000..e478bebfb --- /dev/null +++ b/GoogleTestNuGet/1049/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/1055/googletest.propertiesui.xml b/GoogleTestNuGet/1055/googletest.propertiesui.xml new file mode 100644 index 000000000..7679dbd9f --- /dev/null +++ b/GoogleTestNuGet/1055/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/31748/googletest.propertiesui.xml b/GoogleTestNuGet/31748/googletest.propertiesui.xml new file mode 100644 index 000000000..ae604fd99 --- /dev/null +++ b/GoogleTestNuGet/31748/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/4/googletest.propertiesui.xml b/GoogleTestNuGet/4/googletest.propertiesui.xml new file mode 100644 index 000000000..408798590 --- /dev/null +++ b/GoogleTestNuGet/4/googletest.propertiesui.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GoogleTestNuGet/Build.ps1 b/GoogleTestNuGet/Build.ps1 index 4b3afe173..1304c31ff 100644 --- a/GoogleTestNuGet/Build.ps1 +++ b/GoogleTestNuGet/Build.ps1 @@ -247,7 +247,21 @@ function Build-NuGet { $TargetsTTArgs += "googletest.targets.tt.proj" Invoke-Executable msbuild $TargetsTTArgs - Copy-Item -Path "googletest.propertiesui.xml" -Destination "$Dir\build\native\googletest.propertiesui.xml" + # Copy all the locale ID folders with the localized versions of googletest.propertiesui.xml + Copy-Item -Path "4" -Destination "$Dir\build\native\4" -Recurse + Copy-Item -Path "1029" -Destination "$Dir\build\native\1029" -Recurse + Copy-Item -Path "1031" -Destination "$Dir\build\native\1031" -Recurse + Copy-Item -Path "1033" -Destination "$Dir\build\native\1033" -Recurse + Copy-Item -Path "1034" -Destination "$Dir\build\native\1034" -Recurse + Copy-Item -Path "1036" -Destination "$Dir\build\native\1036" -Recurse + Copy-Item -Path "1040" -Destination "$Dir\build\native\1040" -Recurse + Copy-Item -Path "1041" -Destination "$Dir\build\native\1041" -Recurse + Copy-Item -Path "1042" -Destination "$Dir\build\native\1042" -Recurse + Copy-Item -Path "1045" -Destination "$Dir\build\native\1045" -Recurse + Copy-Item -Path "1046" -Destination "$Dir\build\native\1046" -Recurse + Copy-Item -Path "1049" -Destination "$Dir\build\native\1049" -Recurse + Copy-Item -Path "1055" -Destination "$Dir\build\native\1055" -Recurse + Copy-Item -Path "31748" -Destination "$Dir\build\native\31748" -Recurse Copy-Item -Recurse -Path "..\ThirdParty\googletest\googletest\include" -Destination "$Dir\build\native\include" diff --git a/GoogleTestNuGet/googletest.nuspec.tt b/GoogleTestNuGet/googletest.nuspec.tt index dc54f301e..398d4cd92 100644 --- a/GoogleTestNuGet/googletest.nuspec.tt +++ b/GoogleTestNuGet/googletest.nuspec.tt @@ -5,7 +5,7 @@ <#= PackageName #> - 1.8.1.3 + 1.8.1.4 Microsoft microsoft,visualcpp https://github.com/Microsoft/TestAdapterForGoogleTest diff --git a/GoogleTestNuGet/googletest.targets.tt b/GoogleTestNuGet/googletest.targets.tt index 2fc019814..3bffd5bee 100644 --- a/GoogleTestNuGet/googletest.targets.tt +++ b/GoogleTestNuGet/googletest.targets.tt @@ -12,7 +12,7 @@ >true> - + From 774375d7d953fd83969b157300b1d0d5763cbcaf Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Fri, 23 Apr 2021 14:46:27 -0700 Subject: [PATCH 94/96] Update chinese locales to match what visual studio uses (#192) * update chinese locales to match what visual studio uses --- GoogleTestNuGet/{31748 => 1028}/googletest.propertiesui.xml | 0 GoogleTestNuGet/{4 => 2052}/googletest.propertiesui.xml | 0 GoogleTestNuGet/Build.ps1 | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) rename GoogleTestNuGet/{31748 => 1028}/googletest.propertiesui.xml (100%) rename GoogleTestNuGet/{4 => 2052}/googletest.propertiesui.xml (100%) diff --git a/GoogleTestNuGet/31748/googletest.propertiesui.xml b/GoogleTestNuGet/1028/googletest.propertiesui.xml similarity index 100% rename from GoogleTestNuGet/31748/googletest.propertiesui.xml rename to GoogleTestNuGet/1028/googletest.propertiesui.xml diff --git a/GoogleTestNuGet/4/googletest.propertiesui.xml b/GoogleTestNuGet/2052/googletest.propertiesui.xml similarity index 100% rename from GoogleTestNuGet/4/googletest.propertiesui.xml rename to GoogleTestNuGet/2052/googletest.propertiesui.xml diff --git a/GoogleTestNuGet/Build.ps1 b/GoogleTestNuGet/Build.ps1 index 1304c31ff..7264937c2 100644 --- a/GoogleTestNuGet/Build.ps1 +++ b/GoogleTestNuGet/Build.ps1 @@ -248,7 +248,7 @@ function Build-NuGet { Invoke-Executable msbuild $TargetsTTArgs # Copy all the locale ID folders with the localized versions of googletest.propertiesui.xml - Copy-Item -Path "4" -Destination "$Dir\build\native\4" -Recurse + Copy-Item -Path "1028" -Destination "$Dir\build\native\1028" -Recurse Copy-Item -Path "1029" -Destination "$Dir\build\native\1029" -Recurse Copy-Item -Path "1031" -Destination "$Dir\build\native\1031" -Recurse Copy-Item -Path "1033" -Destination "$Dir\build\native\1033" -Recurse @@ -261,7 +261,7 @@ function Build-NuGet { Copy-Item -Path "1046" -Destination "$Dir\build\native\1046" -Recurse Copy-Item -Path "1049" -Destination "$Dir\build\native\1049" -Recurse Copy-Item -Path "1055" -Destination "$Dir\build\native\1055" -Recurse - Copy-Item -Path "31748" -Destination "$Dir\build\native\31748" -Recurse + Copy-Item -Path "2052" -Destination "$Dir\build\native\2052" -Recurse Copy-Item -Recurse -Path "..\ThirdParty\googletest\googletest\include" -Destination "$Dir\build\native\include" From e5efa7106786e9bdd48762c18b29ca5f1bcafdd2 Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Mon, 26 Apr 2021 10:49:54 -0700 Subject: [PATCH 95/96] add localized descriptions to vsixlangpack (#193) --- GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack | 2 +- GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack | 2 +- GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack | 2 +- GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack | 2 +- GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack | 2 +- GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack | 2 +- GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack | 2 +- GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack | 2 +- GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack | 2 +- GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack | 2 +- GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack | 2 +- .../Packaging.TAfGT/zh-Hans/Extension.vsixlangpack | 2 +- .../Packaging.TAfGT/zh-Hant/Extension.vsixlangpack | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack index 8f4d6cd57..f1ec45ed7 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/cs/Extension.vsixlangpack @@ -2,6 +2,6 @@ Testovací adaptér pro Google Test - + Povolí v testovacích nástrojích sady Visual Studio testy jednotek vytvořené na bázi knihovny Google Test. \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack index 864e25bc9..fc9a11166 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/de/Extension.vsixlangpack @@ -2,6 +2,6 @@ Testadapter für Google Test - + Ermöglicht die Verwendung von Visual Studio-Testtools mit Komponententests, die für Google Test geschrieben wurden. \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack index 1d54d7048..a00d95ad0 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/es/Extension.vsixlangpack @@ -2,6 +2,6 @@ Test Adapter para Google Test - + Habilita las herramientas de pruebas de Visual Studio con las pruebas unitarias escritas para Google Test. \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack index 662c6181d..f6cef351a 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/fr/Extension.vsixlangpack @@ -2,6 +2,6 @@ Adaptateur de test pour Google Test - + Active les outils de test de Visual Studio avec les tests unitaires écrits pour Google Test. \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack index a1613a4e7..ee663574f 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/it/Extension.vsixlangpack @@ -2,6 +2,6 @@ Test Adapter for Google Test - + Abilita gli strumenti di test di Visual Studio con unit test scritti per Google Test. \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack index a1613a4e7..b50ff7e5a 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/ja/Extension.vsixlangpack @@ -2,6 +2,6 @@ Test Adapter for Google Test - + Google Test 向けに作成された単体テストによる、Visual Studio のテスト ツールを有効にします。 \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack index a1613a4e7..52a25cd98 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/ko/Extension.vsixlangpack @@ -2,6 +2,6 @@ Test Adapter for Google Test - + Google Test용으로 작성된 단위 테스트와 함께 Visual Studio의 테스트 도구를 사용합니다. \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack index a1613a4e7..caeebf126 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/pl/Extension.vsixlangpack @@ -2,6 +2,6 @@ Test Adapter for Google Test - + Udostępnia w narzędziach do testowania w programie Visual Studio testy jednostkowe napisane dla platformy Google Test. \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack index 5a7028758..d4635a233 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/pt-BR/Extension.vsixlangpack @@ -2,6 +2,6 @@ Adaptador de Teste para o Google Test - + Habilita as ferramentas de teste do Visual Studio com testes de unidade gravados para o Google Test. \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack index d0657a5ae..3a85cce8b 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/ru/Extension.vsixlangpack @@ -2,6 +2,6 @@ Адаптер теста для Google Test - + Включает средства тестирования Visual Studio с модульными тестами, созданными для Google Test. \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack index ef0f0361d..4f9dfdf28 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/tr/Extension.vsixlangpack @@ -2,6 +2,6 @@ Google Test için Test Bağdaştırıcısı - + Google Test için yazılmış birim testleriyle Visual Studio test araçlarını etkinleştirir. \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/zh-Hans/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/zh-Hans/Extension.vsixlangpack index 6bd1f1da1..58a982ce0 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/zh-Hans/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/zh-Hans/Extension.vsixlangpack @@ -2,6 +2,6 @@ 适用于 Google Test 的测试适配器 - + 启用带有针对 Google Test 编写的单元测试的 Visual Studio 测试工具。 \ No newline at end of file diff --git a/GoogleTestAdapter/Packaging.TAfGT/zh-Hant/Extension.vsixlangpack b/GoogleTestAdapter/Packaging.TAfGT/zh-Hant/Extension.vsixlangpack index 516be1c87..af5dce09c 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/zh-Hant/Extension.vsixlangpack +++ b/GoogleTestAdapter/Packaging.TAfGT/zh-Hant/Extension.vsixlangpack @@ -2,6 +2,6 @@ 適用於 Google Test 的測試配接器 - + 利用為 Google Test 所撰寫的單元測試來啟用 Visual Studio 的測試工具。 \ No newline at end of file From 44b477eb6b1ce6b16c8607d0e5c4235defebc33c Mon Sep 17 00:00:00 2001 From: Spencer Bloom Date: Sun, 2 May 2021 17:37:51 -0700 Subject: [PATCH 96/96] Add localized VSTDIR for the Test subcategory (#194) * include vstdir in vsix --- .../Packaging.TAfGT/ItemTemplates/VC/Test/Test.VSTDIR | 4 ++++ GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 GoogleTestAdapter/Packaging.TAfGT/ItemTemplates/VC/Test/Test.VSTDIR diff --git a/GoogleTestAdapter/Packaging.TAfGT/ItemTemplates/VC/Test/Test.VSTDIR b/GoogleTestAdapter/Packaging.TAfGT/ItemTemplates/VC/Test/Test.VSTDIR new file mode 100644 index 000000000..943f78049 --- /dev/null +++ b/GoogleTestAdapter/Packaging.TAfGT/ItemTemplates/VC/Test/Test.VSTDIR @@ -0,0 +1,4 @@ + + + 80 + diff --git a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj index fb24efc11..4bea0b065 100644 --- a/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj +++ b/GoogleTestAdapter/Packaging.TAfGT/Packaging.TAfGT.csproj @@ -61,6 +61,10 @@ CopyIfNewer true + + CopyIfNewer + true + Designer