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 |