You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.1 KiB
44 lines
1.1 KiB
// Copyright 2014 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.
|
|
|
|
#include "base/debug/debugger.h"
|
|
|
|
#include "build/build_config.h"
|
|
#include "testing/gtest/include/gtest/gtest.h"
|
|
|
|
namespace {
|
|
|
|
#if defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
|
|
void CrashWithBreakDebugger() {
|
|
base::debug::SetSuppressDebugUI(false);
|
|
base::debug::BreakDebugger();
|
|
|
|
#if defined(OS_WIN)
|
|
// This should not be executed.
|
|
_exit(125);
|
|
#endif
|
|
}
|
|
#endif // defined(GTEST_HAS_DEATH_TEST)
|
|
|
|
} // namespace
|
|
|
|
// Death tests misbehave on Android.
|
|
#if defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
|
|
|
|
TEST(Debugger, CrashAtBreakpoint) {
|
|
EXPECT_DEATH(CrashWithBreakDebugger(), "");
|
|
}
|
|
|
|
#if defined(OS_WIN)
|
|
TEST(Debugger, DoesntExecuteBeyondBreakpoint) {
|
|
EXPECT_EXIT(CrashWithBreakDebugger(),
|
|
::testing::ExitedWithCode(0x80000003), "");
|
|
}
|
|
#endif // defined(OS_WIN)
|
|
|
|
#else // defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
|
|
TEST(Debugger, NoTest) {
|
|
}
|
|
#endif // defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
|