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

Unified Diff: experimental/windows_debugger/debugger/core/debuggee_process_test.cc

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/windows_debugger/debugger/core/debuggee_process_test.cc
diff --git a/experimental/windows_debugger/debugger/core/debuggee_process_test.cc b/experimental/windows_debugger/debugger/core/debuggee_process_test.cc
deleted file mode 100644
index 7a34ab281ee489c7c9c4bc9c96673e97e797bf7e..0000000000000000000000000000000000000000
--- a/experimental/windows_debugger/debugger/core/debuggee_process_test.cc
+++ /dev/null
@@ -1,287 +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.
-#include "debugger/core/debug_api_mock.h"
-#include "debugger/core/debug_breakpoint.h"
-#include "debugger/core/debug_event.h"
-#include "debugger/core/debuggee_process.h"
-
-#include "gtest/gtest.h"
-
-namespace {
-const int kFakeProcessId = 847;
-const int kFakeThreadId = 378421;
-const int kFakeThreadId2 = 308421;
-HANDLE kFakeThreadHandle = reinterpret_cast<void*>(1);
-HANDLE kFakeProcessHandle = reinterpret_cast<void*>(2);
-HANDLE kFakeFileHandle = NULL;
-
-const int kNexeThreadStarted = 1;
-const int kThreadHalted = 2;
-const int kThreadRunning = 3;
-
-const debug::DebuggeeThread* kNullThreadPtr = NULL;
-const debug::Breakpoint* kNullBreakpointPtr = NULL;
-void* kFakeAddr1 = reinterpret_cast<void*>(0x1B0e37C5);
-void* kFakeAddr2 = reinterpret_cast<void*>(0x435F976D);
-
-class TestableDebuggeeProcess : public debug::DebuggeeProcess {
- public:
- TestableDebuggeeProcess(int id,
- HANDLE handle,
- HANDLE file_handle,
- debug::DebugAPI* debug_api)
- : debug::DebuggeeProcess(id,
- handle,
- file_handle,
- debug_api) {
- }
-
- void OnDebugEvent(debug::DebugEvent* debug_event) {
- debug::DebuggeeProcess::OnDebugEvent(debug_event);
- }
-
- void Halt() { state_ = kHalted; }
-};
-
-class DebuggeeProcessTest : public ::testing::Test {
- public:
- DebuggeeProcessTest() {
- proc_ = new TestableDebuggeeProcess(kFakeProcessId,
- kFakeProcessHandle,
- kFakeFileHandle,
- &fake_debug_api_);
- CreateThread(kFakeThreadId2);
- fake_debug_api_.ClearCallSequence();
- }
-
- ~DebuggeeProcessTest() {
- delete proc_;
- }
-
- void CreateThread(int id) {
- DEBUG_EVENT wde;
- memset(&wde, 0, sizeof(wde));
- wde.dwDebugEventCode = CREATE_THREAD_DEBUG_EVENT;
- wde.dwProcessId = proc_->id();
- wde.dwThreadId = id;
-
- debug::DebugEvent de;
- de.set_windows_debug_event(wde);
- proc_->OnDebugEvent(&de);
- proc_->Continue();
- }
-
- debug::DebugEvent CreateBreakpointDebugEvent(int thread_id, void* addr) {
- DEBUG_EVENT wde;
- memset(&wde, 0, sizeof(wde));
- wde.dwDebugEventCode = EXCEPTION_DEBUG_EVENT;
- wde.dwProcessId = proc_->id();
- wde.dwThreadId = thread_id;
- wde.u.Exception.ExceptionRecord.ExceptionCode =
- EXCEPTION_BREAKPOINT;
- wde.u.Exception.ExceptionRecord.ExceptionAddress =
- addr;
-
- debug::DebugEvent de;
- de.set_windows_debug_event(wde);
- return de;
- }
-
- TestableDebuggeeProcess* proc_;
- debug::DebugAPIMock fake_debug_api_;
-};
-
-TEST_F(DebuggeeProcessTest, SimpleAccessors) {
- ASSERT_NE(reinterpret_cast<debug::DebugAPIMock*>(NULL), &proc_->debug_api());
-
- EXPECT_EQ(&proc_->debug_api(), &fake_debug_api_);
- EXPECT_EQ(kFakeProcessId, proc_->id());
- EXPECT_EQ(kFakeProcessHandle, proc_->handle());
- EXPECT_EQ(debug::DebuggeeProcess::kRunning, proc_->state());
-
- debug::DebugAPI deb_api;
- debug::DebuggeeProcess this_proc(::GetCurrentProcessId(),
- ::GetCurrentProcess(),
- kFakeFileHandle,
- &deb_api);
-
- int sz = this_proc.GetWordSizeInBits();
-#ifdef _WIN64
- EXPECT_EQ(64, sz);
- EXPECT_FALSE(this_proc.IsWoW());
-#else
- EXPECT_EQ(32, sz);
-#endif
-}
-
-TEST_F(DebuggeeProcessTest, Threads) {
- std::deque<int> threads;
- threads.push_back(1);
- threads.push_back(2);
- proc_->GetThreadIds(&threads);
- ASSERT_EQ(1, threads.size());
- EXPECT_EQ(kFakeThreadId2, threads[0]);
- EXPECT_EQ(NULL, proc_->GetHaltedThread());
-
- debug::DebuggeeThread* thread = proc_->GetThread(threads[0]);
- ASSERT_NE(kNullThreadPtr, thread);
-}
-
-TEST_F(DebuggeeProcessTest, MemRead) {
- char buff[10];
- ASSERT_TRUE(proc_->ReadMemory(0, sizeof(buff), buff));
- std::deque<debug::DebugAPIMock::FunctionId> call_list;
- call_list.push_back(debug::DebugAPIMock::kReadProcessMemory);
- EXPECT_TRUE(fake_debug_api_.CompareCallSequence(call_list));
-}
-
-TEST_F(DebuggeeProcessTest, MemWrite) {
- proc_->Halt();
- char buff[10];
- ASSERT_TRUE(proc_->WriteMemory(0, sizeof(buff), buff));
- std::deque<debug::DebugAPIMock::FunctionId> call_list;
- call_list.push_back(debug::DebugAPIMock::kWriteProcessMemory);
- call_list.push_back(debug::DebugAPIMock::kFlushInstructionCache);
- EXPECT_TRUE(fake_debug_api_.CompareCallSequence(call_list));
-}
-
-TEST_F(DebuggeeProcessTest, Breakpoints) {
- CreateThread(kFakeThreadId);
- proc_->Halt();
-
- std::deque<debug::Breakpoint*> breakpoints;
- breakpoints.push_back(0);
- // DebuggeeProcess::GetBreakpoints shall clear 'breakpoints', just
- // in case something was there.
- proc_->GetBreakpoints(&breakpoints);
- EXPECT_EQ(0, breakpoints.size());
- EXPECT_EQ(kNullBreakpointPtr, proc_->GetBreakpoint(kFakeAddr1));
- EXPECT_EQ(kNullBreakpointPtr, proc_->GetBreakpoint(kFakeAddr2));
-
- EXPECT_TRUE(proc_->SetBreakpoint(kFakeAddr1));
- EXPECT_TRUE(proc_->SetBreakpoint(kFakeAddr2));
- proc_->GetBreakpoints(&breakpoints);
- ASSERT_EQ(2, breakpoints.size());
-
- debug::Breakpoint* br1 = breakpoints[0];
- EXPECT_EQ(kFakeAddr1, breakpoints[0]->address());
- EXPECT_EQ(kFakeAddr2, breakpoints[1]->address());
-
- ASSERT_NE(kNullBreakpointPtr, proc_->GetBreakpoint(kFakeAddr1));
- ASSERT_NE(kNullBreakpointPtr, proc_->GetBreakpoint(kFakeAddr2));
- EXPECT_EQ(kFakeAddr1, proc_->GetBreakpoint(kFakeAddr1)->address());
- EXPECT_EQ(kFakeAddr2, proc_->GetBreakpoint(kFakeAddr2)->address());
-}
-
-TEST_F(DebuggeeProcessTest, ThreadNewAndDelete) {
- CreateThread(kFakeThreadId + 13);
- std::deque<int> threads;
- proc_->GetThreadIds(&threads);
- ASSERT_EQ(2, threads.size());
- EXPECT_EQ(kFakeThreadId2, threads[0]);
- EXPECT_EQ(kFakeThreadId + 13, threads[1]);
-
- CreateThread(kFakeThreadId + 77);
- proc_->GetThreadIds(&threads);
- ASSERT_EQ(3, threads.size());
- EXPECT_EQ(kFakeThreadId + 77, threads[2]);
-
- DEBUG_EVENT wde;
- memset(&wde, 0, sizeof(wde));
- wde.dwProcessId = proc_->id();
- wde.dwThreadId = kFakeThreadId2;
- wde.dwDebugEventCode = EXIT_THREAD_DEBUG_EVENT;
-
- debug::DebugEvent de;
- de.set_windows_debug_event(wde);
- proc_->OnDebugEvent(&de);
- proc_->GetThreadIds(&threads);
- EXPECT_EQ(3, threads.size());
-
- proc_->Continue();
- proc_->GetThreadIds(&threads);
- EXPECT_EQ(2, threads.size());
- EXPECT_EQ(debug::DebuggeeProcess::kRunning, proc_->state());
-}
-
-TEST_F(DebuggeeProcessTest, ProcessExit) {
- DEBUG_EVENT wde;
- memset(&wde, 0, sizeof(wde));
- wde.dwDebugEventCode = EXIT_PROCESS_DEBUG_EVENT;
- wde.dwThreadId = kFakeThreadId2;
- wde.dwProcessId = proc_->id();
-
- debug::DebugEvent de;
- de.set_windows_debug_event(wde);
-
- proc_->OnDebugEvent(&de);
- EXPECT_EQ(debug::DebuggeeProcess::kHalted, proc_->state());
- EXPECT_EQ(wde.dwDebugEventCode,
- proc_->last_debug_event().windows_debug_event().dwDebugEventCode);
- EXPECT_EQ(wde.dwProcessId,
- proc_->last_debug_event().windows_debug_event().dwProcessId);
- EXPECT_EQ(wde.dwThreadId,
- proc_->last_debug_event().windows_debug_event().dwThreadId);
-
- proc_->Continue();
- EXPECT_EQ(debug::DebuggeeProcess::kDead, proc_->state());
-}
-
-TEST_F(DebuggeeProcessTest, HitOurBreakpoint) {
- CreateThread(kFakeThreadId);
- proc_->Halt();
- EXPECT_TRUE(proc_->SetBreakpoint(kFakeAddr1));
-
- debug::DebugEvent de = CreateBreakpointDebugEvent(kFakeThreadId, kFakeAddr1);
- proc_->OnDebugEvent(&de);
-
- EXPECT_EQ(debug::DebuggeeProcess::kHalted, proc_->state());
- EXPECT_EQ(proc_->GetThread(kFakeThreadId), proc_->GetHaltedThread());
-
- EXPECT_TRUE(proc_->Continue());
- EXPECT_EQ(debug::DebuggeeProcess::kRunning, proc_->state());
-}
-
-TEST_F(DebuggeeProcessTest, HitBreakpointSingleStep) {
- debug::DebugEvent de = CreateBreakpointDebugEvent(kFakeThreadId2, kFakeAddr1);
- proc_->OnDebugEvent(&de);
-
- EXPECT_EQ(debug::DebuggeeProcess::kHalted, proc_->state());
- EXPECT_EQ(proc_->GetThread(kFakeThreadId2), proc_->GetHaltedThread());
-
- EXPECT_TRUE(proc_->SingleStep());
- EXPECT_EQ(debug::DebuggeeProcess::kRunning, proc_->state());
-}
-
-TEST_F(DebuggeeProcessTest, HitUnknownBreakpoint) {
- CreateThread(kFakeThreadId);
- proc_->Halt();
- EXPECT_TRUE(proc_->SetBreakpoint(kFakeAddr1));
-
- debug::DebugEvent de = CreateBreakpointDebugEvent(kFakeThreadId, kFakeAddr2);
- proc_->OnDebugEvent(&de);
-
- EXPECT_EQ(debug::DebuggeeProcess::kHalted, proc_->state());
- EXPECT_EQ(proc_->GetThread(kFakeThreadId), proc_->GetHaltedThread());
-
- EXPECT_TRUE(proc_->ContinueAndPassExceptionToDebuggee());
- EXPECT_EQ(debug::DebuggeeProcess::kRunning, proc_->state());
-}
-
-TEST_F(DebuggeeProcessTest, Break) {
- proc_->Break();
- std::deque<debug::DebugAPIMock::FunctionId> call_list;
- call_list.push_back(debug::DebugAPIMock::kDebugBreakProcess);
- EXPECT_TRUE(fake_debug_api_.CompareCallSequence(call_list));
-}
-
-TEST_F(DebuggeeProcessTest, Detach) {
- proc_->Detach();
- std::deque<debug::DebugAPIMock::FunctionId> call_list;
- call_list.push_back(debug::DebugAPIMock::kDebugActiveProcessStop);
- EXPECT_TRUE(fake_debug_api_.CompareCallSequence(call_list));
- EXPECT_EQ(debug::DebuggeeProcess::kDead, proc_->state());
-}
-} // namespace
-

Powered by Google App Engine
This is Rietveld 408576698