1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/debug/debugger.h"
7 #include "build/build_config.h"
8 #include "testing/gtest/include/gtest/gtest.h"
12 #if defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
13 void CrashWithBreakDebugger() {
14 base::debug::SetSuppressDebugUI(false);
15 base::debug::BreakDebugger();
18 // This should not be executed.
22 #endif // defined(GTEST_HAS_DEATH_TEST)
26 // Death tests misbehave on Android.
27 #if defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
29 TEST(Debugger
, CrashAtBreakpoint
) {
30 EXPECT_DEATH(CrashWithBreakDebugger(), "");
34 TEST(Debugger
, DoesntExecuteBeyondBreakpoint
) {
35 EXPECT_EXIT(CrashWithBreakDebugger(),
36 ::testing::ExitedWithCode(0x80000003), "");
38 #endif // defined(OS_WIN)
40 #else // defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
41 TEST(Debugger
, NoTest
) {
43 #endif // defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)