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

Unified Diff: experimental/windows_debugger/debugger/core/debuggee_thread_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_thread_test.cc
diff --git a/experimental/windows_debugger/debugger/core/debuggee_thread_test.cc b/experimental/windows_debugger/debugger/core/debuggee_thread_test.cc
deleted file mode 100644
index 3ae4743556104ed6f8b1ce0ecf0f17885a3bf240..0000000000000000000000000000000000000000
--- a/experimental/windows_debugger/debugger/core/debuggee_thread_test.cc
+++ /dev/null
@@ -1,377 +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_event.h"
-#include "debugger/core/debuggee_iprocess.h"
-#include "debugger/core/debuggee_process_mock.h"
-#include "debugger/core/debuggee_thread.h"
-#include "gtest/gtest.h"
-
-namespace {
-const int kFakeProcessId = 847;
-const int kFakeThreadId = 378421;
-const int kFakeThreadId2 = 308421;
-HANDLE kFakeThreadHandle = 0;
-HANDLE kFakeProcessHandle = 0;
-HANDLE kFakeFileHandle = 0;
-
-const int kNexeThreadStarted = 1;
-const int kThreadHalted = 2;
-const int kThreadRunning = 3;
-
-const char* kNexeUuid =
- "{7AA7C9CF-89EC-4ed3-8DAD-6DC84302AB11} -v 1"
- " -event NaClThreadStart -mb c0000000 -ep 20080";
-const void* kNexeMemBaseAddr = reinterpret_cast<void*>(0xc0000000);
-const void* kNexeEntryPoint = reinterpret_cast<void*>(0x20080);
-const debug::DebuggeeThread* kNullThread =
- reinterpret_cast<debug::DebuggeeThread*>(0);
-const char* kNullCharPtr = reinterpret_cast<char*>(0);
-
-class TestableDebuggeeThread : public debug::DebuggeeThread {
- public:
- TestableDebuggeeThread(int id,
- HANDLE handle,
- debug::IDebuggeeProcess* parent_process)
- : debug::DebuggeeThread(id, handle, parent_process) {}
-
- void Kill() { debug::DebuggeeThread::Kill(); }
- void OnDebugEvent(debug::DebugEvent* debug_event) {
- debug::DebuggeeThread::OnDebugEvent(debug_event);
- }
- bool Continue(debug::DebuggeeThread::ContinueOption option) {
- return debug::DebuggeeThread::Continue(option);
- }
- debug::IDebuggeeProcess& parent_process() {
- return debug::DebuggeeThread::parent_process();
- }
- debug::DebugAPI& debug_api() { return debug::DebuggeeThread::debug_api(); }
-
- void SimulateBreakpointHit() {
- DEBUG_EVENT wde;
- memset(&wde, 0, sizeof(wde));
- wde.dwDebugEventCode = EXCEPTION_DEBUG_EVENT;
- wde.u.Exception.ExceptionRecord.ExceptionCode = EXCEPTION_BREAKPOINT;
- wde.dwThreadId = id();
-
- debug::DebugEvent de;
- de.set_windows_debug_event(wde);
- OnDebugEvent(&de);
- }
-};
-
-// DebuggeeThread test fixture.
-class DebuggeeThreadTest : public ::testing::Test {
- public:
- DebuggeeThreadTest() {
- fake_proc_ = new debug::DebuggeeProcessMock(&fake_debug_api_);
- fake_proc_->AddThread(kFakeThreadId2, kFakeThreadHandle);
-
- no_thread_ = new TestableDebuggeeThread(kFakeThreadId,
- kFakeThreadHandle,
- fake_proc_);
-
- this_thread_ = new TestableDebuggeeThread(GetCurrentThreadId(),
- GetCurrentThread(),
- fake_proc_);
-
- fake_thread_ = new TestableDebuggeeThread(kFakeThreadId,
- kFakeThreadHandle,
- fake_proc_);
- DEBUG_EVENT wde;
- memset(&wde, 0, sizeof(wde));
- wde.dwDebugEventCode = CREATE_THREAD_DEBUG_EVENT;
- wde.dwProcessId = fake_proc_->id();
- wde.dwThreadId = kFakeThreadId;
-
- debug::DebugEvent de;
- de.set_windows_debug_event(wde);
- fake_proc_->OnDebugEvent(&de);
- }
-
- ~DebuggeeThreadTest() {
- delete fake_proc_;
- delete fake_thread_;
- delete no_thread_;
- delete this_thread_;
- }
-
- void InitDebugEventWithString(const char* str,
- int addr,
- debug::DebugEvent* de) {
- DEBUG_EVENT wde;
- memset(&wde, 0, sizeof(wde));
- wde.dwDebugEventCode = OUTPUT_DEBUG_STRING_EVENT;
- wde.u.DebugString.lpDebugStringData = reinterpret_cast<char*>(addr);
- wde.u.DebugString.nDebugStringLength = static_cast<WORD>(strlen(str));
- fake_proc_->WriteMemory(
- wde.u.DebugString.lpDebugStringData,
- strlen(str),
- str);
- de->set_windows_debug_event(wde);
- }
-
- TestableDebuggeeThread* no_thread_;
- TestableDebuggeeThread* this_thread_;
- debug::DebuggeeProcessMock* fake_proc_;
- TestableDebuggeeThread* fake_thread_;
- debug::DebugAPIMock fake_debug_api_;
-};
-
-TEST_F(DebuggeeThreadTest, SimpleAccessors) {
- EXPECT_EQ(fake_proc_, &no_thread_->parent_process());
- EXPECT_EQ(kFakeThreadId, no_thread_->id());
- EXPECT_EQ(&fake_proc_->debug_api(), &no_thread_->debug_api());
- EXPECT_EQ(debug::DebuggeeThread::kHalted, no_thread_->state());
- EXPECT_STREQ("kHalted",
- debug::DebuggeeThread::GetStateName(no_thread_->state()));
-}
-
-TEST_F(DebuggeeThreadTest, Nothread) {
- EXPECT_FALSE(no_thread_->IsNaClAppThread());
- EXPECT_TRUE(no_thread_->IsHalted());
- CONTEXT context;
- EXPECT_TRUE(no_thread_->GetContext(&context));
- EXPECT_TRUE(no_thread_->SetContext(context));
-
- WOW64_CONTEXT wow;
- EXPECT_TRUE(no_thread_->GetWowContext(&wow));
- EXPECT_TRUE(no_thread_->SetWowContext(wow));
-}
-
-TEST_F(DebuggeeThreadTest, NothreadShallNotCrash) {
- no_thread_->Kill();
- no_thread_->Continue(debug::DebuggeeThread::kContinue);
- no_thread_->Continue(debug::DebuggeeThread::kContinueAndPassException);
- no_thread_->Continue(debug::DebuggeeThread::kSingleStep);
- no_thread_->SetIP(NULL);
-
- debug::DebugEvent de;
- no_thread_->OnDebugEvent(&de);
-}
-
-TEST_F(DebuggeeThreadTest, SimpleAccessorsForThisThread) {
- EXPECT_EQ(GetCurrentThreadId(), this_thread_->id());
-}
-
-TEST_F(DebuggeeThreadTest, ReadRegsForThisThread) {
- CONTEXT zeroed_context;
- memset(&zeroed_context, 0, sizeof(zeroed_context));
- CONTEXT context;
- EXPECT_TRUE(this_thread_->GetContext(&context));
- EXPECT_NE(0, memcmp(&context, &zeroed_context, sizeof(context)));
- const void* zero_ip = 0;
- EXPECT_NE(zero_ip, this_thread_->GetIP());
-}
-
-TEST_F(DebuggeeThreadTest, RecvDebugUnicodeStringAndHalt) {
- DEBUG_EVENT wde;
- memset(&wde, 0, sizeof(wde));
- wde.dwDebugEventCode = OUTPUT_DEBUG_STRING_EVENT;
- wde.u.DebugString.fUnicode = 1;
-
- debug::DebugEvent de;
- de.set_windows_debug_event(wde);
- no_thread_->OnDebugEvent(&de);
- EXPECT_TRUE(no_thread_->IsHalted());
-}
-
-TEST_F(DebuggeeThreadTest, RecvDebugStringB) {
- debug::DebugEvent de;
- InitDebugEventWithString("abc", 1, &de);
-
- fake_thread_->OnDebugEvent(&de);
- EXPECT_TRUE(fake_thread_->IsHalted());
- EXPECT_EQ(debug::DebugEvent::kNotNaClDebugEvent, de.nacl_debug_event_code());
-}
-
-TEST_F(DebuggeeThreadTest, RecvNexeDebugString) {
- debug::DebugEvent de;
- InitDebugEventWithString(kNexeUuid, 2, &de);
-
- fake_thread_->OnDebugEvent(&de);
- EXPECT_TRUE(fake_thread_->IsHalted());
- EXPECT_EQ(debug::DebugEvent::kThreadIsAboutToStart,
- de.nacl_debug_event_code());
-}
-
-TEST_F(DebuggeeThreadTest, RecvNexeDebugStringValidateParams) {
- debug::DebugEvent de;
- InitDebugEventWithString(kNexeUuid, 2, &de);
- fake_thread_->OnDebugEvent(&de);
-
- EXPECT_TRUE(fake_thread_->IsNaClAppThread());
- EXPECT_EQ(kNexeMemBaseAddr, fake_proc_->nexe_mem_base());
- EXPECT_EQ(kNexeEntryPoint, fake_proc_->nexe_entry_point());
-}
-
-TEST_F(DebuggeeThreadTest, RecvNexeDebugStringAndContinue) {
- debug::DebugEvent de;
- InitDebugEventWithString(kNexeUuid, 2, &de);
-
- fake_thread_->OnDebugEvent(&de);
-
- EXPECT_TRUE(fake_thread_->IsHalted());
- EXPECT_EQ(debug::DebuggeeThread::kHalted, fake_thread_->state());
-
- fake_thread_->Continue(debug::DebuggeeThread::kContinue);
- EXPECT_FALSE(fake_thread_->IsHalted());
- EXPECT_EQ(debug::DebuggeeThread::kRunning, fake_thread_->state());
- EXPECT_FALSE(fake_debug_api_.single_step_enabled_);
-}
-
-TEST_F(DebuggeeThreadTest, RecvNexeDebugStringAndContinueB) {
- debug::DebugEvent de;
- InitDebugEventWithString(kNexeUuid, 2, &de);
- fake_thread_->OnDebugEvent(&de);
-
- fake_thread_->Continue(debug::DebuggeeThread::kContinueAndPassException);
- EXPECT_FALSE(fake_thread_->IsHalted());
- EXPECT_EQ(debug::DebuggeeThread::kRunning, fake_thread_->state());
- EXPECT_FALSE(fake_debug_api_.single_step_enabled_);
-}
-
-TEST_F(DebuggeeThreadTest, RecvNexeDebugStringAndContinueVerifyCallList) {
- debug::DebugEvent de;
- InitDebugEventWithString(kNexeUuid, 2, &de);
- fake_thread_->OnDebugEvent(&de);
-
- fake_debug_api_.ClearCallSequence();
- fake_thread_->Continue(debug::DebuggeeThread::kContinue);
-
- std::deque<debug::DebugAPIMock::FunctionId> call_list;
- call_list.push_back(debug::DebugAPIMock::kContinueDebugEvent);
- EXPECT_TRUE(fake_debug_api_.CompareCallSequence(call_list));
-}
-
-TEST_F(DebuggeeThreadTest, RecvNexeDebugStringAndContinueVerifyCallListB) {
- debug::DebugEvent de;
- InitDebugEventWithString(kNexeUuid, 2, &de);
- fake_thread_->OnDebugEvent(&de);
-
- fake_debug_api_.ClearCallSequence();
- fake_thread_->Continue(debug::DebuggeeThread::kContinueAndPassException);
-
- std::deque<debug::DebugAPIMock::FunctionId> call_list;
- call_list.push_back(debug::DebugAPIMock::kContinueDebugEvent);
- EXPECT_TRUE(fake_debug_api_.CompareCallSequence(call_list));
-}
-
-TEST_F(DebuggeeThreadTest, RecvNexeDebugStringAndSingleStep) {
- debug::DebugEvent de;
- InitDebugEventWithString(kNexeUuid, 2, &de);
-
- fake_thread_->OnDebugEvent(&de);
- EXPECT_TRUE(fake_thread_->IsHalted());
-
- fake_thread_->Continue(debug::DebuggeeThread::kSingleStep);
- EXPECT_FALSE(fake_thread_->IsHalted());
- EXPECT_TRUE(fake_debug_api_.single_step_enabled_);
-}
-
-TEST_F(DebuggeeThreadTest, RecvNexeDebugStringAndSingleStepVerifyCallList) {
- fake_debug_api_.ClearCallSequence();
-
- debug::DebugEvent de;
- InitDebugEventWithString(kNexeUuid, 2, &de);
- fake_thread_->OnDebugEvent(&de);
- fake_thread_->Continue(debug::DebuggeeThread::kSingleStep);
-
- std::deque<debug::DebugAPIMock::FunctionId> call_list;
- call_list.push_back(debug::DebugAPIMock::kGetThreadContext);
- call_list.push_back(debug::DebugAPIMock::kSetThreadContext);
- call_list.push_back(debug::DebugAPIMock::kGetThreadContext);
- call_list.push_back(debug::DebugAPIMock::kSetThreadContext);
- call_list.push_back(debug::DebugAPIMock::kContinueDebugEvent);
-
- EXPECT_TRUE(fake_debug_api_.CompareCallSequence(call_list));
-}
-
-TEST_F(DebuggeeThreadTest, Kill) {
- TestableDebuggeeThread thread(1, reinterpret_cast<HANDLE>(1), fake_proc_);
- fake_debug_api_.ClearCallSequence();
- thread.Kill();
-
- std::deque<debug::DebugAPIMock::FunctionId> call_list;
- call_list.push_back(debug::DebugAPIMock::kTerminateThread);
- EXPECT_TRUE(fake_debug_api_.CompareCallSequence(call_list));
-}
-
-TEST_F(DebuggeeThreadTest, SetContextVerifyCallList) {
- fake_debug_api_.ClearCallSequence();
- debug::DebuggeeThread thread(1, reinterpret_cast<HANDLE>(1), fake_proc_);
-
- CONTEXT ct;
- thread.GetContext(&ct);
- thread.SetContext(ct);
-
- std::deque<debug::DebugAPIMock::FunctionId> call_list;
- call_list.push_back(debug::DebugAPIMock::kGetThreadContext);
- call_list.push_back(debug::DebugAPIMock::kSetThreadContext);
- EXPECT_TRUE(fake_debug_api_.CompareCallSequence(call_list));
-}
-
-TEST_F(DebuggeeThreadTest, RecvAlienBreakpoint) {
- fake_thread_->SimulateBreakpointHit();
- EXPECT_TRUE(fake_thread_->IsHalted());
-}
-
-TEST_F(DebuggeeThreadTest, FailContinue) {
- fake_thread_->SimulateBreakpointHit();
- EXPECT_TRUE(fake_thread_->IsHalted());
- EXPECT_TRUE(fake_thread_->Continue(debug::DebuggeeThread::kContinue));
- EXPECT_FALSE(fake_thread_->IsHalted());
- EXPECT_FALSE(fake_thread_->Continue(debug::DebuggeeThread::kContinue));
- EXPECT_FALSE(fake_thread_->IsHalted());
-
- fake_thread_->SimulateBreakpointHit();
- EXPECT_TRUE(fake_thread_->IsHalted());
- EXPECT_TRUE(fake_thread_->Continue(debug::DebuggeeThread::kSingleStep));
- EXPECT_FALSE(fake_thread_->IsHalted());
- EXPECT_FALSE(fake_thread_->Continue(debug::DebuggeeThread::kSingleStep));
- EXPECT_FALSE(fake_thread_->IsHalted());
-
- fake_thread_->SimulateBreakpointHit();
- EXPECT_TRUE(fake_thread_->IsHalted());
- EXPECT_TRUE(fake_thread_->Continue(
- debug::DebuggeeThread::kContinueAndPassException));
- EXPECT_FALSE(fake_thread_->IsHalted());
- EXPECT_FALSE(fake_thread_->Continue(
- debug::DebuggeeThread::kContinueAndPassException));
- EXPECT_FALSE(fake_thread_->IsHalted());
-}
-
-TEST_F(DebuggeeThreadTest, FailIfNotHalted) {
- fake_thread_->SimulateBreakpointHit();
- EXPECT_TRUE(fake_thread_->IsHalted());
- EXPECT_TRUE(fake_thread_->Continue(debug::DebuggeeThread::kContinue));
-
- EXPECT_FALSE(fake_thread_->IsHalted());
- CONTEXT context;
- EXPECT_FALSE(fake_thread_->GetContext(&context));
- EXPECT_FALSE(fake_thread_->SetContext(context));
-
- WOW64_CONTEXT wow_ctx;
- EXPECT_FALSE(fake_thread_->GetWowContext(&wow_ctx));
- EXPECT_FALSE(fake_thread_->SetWowContext(wow_ctx));
-
- EXPECT_EQ(NULL, fake_thread_->GetIP());
- EXPECT_FALSE(fake_thread_->SetIP(NULL));
-}
-
-TEST_F(DebuggeeThreadTest, NotFailIfHalted) {
- EXPECT_TRUE(fake_thread_->IsHalted());
- CONTEXT context;
- EXPECT_TRUE(fake_thread_->GetContext(&context));
- EXPECT_TRUE(fake_thread_->SetContext(context));
-
- WOW64_CONTEXT wow_ctx;
- EXPECT_TRUE(fake_thread_->GetWowContext(&wow_ctx));
- EXPECT_TRUE(fake_thread_->SetWowContext(wow_ctx));
-
- EXPECT_TRUE(fake_thread_->SetIP(NULL));
-}
-
-} // namespace
-

Powered by Google App Engine
This is Rietveld 408576698