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

Unified Diff: experimental/visual_studio_plugin/src/NaClVsx.Package/NaClVsx.Package_UnitTestProject/ThreadTest.cs

Issue 10928195: First round of dead file removal (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: 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: experimental/visual_studio_plugin/src/NaClVsx.Package/NaClVsx.Package_UnitTestProject/ThreadTest.cs
diff --git a/experimental/visual_studio_plugin/src/NaClVsx.Package/NaClVsx.Package_UnitTestProject/ThreadTest.cs b/experimental/visual_studio_plugin/src/NaClVsx.Package/NaClVsx.Package_UnitTestProject/ThreadTest.cs
deleted file mode 100644
index 04bf3c16312303db14a7dc23cfcd0d44c82c0531..0000000000000000000000000000000000000000
--- a/experimental/visual_studio_plugin/src/NaClVsx.Package/NaClVsx.Package_UnitTestProject/ThreadTest.cs
+++ /dev/null
@@ -1,112 +0,0 @@
-// Copyright (c) 2011 The Native Client Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#region
-
-using Google.NaClVsx.DebugSupport;
-using Microsoft.VisualStudio;
-using Microsoft.VisualStudio.Debugger.Interop;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using NaClVsx.DebugHelpers;
-
-#endregion
-
-namespace NaClVsx.Package_UnitTestProject {
- ///<summary>
- /// This is a test class for ThreadTest and is intended
- /// to contain all ThreadTest Unit Tests
- ///</summary>
- [TestClass]
- public class ThreadTest {
- ///<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>
- /// A test for EnumFrameInfo. This test is bulky because it's the only
- /// test in this class at the moment. A lot of the code here can be
- /// reused and should be factored when more tests are added.
- /// </summary>
- [TestMethod]
- public void EnumFrameInfoTest() {
- // In order for this test to mean anything we need a real symbol
- // provider.
- var symbolProvider = NaClPackageTestUtils.LoadLoopNexe();
- Assert.IsNotNull(
- symbolProvider,
- "NaClSymbolProviderTest could not initialize.");
- var debuggerMock = new NaClDebuggerMock();
- var symbolProviderPrivates = new PrivateObject(symbolProvider);
- symbolProviderPrivates.SetField("dbg_", debuggerMock);
- debuggerMock.Symbols = symbolProvider;
- // We can also use a real NaClDebugProcess which can be equipped with
- // some mocks.
- IDebugPort2 debugPort2 = new DebugPort2Mock();
- var process = new NaClDebugProcess(
- debugPort2, "connectionString", 123, "imagePath");
- var program = new ProgramNode(process);
- var programPrivates = new PrivateObject(program);
- programPrivates.SetField("dbg_", debuggerMock);
-
- var name = "loop";
- uint tid = 1;
- var target = new Thread(program, name, tid);
- var dwFieldSpec = new enum_FRAMEINFO_FLAGS();
- uint nRadix = 0;
- IEnumDebugFrameInfo2 ppDebugFrames;
- // Now it's time to prime the mocks.
- var loopCCPath = NaClPackageTestUtils.GetLoopCCPath();
- var mockRegisters = new RegsX86_64();
-
- // We need the following addresses to create a simulated callstack.
- var printLineAddress = NaClPackageTestUtils.GetAddressForPosition(
- loopCCPath, NaClPackageTestUtils.kPrintLineRow, symbolProvider);
- var printLoopAddress = NaClPackageTestUtils.GetAddressForPosition(
- loopCCPath,
- NaClPackageTestUtils.kPrintLineCallSiteRow,
- symbolProvider);
- var fooAddress = NaClPackageTestUtils.GetAddressForPosition(
- loopCCPath,
- NaClPackageTestUtils.kPrintLoopCallSiteRow,
- symbolProvider);
- var mainAddress = NaClPackageTestUtils.GetAddressForPosition(
- loopCCPath, NaClPackageTestUtils.kFooCallSiteRow, symbolProvider);
- // A million is a nice round number which makes it easy to calculate the
- // expected register values. We can use it for the register values we
- // mock.
- var dummyValidAddress = 1000000 + symbolProvider.BaseAddress;
-
- mockRegisters.Rip = printLineAddress;
- mockRegisters.Rbp = dummyValidAddress;
- // As the stack is being analyzed, the debugger will traverse up the
- // call chain. The mock will thus return code locations from the inside
- // out to simulate this procedure.
- // Note that the symbolprovider has been loaded with real call frame
- // information, and that the non-dummy addresses have been parsed out of
- // the loop nexe as well.
- debuggerMock.RecordCall("GetRegisters", (uint) 1, mockRegisters);
- debuggerMock.RecordCall("GetU64", (ulong) 1000008, printLoopAddress);
- debuggerMock.RecordCall("GetU64", (ulong) 1000000, dummyValidAddress);
- debuggerMock.RecordCall("GetU64", (ulong) 1000008, fooAddress);
- debuggerMock.RecordCall("GetU64", (ulong) 1000000, dummyValidAddress);
- debuggerMock.RecordCall("GetU64", (ulong) 1000008, mainAddress);
- debuggerMock.RecordCall("GetU64", (ulong) 1000000, dummyValidAddress);
- // Having the same mainAddress returned twice simulates the infinite loop
- // that was fixed in RefreshFrameInfo()
- // http://code.google.com/p/nativeclient/issues/detail?id=2012
- debuggerMock.RecordCall("GetU64", (ulong) 1000008, mainAddress);
- debuggerMock.RecordCall("GetU64", (ulong) 1000000, dummyValidAddress);
- debuggerMock.RecordCall("GetU64", (ulong) 999984, dummyValidAddress);
- debuggerMock.RecordCall("GetU64", (ulong) 999992, dummyValidAddress);
- var returned = target.EnumFrameInfo(
- dwFieldSpec, nRadix, out ppDebugFrames);
- Assert.AreEqual(VSConstants.S_OK, returned);
- uint frameCount;
- ppDebugFrames.GetCount(out frameCount);
- Assert.AreEqual((uint) 4, frameCount);
- }
- }
-}

Powered by Google App Engine
This is Rietveld 408576698