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) |