[refactor] More post-NSS WebCrypto cleanups (utility functions).
[chromium-blink-merge.git] / base / debug / debugger_unittest.cc
blob0a5a0390e8ae85af030b4a47183297b943133505
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"
10 namespace {
12 #if defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
13 void CrashWithBreakDebugger() {
14 base::debug::SetSuppressDebugUI(false);
15 base::debug::BreakDebugger();
17 #if defined(OS_WIN)
18 // This should not be executed.
19 _exit(125);
20 #endif
22 #endif // defined(GTEST_HAS_DEATH_TEST)
24 } // namespace
26 // Death tests misbehave on Android.
27 #if defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
29 TEST(Debugger, CrashAtBreakpoint) {
30 EXPECT_DEATH(CrashWithBreakDebugger(), "");
33 #if defined(OS_WIN)
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)