| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <sstream> | 8 #include <sstream> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 | 115 |
| 116 // Expect to find this function as well. | 116 // Expect to find this function as well. |
| 117 // Note: This will fail if not linked with -rdynamic (aka -export_dynamic) | 117 // Note: This will fail if not linked with -rdynamic (aka -export_dynamic) |
| 118 EXPECT_TRUE(backtrace_message.find(__func__) != std::string::npos) | 118 EXPECT_TRUE(backtrace_message.find(__func__) != std::string::npos) |
| 119 << "Expected to find " << __func__ << " in backtrace:\n" | 119 << "Expected to find " << __func__ << " in backtrace:\n" |
| 120 << backtrace_message; | 120 << backtrace_message; |
| 121 | 121 |
| 122 #endif // define(OS_MACOSX) | 122 #endif // define(OS_MACOSX) |
| 123 } | 123 } |
| 124 | 124 |
| 125 TEST_F(StackTraceTest, TruncatedTrace) { |
| 126 StackTrace trace; |
| 127 |
| 128 size_t count = 0; |
| 129 trace.Addresses(&count); |
| 130 ASSERT_LT(2u, count); |
| 131 |
| 132 StackTrace truncated(2); |
| 133 truncated.Addresses(&count); |
| 134 EXPECT_EQ(2u, count); |
| 135 } |
| 136 |
| 125 // The test is used for manual testing, e.g., to see the raw output. | 137 // The test is used for manual testing, e.g., to see the raw output. |
| 126 TEST_F(StackTraceTest, DebugOutputToStream) { | 138 TEST_F(StackTraceTest, DebugOutputToStream) { |
| 127 StackTrace trace; | 139 StackTrace trace; |
| 128 std::ostringstream os; | 140 std::ostringstream os; |
| 129 trace.OutputToStream(&os); | 141 trace.OutputToStream(&os); |
| 130 VLOG(1) << os.str(); | 142 VLOG(1) << os.str(); |
| 131 } | 143 } |
| 132 | 144 |
| 133 // The test is used for manual testing, e.g., to see the raw output. | 145 // The test is used for manual testing, e.g., to see the raw output. |
| 134 TEST_F(StackTraceTest, DebugPrintBacktrace) { | 146 TEST_F(StackTraceTest, DebugPrintBacktrace) { |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 TEST_F(StackTraceTest, MAYBE_TraceStackFramePointers) { | 296 TEST_F(StackTraceTest, MAYBE_TraceStackFramePointers) { |
| 285 constexpr size_t kDepth = 5; | 297 constexpr size_t kDepth = 5; |
| 286 const void* frames[kDepth]; | 298 const void* frames[kDepth]; |
| 287 ExpectStackFramePointers<kDepth>(frames, kDepth); | 299 ExpectStackFramePointers<kDepth>(frames, kDepth); |
| 288 } | 300 } |
| 289 | 301 |
| 290 #endif // HAVE_TRACE_STACK_FRAME_POINTERS | 302 #endif // HAVE_TRACE_STACK_FRAME_POINTERS |
| 291 | 303 |
| 292 } // namespace debug | 304 } // namespace debug |
| 293 } // namespace base | 305 } // namespace base |
| OLD | NEW |