Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(448)

Unified Diff: base/debug/stack_trace_unittest.cc

Issue 11745003: GTTF: dump registers on crash on 64-bit Linux (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« base/debug/stack_trace_posix.cc ('K') | « base/debug/stack_trace_posix.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/debug/stack_trace_unittest.cc
diff --git a/base/debug/stack_trace_unittest.cc b/base/debug/stack_trace_unittest.cc
index bfbe6ee3d693ffdfb84bcf65f777b75bc6ed785b..d2901815725c6187beaa159cbeb847699369a1b5 100644
--- a/base/debug/stack_trace_unittest.cc
+++ b/base/debug/stack_trace_unittest.cc
@@ -151,11 +151,11 @@ TEST_F(StackTraceTest, AsyncSignalUnsafeSignalHandlerHang) {
namespace {
-std::string itoa_r_wrapper(intptr_t i, size_t sz, int base) {
+std::string itoa_r_wrapper(intptr_t i, size_t sz, int base, size_t padding) {
char buffer[1024];
CHECK_LE(sz, sizeof(buffer));
- char* result = internal::itoa_r(i, buffer, sz, base);
+ char* result = internal::itoa_r(i, buffer, sz, base, padding);
EXPECT_TRUE(result);
return std::string(buffer);
}
@@ -163,47 +163,64 @@ std::string itoa_r_wrapper(intptr_t i, size_t sz, int base) {
} // namespace
TEST_F(StackTraceTest, itoa_r) {
- EXPECT_EQ("0", itoa_r_wrapper(0, 128, 10));
- EXPECT_EQ("-1", itoa_r_wrapper(-1, 128, 10));
+ EXPECT_EQ("0", itoa_r_wrapper(0, 128, 10, 0));
+ EXPECT_EQ("-1", itoa_r_wrapper(-1, 128, 10, 0));
// Test edge cases.
if (sizeof(intptr_t) == 4) {
- EXPECT_EQ("ffffffff", itoa_r_wrapper(-1, 128, 16));
+ EXPECT_EQ("ffffffff", itoa_r_wrapper(-1, 128, 16, 0));
EXPECT_EQ("-2147483648",
- itoa_r_wrapper(std::numeric_limits<intptr_t>::min(), 128, 10));
+ itoa_r_wrapper(std::numeric_limits<intptr_t>::min(), 128, 10, 0));
EXPECT_EQ("2147483647",
- itoa_r_wrapper(std::numeric_limits<intptr_t>::max(), 128, 10));
+ itoa_r_wrapper(std::numeric_limits<intptr_t>::max(), 128, 10, 0));
EXPECT_EQ("80000000",
- itoa_r_wrapper(std::numeric_limits<intptr_t>::min(), 128, 16));
+ itoa_r_wrapper(std::numeric_limits<intptr_t>::min(), 128, 16, 0));
EXPECT_EQ("7fffffff",
- itoa_r_wrapper(std::numeric_limits<intptr_t>::max(), 128, 16));
+ itoa_r_wrapper(std::numeric_limits<intptr_t>::max(), 128, 16, 0));
} else if (sizeof(intptr_t) == 8) {
- EXPECT_EQ("ffffffffffffffff", itoa_r_wrapper(-1, 128, 16));
+ EXPECT_EQ("ffffffffffffffff", itoa_r_wrapper(-1, 128, 16, 0));
EXPECT_EQ("-9223372036854775808",
- itoa_r_wrapper(std::numeric_limits<intptr_t>::min(), 128, 10));
+ itoa_r_wrapper(std::numeric_limits<intptr_t>::min(), 128, 10, 0));
EXPECT_EQ("9223372036854775807",
- itoa_r_wrapper(std::numeric_limits<intptr_t>::max(), 128, 10));
+ itoa_r_wrapper(std::numeric_limits<intptr_t>::max(), 128, 10, 0));
EXPECT_EQ("8000000000000000",
- itoa_r_wrapper(std::numeric_limits<intptr_t>::min(), 128, 16));
+ itoa_r_wrapper(std::numeric_limits<intptr_t>::min(), 128, 16, 0));
EXPECT_EQ("7fffffffffffffff",
- itoa_r_wrapper(std::numeric_limits<intptr_t>::max(), 128, 16));
+ itoa_r_wrapper(std::numeric_limits<intptr_t>::max(), 128, 16, 0));
} else {
ADD_FAILURE() << "Missing test case for your size of intptr_t ("
<< sizeof(intptr_t) << ")";
}
// Test hex output.
- EXPECT_EQ("688", itoa_r_wrapper(0x688, 128, 16));
- EXPECT_EQ("deadbeef", itoa_r_wrapper(0xdeadbeef, 128, 16));
+ EXPECT_EQ("688", itoa_r_wrapper(0x688, 128, 16, 0));
+ EXPECT_EQ("deadbeef", itoa_r_wrapper(0xdeadbeef, 128, 16, 0));
// Check that itoa_r respects passed buffer size limit.
char buffer[1024];
- EXPECT_TRUE(internal::itoa_r(0xdeadbeef, buffer, 10, 16));
- EXPECT_TRUE(internal::itoa_r(0xdeadbeef, buffer, 9, 16));
- EXPECT_FALSE(internal::itoa_r(0xdeadbeef, buffer, 8, 16));
- EXPECT_FALSE(internal::itoa_r(0xdeadbeef, buffer, 7, 16));
+ EXPECT_TRUE(internal::itoa_r(0xdeadbeef, buffer, 10, 16, 0));
+ EXPECT_TRUE(internal::itoa_r(0xdeadbeef, buffer, 9, 16, 0));
+ EXPECT_FALSE(internal::itoa_r(0xdeadbeef, buffer, 8, 16, 0));
+ EXPECT_FALSE(internal::itoa_r(0xdeadbeef, buffer, 7, 16, 0));
+ EXPECT_TRUE(internal::itoa_r(0xbeef, buffer, 5, 16, 4));
+ EXPECT_FALSE(internal::itoa_r(0xbeef, buffer, 5, 16, 5));
+ EXPECT_FALSE(internal::itoa_r(0xbeef, buffer, 5, 16, 6));
+
+ // Test padding.
+ EXPECT_EQ("1", itoa_r_wrapper(1, 128, 10, 0));
+ EXPECT_EQ("1", itoa_r_wrapper(1, 128, 10, 1));
+ EXPECT_EQ("01", itoa_r_wrapper(1, 128, 10, 2));
+ EXPECT_EQ("001", itoa_r_wrapper(1, 128, 10, 3));
+ EXPECT_EQ("0001", itoa_r_wrapper(1, 128, 10, 4));
+ EXPECT_EQ("00001", itoa_r_wrapper(1, 128, 10, 5));
+ EXPECT_EQ("688", itoa_r_wrapper(0x688, 128, 16, 0));
+ EXPECT_EQ("688", itoa_r_wrapper(0x688, 128, 16, 1));
+ EXPECT_EQ("688", itoa_r_wrapper(0x688, 128, 16, 2));
+ EXPECT_EQ("688", itoa_r_wrapper(0x688, 128, 16, 3));
+ EXPECT_EQ("0688", itoa_r_wrapper(0x688, 128, 16, 4));
+ EXPECT_EQ("00688", itoa_r_wrapper(0x688, 128, 16, 5));
}
#endif // defined(OS_POSIX) && !defined(OS_ANDROID)
« base/debug/stack_trace_posix.cc ('K') | « base/debug/stack_trace_posix.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698