| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/strings/string_number_conversions.h" | 5 #include "base/strings/string_number_conversions.h" |
| 6 | 6 |
| 7 #include <errno.h> | 7 #include <errno.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <stdio.h> | 9 #include <stdio.h> |
| 10 | 10 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 | 22 |
| 23 template <typename INT> | 23 template <typename INT> |
| 24 struct IntToStringTest { | 24 struct IntToStringTest { |
| 25 INT num; | 25 INT num; |
| 26 const char* sexpected; | 26 const char* sexpected; |
| 27 const char* uexpected; | 27 const char* uexpected; |
| 28 }; | 28 }; |
| 29 | 29 |
| 30 } // namespace | 30 } // namespace |
| 31 | 31 |
| 32 #if !defined(STRING_NUMBER_CONVERSIONS_DETECT_RISKY_CONVERSIONS) |
| 33 |
| 32 TEST(StringNumberConversionsTest, IntToString) { | 34 TEST(StringNumberConversionsTest, IntToString) { |
| 33 static const IntToStringTest<int> int_tests[] = { | 35 static const IntToStringTest<int> int_tests[] = { |
| 34 { 0, "0", "0" }, | 36 { 0, "0", "0" }, |
| 35 { -1, "-1", "4294967295" }, | 37 { -1, "-1", "4294967295" }, |
| 36 { std::numeric_limits<int>::max(), "2147483647", "2147483647" }, | 38 { std::numeric_limits<int>::max(), "2147483647", "2147483647" }, |
| 37 { std::numeric_limits<int>::min(), "-2147483648", "2147483648" }, | 39 { std::numeric_limits<int>::min(), "-2147483648", "2147483648" }, |
| 38 }; | 40 }; |
| 39 static const IntToStringTest<int64> int64_tests[] = { | 41 static const IntToStringTest<int64> int64_tests[] = { |
| 40 { 0, "0", "0" }, | 42 { 0, "0", "0" }, |
| 41 { -1, "-1", "18446744073709551615" }, | 43 { -1, "-1", "18446744073709551615" }, |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 uint64 output; | 355 uint64 output; |
| 354 EXPECT_FALSE(StringToUint64(input_string, &output)); | 356 EXPECT_FALSE(StringToUint64(input_string, &output)); |
| 355 EXPECT_EQ(6U, output); | 357 EXPECT_EQ(6U, output); |
| 356 | 358 |
| 357 string16 utf16_input = UTF8ToUTF16(input_string); | 359 string16 utf16_input = UTF8ToUTF16(input_string); |
| 358 output = 0; | 360 output = 0; |
| 359 EXPECT_FALSE(StringToUint64(utf16_input, &output)); | 361 EXPECT_FALSE(StringToUint64(utf16_input, &output)); |
| 360 EXPECT_EQ(6U, output); | 362 EXPECT_EQ(6U, output); |
| 361 } | 363 } |
| 362 | 364 |
| 365 #endif // !defined(STRING_NUMBER_CONVERSIONS_DETECT_RISKY_CONVERSIONS) |
| 366 |
| 363 TEST(StringNumberConversionsTest, StringToSizeT) { | 367 TEST(StringNumberConversionsTest, StringToSizeT) { |
| 364 size_t size_t_max = std::numeric_limits<size_t>::max(); | 368 size_t size_t_max = std::numeric_limits<size_t>::max(); |
| 365 std::string size_t_max_string = StringPrintf("%" PRIuS, size_t_max); | 369 std::string size_t_max_string = StringPrintf("%" PRIuS, size_t_max); |
| 366 | 370 |
| 367 static const struct { | 371 static const struct { |
| 368 std::string input; | 372 std::string input; |
| 369 size_t output; | 373 size_t output; |
| 370 bool success; | 374 bool success; |
| 371 } cases[] = { | 375 } cases[] = { |
| 372 {"0", 0, true}, | 376 {"0", 0, true}, |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 787 | 791 |
| 788 TEST(StringNumberConversionsTest, HexEncode) { | 792 TEST(StringNumberConversionsTest, HexEncode) { |
| 789 std::string hex(HexEncode(NULL, 0)); | 793 std::string hex(HexEncode(NULL, 0)); |
| 790 EXPECT_EQ(hex.length(), 0U); | 794 EXPECT_EQ(hex.length(), 0U); |
| 791 unsigned char bytes[] = {0x01, 0xff, 0x02, 0xfe, 0x03, 0x80, 0x81}; | 795 unsigned char bytes[] = {0x01, 0xff, 0x02, 0xfe, 0x03, 0x80, 0x81}; |
| 792 hex = HexEncode(bytes, sizeof(bytes)); | 796 hex = HexEncode(bytes, sizeof(bytes)); |
| 793 EXPECT_EQ(hex.compare("01FF02FE038081"), 0); | 797 EXPECT_EQ(hex.compare("01FF02FE038081"), 0); |
| 794 } | 798 } |
| 795 | 799 |
| 796 } // namespace base | 800 } // namespace base |
| OLD | NEW |