| 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 #if !defined(OFFICIAL_BUILD) |
| 126 // Disabled in Official builds, where Link-Time Optimization can result in two |
| 127 // or fewer stack frames being available, causing the test to fail. |
| 125 TEST_F(StackTraceTest, TruncatedTrace) { | 128 TEST_F(StackTraceTest, TruncatedTrace) { |
| 126 StackTrace trace; | 129 StackTrace trace; |
| 127 | 130 |
| 128 size_t count = 0; | 131 size_t count = 0; |
| 129 trace.Addresses(&count); | 132 trace.Addresses(&count); |
| 130 ASSERT_LT(2u, count); | 133 ASSERT_LT(2u, count); |
| 131 | 134 |
| 132 StackTrace truncated(2); | 135 StackTrace truncated(2); |
| 133 truncated.Addresses(&count); | 136 truncated.Addresses(&count); |
| 134 EXPECT_EQ(2u, count); | 137 EXPECT_EQ(2u, count); |
| 135 } | 138 } |
| 139 #endif // !defined(OFFICIAL_BUILD) |
| 136 | 140 |
| 137 // The test is used for manual testing, e.g., to see the raw output. | 141 // The test is used for manual testing, e.g., to see the raw output. |
| 138 TEST_F(StackTraceTest, DebugOutputToStream) { | 142 TEST_F(StackTraceTest, DebugOutputToStream) { |
| 139 StackTrace trace; | 143 StackTrace trace; |
| 140 std::ostringstream os; | 144 std::ostringstream os; |
| 141 trace.OutputToStream(&os); | 145 trace.OutputToStream(&os); |
| 142 VLOG(1) << os.str(); | 146 VLOG(1) << os.str(); |
| 143 } | 147 } |
| 144 | 148 |
| 145 // The test is used for manual testing, e.g., to see the raw output. | 149 // The test is used for manual testing, e.g., to see the raw output. |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 296 TEST_F(StackTraceTest, MAYBE_TraceStackFramePointers) { | 300 TEST_F(StackTraceTest, MAYBE_TraceStackFramePointers) { |
| 297 constexpr size_t kDepth = 5; | 301 constexpr size_t kDepth = 5; |
| 298 const void* frames[kDepth]; | 302 const void* frames[kDepth]; |
| 299 ExpectStackFramePointers<kDepth>(frames, kDepth); | 303 ExpectStackFramePointers<kDepth>(frames, kDepth); |
| 300 } | 304 } |
| 301 | 305 |
| 302 #endif // HAVE_TRACE_STACK_FRAME_POINTERS | 306 #endif // HAVE_TRACE_STACK_FRAME_POINTERS |
| 303 | 307 |
| 304 } // namespace debug | 308 } // namespace debug |
| 305 } // namespace base | 309 } // namespace base |
| OLD | NEW |