Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(199)

Unified Diff: visual_studio/NativeClientVSAddIn/UnitTests/PluginDebuggerVSTest.cs

Issue 10908249: Remove windows line ending from repo files (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: fix copyright headers Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: visual_studio/NativeClientVSAddIn/UnitTests/PluginDebuggerVSTest.cs
diff --git a/visual_studio/NativeClientVSAddIn/UnitTests/PluginDebuggerVSTest.cs b/visual_studio/NativeClientVSAddIn/UnitTests/PluginDebuggerVSTest.cs
index dd37310367ff681666bdbc2ce088b62ba3673819..62d5841a2ed579c5b0f17cd024d96bdbdd69230b 100644
--- a/visual_studio/NativeClientVSAddIn/UnitTests/PluginDebuggerVSTest.cs
+++ b/visual_studio/NativeClientVSAddIn/UnitTests/PluginDebuggerVSTest.cs
@@ -1,286 +1,286 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-namespace UnitTests
-{
- using System;
- using System.Reflection;
-
- using EnvDTE80;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
-
- using NativeClientVSAddIn;
-
- /// <summary>
- /// This is a test class for PluginDebuggerVSTest and is intended
- /// to contain all PluginDebuggerVS Unit Tests
- /// </summary>
- [TestClass]
- public class PluginDebuggerVSTest
- {
- /// <summary>
- /// The main visual studio object.
- /// </summary>
- private DTE2 dte_;
-
- /// <summary>
- /// Holds the default properties from property pages to use during tests.
- /// </summary>
- private MockPropertyManager properties_;
-
- /// <summary>
- /// Gets or sets the test context which provides information about,
- /// and functionality for the current test run.
- /// </summary>
- public TestContext TestContext { get; set; }
-
- /// <summary>
- /// This is run before each test to create test resources.
- /// </summary>
- [TestInitialize]
- public void TestSetup()
- {
- dte_ = TestUtilities.StartVisualStudioInstance();
- try
- {
- TestUtilities.AssertAddinLoaded(dte_, NativeClientVSAddIn.Strings.AddInName);
- }
- catch
- {
- TestUtilities.CleanUpVisualStudioInstance(dte_);
- throw;
- }
-
- // Set up mock property manager to return the desired property values.
- properties_ = new MockPropertyManager(
- PropertyManager.ProjectPlatformType.Pepper,
- delegate(string page, string name)
- {
- switch (page)
- {
- case "ConfigurationGeneral":
- switch (name)
- {
- case "VSNaClSDKRoot": return System.Environment.GetEnvironmentVariable(
- NativeClientVSAddIn.Strings.SDKPathEnvironmentVariable);
- }
-
- break;
- case "Property":
- switch (name)
- {
- case "ProjectDirectory": return TestContext.DeploymentDirectory;
- case "PluginAssembly": return @"fake\Assembly\String";
- }
-
- break;
- }
-
- return null;
- },
- null);
- }
-
- /// <summary>
- /// This is run after each test to clean up things created in TestSetup().
- /// </summary>
- [TestCleanup]
- public void TestCleanup()
- {
- TestUtilities.CleanUpVisualStudioInstance(dte_);
- }
-
- /// <summary>
- /// A test for the constructor.
- /// </summary>
- [TestMethod]
- public void PluginDebuggerVSConstructorTest()
- {
- // Check that a null dte fails.
- try
- {
- PluginDebuggerBase nullDte = new PluginDebuggerVS(null, properties_);
- Assert.Fail("Using null DTE instance did not throw exception");
- }
- catch (ArgumentNullException)
- {
- // This is expected for a correct implementation.
- }
- catch
- {
- Assert.Fail("Using null DTE instance threw something other than ArgumentNullException");
- }
-
- // Check that a null PropertyManager fails.
- try
- {
- PluginDebuggerBase nullDte = new PluginDebuggerVS(dte_, null);
- Assert.Fail("Using null property manager did not throw exception");
- }
- catch (ArgumentNullException)
- {
- // This is expected for a correct implementation.
- }
- catch
- {
- Assert.Fail("Using null property manager threw something other than ArgumentNullException");
- }
- }
-
- /// <summary>
- /// A test for FindAndAttachToPlugin.
- /// </summary>
- [TestMethod]
- [DeploymentItem("NativeClientVSAddIn.dll")]
- public void FindAndAttachToPepperPluginTest()
- {
- MockProcessSearcher processResults = new MockProcessSearcher();
-
- using (PluginDebuggerVS target = new PluginDebuggerVS(dte_, properties_))
- {
- PluginDebuggerBase_Accessor targetBase = new PluginDebuggerBase_Accessor(
- new PrivateObject(target, new PrivateType(typeof(PluginDebuggerBase))));
- targetBase.debuggedChromeMainProcess_ = System.Diagnostics.Process.GetCurrentProcess();
- uint currentProcId = (uint)targetBase.debuggedChromeMainProcess_.Id;
-
- string pluginLoadFlag = string.Format(
- Strings.PepperProcessPluginFlagFormat, properties_.PluginAssembly);
- string pepperCommandLine = string.Concat(
- pluginLoadFlag, " ", Strings.ChromeRendererFlag);
-
- // Fake the list of processes on the system.
- processResults.ProcessList.Add(
- new ProcessInfo(
- currentProcId,
- currentProcId,
- string.Empty,
- Strings.NaClDebugFlag,
- Strings.ChromeProcessName));
- processResults.ProcessList.Add(
- new ProcessInfo(1, currentProcId, string.Empty, string.Empty, "MyParentProcess"));
- processResults.ProcessList.Add(
- new ProcessInfo(10, 1, string.Empty, pepperCommandLine, Strings.ChromeProcessName));
-
- // This is missing some relevant command line args, and should not be attached to.
- processResults.ProcessList.Add(
- new ProcessInfo(12, 1, string.Empty, pluginLoadFlag, Strings.ChromeProcessName));
-
- // This doesn't have this process as its parent, and should not be attached to.
- processResults.ProcessList.Add(
- new ProcessInfo(14, 14, string.Empty, pepperCommandLine, Strings.ChromeProcessName));
-
- // Set the private value to the mock object (can't use accessor since no valid cast).
- FieldInfo processSearcherField = typeof(PluginDebuggerBase).GetField(
- "processSearcher_",
- BindingFlags.NonPublic | BindingFlags.Instance);
- processSearcherField.SetValue(targetBase.Target, processResults);
-
- // Test that the correct processes are attached to.
- bool goodPepper = false;
- var handler = new EventHandler<NativeClientVSAddIn.PluginDebuggerBase.PluginFoundEventArgs>(
- delegate(object unused, NativeClientVSAddIn.PluginDebuggerBase.PluginFoundEventArgs args)
- {
- switch (args.ProcessID)
- {
- case 10:
- if (goodPepper)
- {
- Assert.Fail("Should not attach twice to same pepper process");
- }
-
- goodPepper = true;
- break;
- case 12:
- Assert.Fail("Should not attach to pepper process with bad args");
- break;
- case 14:
- Assert.Fail("Should not attach to pepper process that is not "
- + "descendant of Visual Studio");
- break;
- default:
- Assert.Fail("Should not attach to non-pepper/non-nacl process");
- break;
- }
- });
-
- target.PluginFoundEvent += handler;
- target.FindAndAttachToPlugin(null, null);
- target.PluginFoundEvent -= handler;
-
- Assert.IsTrue(goodPepper, "Failed to attach to pepper process");
- }
- }
-
- /// <summary>
- /// Checks that VS properly attaches debugger.
- /// </summary>
- [TestMethod]
- [DeploymentItem("NativeClientVSAddIn.dll")]
- public void AttachVSDebuggerTest()
- {
- using (System.Diagnostics.Process dummyProc = TestUtilities.StartProcessForKilling(
- "DummyProc", 20))
- {
- try
- {
- PluginDebuggerVS_Accessor target = new PluginDebuggerVS_Accessor(dte_, properties_);
-
- var pluginFoundArgs = new NativeClientVSAddIn.PluginDebuggerBase.PluginFoundEventArgs(
- (uint)dummyProc.Id);
- target.Attach(null, pluginFoundArgs);
-
- bool isBeingDebugged = false;
- foreach (EnvDTE.Process proc in dte_.Debugger.DebuggedProcesses)
- {
- if (proc.ProcessID == dummyProc.Id)
- {
- isBeingDebugged = true;
- }
- }
-
- Assert.IsTrue(isBeingDebugged, "Visual Studio debugger did not attach");
- }
- finally
- {
- if (dummyProc != null && !dummyProc.HasExited)
- {
- dummyProc.Kill();
- dummyProc.Dispose();
- }
- }
- }
- }
-
- /// <summary>
- /// A test for IsPluginProcess.
- /// </summary>
- [TestMethod]
- [DeploymentItem("NativeClientVSAddIn.dll")]
- public void IsPepperPluginProcessTest()
- {
- PluginDebuggerVS_Accessor target = new PluginDebuggerVS_Accessor(dte_, properties_);
-
- string identifierFlagTarget =
- string.Format(Strings.PepperProcessPluginFlagFormat, target.pluginAssembly_);
- string goodFlags = string.Concat(Strings.ChromeRendererFlag, ' ', identifierFlagTarget);
-
- ProcessInfo badProc1 = new ProcessInfo(
- 1, 1, string.Empty, goodFlags, Strings.NaClProcessName);
- ProcessInfo badProc2 = new ProcessInfo(
- 1, 1, string.Empty, Strings.NaClLoaderFlag, Strings.ChromeProcessName);
- ProcessInfo badProc3 = new ProcessInfo(
- 1, 1, string.Empty, Strings.ChromeRendererFlag, Strings.ChromeProcessName);
- ProcessInfo badProc4 = new ProcessInfo(
- 1, 1, string.Empty, identifierFlagTarget, Strings.ChromeProcessName);
- ProcessInfo goodProc = new ProcessInfo(
- 1, 1, string.Empty, goodFlags, Strings.ChromeProcessName);
-
- Assert.IsTrue(target.IsPluginProcess(goodProc, string.Empty));
- Assert.IsFalse(target.IsPluginProcess(badProc1, string.Empty));
- Assert.IsFalse(target.IsPluginProcess(badProc2, string.Empty));
- Assert.IsFalse(target.IsPluginProcess(badProc3, string.Empty));
- Assert.IsFalse(target.IsPluginProcess(badProc4, string.Empty));
- }
- }
-}
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+namespace UnitTests
+{
+ using System;
+ using System.Reflection;
+
+ using EnvDTE80;
+ using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+ using NativeClientVSAddIn;
+
+ /// <summary>
+ /// This is a test class for PluginDebuggerVSTest and is intended
+ /// to contain all PluginDebuggerVS Unit Tests
+ /// </summary>
+ [TestClass]
+ public class PluginDebuggerVSTest
+ {
+ /// <summary>
+ /// The main visual studio object.
+ /// </summary>
+ private DTE2 dte_;
+
+ /// <summary>
+ /// Holds the default properties from property pages to use during tests.
+ /// </summary>
+ private MockPropertyManager properties_;
+
+ /// <summary>
+ /// Gets or sets the test context which provides information about,
+ /// and functionality for the current test run.
+ /// </summary>
+ public TestContext TestContext { get; set; }
+
+ /// <summary>
+ /// This is run before each test to create test resources.
+ /// </summary>
+ [TestInitialize]
+ public void TestSetup()
+ {
+ dte_ = TestUtilities.StartVisualStudioInstance();
+ try
+ {
+ TestUtilities.AssertAddinLoaded(dte_, NativeClientVSAddIn.Strings.AddInName);
+ }
+ catch
+ {
+ TestUtilities.CleanUpVisualStudioInstance(dte_);
+ throw;
+ }
+
+ // Set up mock property manager to return the desired property values.
+ properties_ = new MockPropertyManager(
+ PropertyManager.ProjectPlatformType.Pepper,
+ delegate(string page, string name)
+ {
+ switch (page)
+ {
+ case "ConfigurationGeneral":
+ switch (name)
+ {
+ case "VSNaClSDKRoot": return System.Environment.GetEnvironmentVariable(
+ NativeClientVSAddIn.Strings.SDKPathEnvironmentVariable);
+ }
+
+ break;
+ case "Property":
+ switch (name)
+ {
+ case "ProjectDirectory": return TestContext.DeploymentDirectory;
+ case "PluginAssembly": return @"fake\Assembly\String";
+ }
+
+ break;
+ }
+
+ return null;
+ },
+ null);
+ }
+
+ /// <summary>
+ /// This is run after each test to clean up things created in TestSetup().
+ /// </summary>
+ [TestCleanup]
+ public void TestCleanup()
+ {
+ TestUtilities.CleanUpVisualStudioInstance(dte_);
+ }
+
+ /// <summary>
+ /// A test for the constructor.
+ /// </summary>
+ [TestMethod]
+ public void PluginDebuggerVSConstructorTest()
+ {
+ // Check that a null dte fails.
+ try
+ {
+ PluginDebuggerBase nullDte = new PluginDebuggerVS(null, properties_);
+ Assert.Fail("Using null DTE instance did not throw exception");
+ }
+ catch (ArgumentNullException)
+ {
+ // This is expected for a correct implementation.
+ }
+ catch
+ {
+ Assert.Fail("Using null DTE instance threw something other than ArgumentNullException");
+ }
+
+ // Check that a null PropertyManager fails.
+ try
+ {
+ PluginDebuggerBase nullDte = new PluginDebuggerVS(dte_, null);
+ Assert.Fail("Using null property manager did not throw exception");
+ }
+ catch (ArgumentNullException)
+ {
+ // This is expected for a correct implementation.
+ }
+ catch
+ {
+ Assert.Fail("Using null property manager threw something other than ArgumentNullException");
+ }
+ }
+
+ /// <summary>
+ /// A test for FindAndAttachToPlugin.
+ /// </summary>
+ [TestMethod]
+ [DeploymentItem("NativeClientVSAddIn.dll")]
+ public void FindAndAttachToPepperPluginTest()
+ {
+ MockProcessSearcher processResults = new MockProcessSearcher();
+
+ using (PluginDebuggerVS target = new PluginDebuggerVS(dte_, properties_))
+ {
+ PluginDebuggerBase_Accessor targetBase = new PluginDebuggerBase_Accessor(
+ new PrivateObject(target, new PrivateType(typeof(PluginDebuggerBase))));
+ targetBase.debuggedChromeMainProcess_ = System.Diagnostics.Process.GetCurrentProcess();
+ uint currentProcId = (uint)targetBase.debuggedChromeMainProcess_.Id;
+
+ string pluginLoadFlag = string.Format(
+ Strings.PepperProcessPluginFlagFormat, properties_.PluginAssembly);
+ string pepperCommandLine = string.Concat(
+ pluginLoadFlag, " ", Strings.ChromeRendererFlag);
+
+ // Fake the list of processes on the system.
+ processResults.ProcessList.Add(
+ new ProcessInfo(
+ currentProcId,
+ currentProcId,
+ string.Empty,
+ Strings.NaClDebugFlag,
+ Strings.ChromeProcessName));
+ processResults.ProcessList.Add(
+ new ProcessInfo(1, currentProcId, string.Empty, string.Empty, "MyParentProcess"));
+ processResults.ProcessList.Add(
+ new ProcessInfo(10, 1, string.Empty, pepperCommandLine, Strings.ChromeProcessName));
+
+ // This is missing some relevant command line args, and should not be attached to.
+ processResults.ProcessList.Add(
+ new ProcessInfo(12, 1, string.Empty, pluginLoadFlag, Strings.ChromeProcessName));
+
+ // This doesn't have this process as its parent, and should not be attached to.
+ processResults.ProcessList.Add(
+ new ProcessInfo(14, 14, string.Empty, pepperCommandLine, Strings.ChromeProcessName));
+
+ // Set the private value to the mock object (can't use accessor since no valid cast).
+ FieldInfo processSearcherField = typeof(PluginDebuggerBase).GetField(
+ "processSearcher_",
+ BindingFlags.NonPublic | BindingFlags.Instance);
+ processSearcherField.SetValue(targetBase.Target, processResults);
+
+ // Test that the correct processes are attached to.
+ bool goodPepper = false;
+ var handler = new EventHandler<NativeClientVSAddIn.PluginDebuggerBase.PluginFoundEventArgs>(
+ delegate(object unused, NativeClientVSAddIn.PluginDebuggerBase.PluginFoundEventArgs args)
+ {
+ switch (args.ProcessID)
+ {
+ case 10:
+ if (goodPepper)
+ {
+ Assert.Fail("Should not attach twice to same pepper process");
+ }
+
+ goodPepper = true;
+ break;
+ case 12:
+ Assert.Fail("Should not attach to pepper process with bad args");
+ break;
+ case 14:
+ Assert.Fail("Should not attach to pepper process that is not "
+ + "descendant of Visual Studio");
+ break;
+ default:
+ Assert.Fail("Should not attach to non-pepper/non-nacl process");
+ break;
+ }
+ });
+
+ target.PluginFoundEvent += handler;
+ target.FindAndAttachToPlugin(null, null);
+ target.PluginFoundEvent -= handler;
+
+ Assert.IsTrue(goodPepper, "Failed to attach to pepper process");
+ }
+ }
+
+ /// <summary>
+ /// Checks that VS properly attaches debugger.
+ /// </summary>
+ [TestMethod]
+ [DeploymentItem("NativeClientVSAddIn.dll")]
+ public void AttachVSDebuggerTest()
+ {
+ using (System.Diagnostics.Process dummyProc = TestUtilities.StartProcessForKilling(
+ "DummyProc", 20))
+ {
+ try
+ {
+ PluginDebuggerVS_Accessor target = new PluginDebuggerVS_Accessor(dte_, properties_);
+
+ var pluginFoundArgs = new NativeClientVSAddIn.PluginDebuggerBase.PluginFoundEventArgs(
+ (uint)dummyProc.Id);
+ target.Attach(null, pluginFoundArgs);
+
+ bool isBeingDebugged = false;
+ foreach (EnvDTE.Process proc in dte_.Debugger.DebuggedProcesses)
+ {
+ if (proc.ProcessID == dummyProc.Id)
+ {
+ isBeingDebugged = true;
+ }
+ }
+
+ Assert.IsTrue(isBeingDebugged, "Visual Studio debugger did not attach");
+ }
+ finally
+ {
+ if (dummyProc != null && !dummyProc.HasExited)
+ {
+ dummyProc.Kill();
+ dummyProc.Dispose();
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// A test for IsPluginProcess.
+ /// </summary>
+ [TestMethod]
+ [DeploymentItem("NativeClientVSAddIn.dll")]
+ public void IsPepperPluginProcessTest()
+ {
+ PluginDebuggerVS_Accessor target = new PluginDebuggerVS_Accessor(dte_, properties_);
+
+ string identifierFlagTarget =
+ string.Format(Strings.PepperProcessPluginFlagFormat, target.pluginAssembly_);
+ string goodFlags = string.Concat(Strings.ChromeRendererFlag, ' ', identifierFlagTarget);
+
+ ProcessInfo badProc1 = new ProcessInfo(
+ 1, 1, string.Empty, goodFlags, Strings.NaClProcessName);
+ ProcessInfo badProc2 = new ProcessInfo(
+ 1, 1, string.Empty, Strings.NaClLoaderFlag, Strings.ChromeProcessName);
+ ProcessInfo badProc3 = new ProcessInfo(
+ 1, 1, string.Empty, Strings.ChromeRendererFlag, Strings.ChromeProcessName);
+ ProcessInfo badProc4 = new ProcessInfo(
+ 1, 1, string.Empty, identifierFlagTarget, Strings.ChromeProcessName);
+ ProcessInfo goodProc = new ProcessInfo(
+ 1, 1, string.Empty, goodFlags, Strings.ChromeProcessName);
+
+ Assert.IsTrue(target.IsPluginProcess(goodProc, string.Empty));
+ Assert.IsFalse(target.IsPluginProcess(badProc1, string.Empty));
+ Assert.IsFalse(target.IsPluginProcess(badProc2, string.Empty));
+ Assert.IsFalse(target.IsPluginProcess(badProc3, string.Empty));
+ Assert.IsFalse(target.IsPluginProcess(badProc4, string.Empty));
+ }
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698