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

Side by Side Diff: base/strings/string_number_conversions_unittest.cc

Issue 1128203010: base: Remove the remaining usage GG_(U)INTn_C macros. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review Created 5 years, 7 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 unified diff | Download patch
« no previous file with comments | « base/rand_util.cc ('k') | base/time/time_mac.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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"
6
5 #include <errno.h> 7 #include <errno.h>
6 #include <stdint.h> 8 #include <stdint.h>
7 #include <stdio.h> 9 #include <stdio.h>
8 10
9 #include <cmath> 11 #include <cmath>
10 #include <limits> 12 #include <limits>
11 13
12 #include "base/format_macros.h" 14 #include "base/format_macros.h"
13 #include "base/strings/string_number_conversions.h"
14 #include "base/strings/stringprintf.h" 15 #include "base/strings/stringprintf.h"
15 #include "base/strings/utf_string_conversions.h" 16 #include "base/strings/utf_string_conversions.h"
16 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
17 18
18 namespace base { 19 namespace base {
19 20
20 namespace { 21 namespace {
21 22
22 template <typename INT> 23 template <typename INT>
23 struct IntToStringTest { 24 struct IntToStringTest {
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 TEST(StringNumberConversionsTest, StringToInt64) { 231 TEST(StringNumberConversionsTest, StringToInt64) {
231 static const struct { 232 static const struct {
232 std::string input; 233 std::string input;
233 int64 output; 234 int64 output;
234 bool success; 235 bool success;
235 } cases[] = { 236 } cases[] = {
236 {"0", 0, true}, 237 {"0", 0, true},
237 {"42", 42, true}, 238 {"42", 42, true},
238 {"-2147483648", INT_MIN, true}, 239 {"-2147483648", INT_MIN, true},
239 {"2147483647", INT_MAX, true}, 240 {"2147483647", INT_MAX, true},
240 {"-2147483649", GG_INT64_C(-2147483649), true}, 241 {"-2147483649", INT64_C(-2147483649), true},
241 {"-99999999999", GG_INT64_C(-99999999999), true}, 242 {"-99999999999", INT64_C(-99999999999), true},
242 {"2147483648", GG_INT64_C(2147483648), true}, 243 {"2147483648", INT64_C(2147483648), true},
243 {"99999999999", GG_INT64_C(99999999999), true}, 244 {"99999999999", INT64_C(99999999999), true},
244 {"9223372036854775807", kint64max, true}, 245 {"9223372036854775807", kint64max, true},
245 {"-9223372036854775808", kint64min, true}, 246 {"-9223372036854775808", kint64min, true},
246 {"09", 9, true}, 247 {"09", 9, true},
247 {"-09", -9, true}, 248 {"-09", -9, true},
248 {"", 0, false}, 249 {"", 0, false},
249 {" 42", 42, false}, 250 {" 42", 42, false},
250 {"42 ", 42, false}, 251 {"42 ", 42, false},
251 {"0x42", 0, false}, 252 {"0x42", 0, false},
252 {"\t\n\v\f\r 42", 42, false}, 253 {"\t\n\v\f\r 42", 42, false},
253 {"blah42", 0, false}, 254 {"blah42", 0, false},
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 std::string input; 298 std::string input;
298 uint64 output; 299 uint64 output;
299 bool success; 300 bool success;
300 } cases[] = { 301 } cases[] = {
301 {"0", 0, true}, 302 {"0", 0, true},
302 {"42", 42, true}, 303 {"42", 42, true},
303 {"-2147483648", 0, false}, 304 {"-2147483648", 0, false},
304 {"2147483647", INT_MAX, true}, 305 {"2147483647", INT_MAX, true},
305 {"-2147483649", 0, false}, 306 {"-2147483649", 0, false},
306 {"-99999999999", 0, false}, 307 {"-99999999999", 0, false},
307 {"2147483648", GG_UINT64_C(2147483648), true}, 308 {"2147483648", UINT64_C(2147483648), true},
308 {"99999999999", GG_UINT64_C(99999999999), true}, 309 {"99999999999", UINT64_C(99999999999), true},
309 {"9223372036854775807", kint64max, true}, 310 {"9223372036854775807", kint64max, true},
310 {"-9223372036854775808", 0, false}, 311 {"-9223372036854775808", 0, false},
311 {"09", 9, true}, 312 {"09", 9, true},
312 {"-09", 0, false}, 313 {"-09", 0, false},
313 {"", 0, false}, 314 {"", 0, false},
314 {" 42", 42, false}, 315 {" 42", 42, false},
315 {"42 ", 42, false}, 316 {"42 ", 42, false},
316 {"0x42", 0, false}, 317 {"0x42", 0, false},
317 {"\t\n\v\f\r 42", 42, false}, 318 {"\t\n\v\f\r 42", 42, false},
318 {"blah42", 0, false}, 319 {"blah42", 0, false},
319 {"42blah", 42, false}, 320 {"42blah", 42, false},
320 {"blah42blah", 0, false}, 321 {"blah42blah", 0, false},
321 {"-273.15", 0, false}, 322 {"-273.15", 0, false},
322 {"+98.6", 98, false}, 323 {"+98.6", 98, false},
323 {"--123", 0, false}, 324 {"--123", 0, false},
324 {"++123", 0, false}, 325 {"++123", 0, false},
325 {"-+123", 0, false}, 326 {"-+123", 0, false},
326 {"+-123", 0, false}, 327 {"+-123", 0, false},
327 {"-", 0, false}, 328 {"-", 0, false},
328 {"-9223372036854775809", 0, false}, 329 {"-9223372036854775809", 0, false},
329 {"-99999999999999999999", 0, false}, 330 {"-99999999999999999999", 0, false},
330 {"9223372036854775808", GG_UINT64_C(9223372036854775808), true}, 331 {"9223372036854775808", UINT64_C(9223372036854775808), true},
331 {"99999999999999999999", kuint64max, false}, 332 {"99999999999999999999", kuint64max, false},
332 {"18446744073709551615", kuint64max, true}, 333 {"18446744073709551615", kuint64max, true},
333 {"18446744073709551616", kuint64max, false}, 334 {"18446744073709551616", kuint64max, false},
334 }; 335 };
335 336
336 for (size_t i = 0; i < arraysize(cases); ++i) { 337 for (size_t i = 0; i < arraysize(cases); ++i) {
337 uint64 output = 0; 338 uint64 output = 0;
338 EXPECT_EQ(cases[i].success, StringToUint64(cases[i].input, &output)); 339 EXPECT_EQ(cases[i].success, StringToUint64(cases[i].input, &output));
339 EXPECT_EQ(cases[i].output, output); 340 EXPECT_EQ(cases[i].output, output);
340 341
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 TEST(StringNumberConversionsTest, HexStringToInt64) { 544 TEST(StringNumberConversionsTest, HexStringToInt64) {
544 static const struct { 545 static const struct {
545 std::string input; 546 std::string input;
546 int64 output; 547 int64 output;
547 bool success; 548 bool success;
548 } cases[] = { 549 } cases[] = {
549 {"0", 0, true}, 550 {"0", 0, true},
550 {"42", 66, true}, 551 {"42", 66, true},
551 {"-42", -66, true}, 552 {"-42", -66, true},
552 {"+42", 66, true}, 553 {"+42", 66, true},
553 {"40acd88557b", GG_INT64_C(4444444448123), true}, 554 {"40acd88557b", INT64_C(4444444448123), true},
554 {"7fffffff", INT_MAX, true}, 555 {"7fffffff", INT_MAX, true},
555 {"-80000000", INT_MIN, true}, 556 {"-80000000", INT_MIN, true},
556 {"ffffffff", 0xffffffff, true}, 557 {"ffffffff", 0xffffffff, true},
557 {"DeadBeef", 0xdeadbeef, true}, 558 {"DeadBeef", 0xdeadbeef, true},
558 {"0x42", 66, true}, 559 {"0x42", 66, true},
559 {"-0x42", -66, true}, 560 {"-0x42", -66, true},
560 {"+0x42", 66, true}, 561 {"+0x42", 66, true},
561 {"0x40acd88557b", GG_INT64_C(4444444448123), true}, 562 {"0x40acd88557b", INT64_C(4444444448123), true},
562 {"0x7fffffff", INT_MAX, true}, 563 {"0x7fffffff", INT_MAX, true},
563 {"-0x80000000", INT_MIN, true}, 564 {"-0x80000000", INT_MIN, true},
564 {"0xffffffff", 0xffffffff, true}, 565 {"0xffffffff", 0xffffffff, true},
565 {"0XDeadBeef", 0xdeadbeef, true}, 566 {"0XDeadBeef", 0xdeadbeef, true},
566 {"0x7fffffffffffffff", kint64max, true}, 567 {"0x7fffffffffffffff", kint64max, true},
567 {"-0x8000000000000000", kint64min, true}, 568 {"-0x8000000000000000", kint64min, true},
568 {"0x8000000000000000", kint64max, false}, // Overflow test. 569 {"0x8000000000000000", kint64max, false}, // Overflow test.
569 {"-0x8000000000000001", kint64min, false}, // Underflow test. 570 {"-0x8000000000000001", kint64min, false}, // Underflow test.
570 {"0x0f", 15, true}, 571 {"0x0f", 15, true},
571 {"0f", 15, true}, 572 {"0f", 15, true},
(...skipping 28 matching lines...) Expand all
600 TEST(StringNumberConversionsTest, HexStringToUInt64) { 601 TEST(StringNumberConversionsTest, HexStringToUInt64) {
601 static const struct { 602 static const struct {
602 std::string input; 603 std::string input;
603 uint64 output; 604 uint64 output;
604 bool success; 605 bool success;
605 } cases[] = { 606 } cases[] = {
606 {"0", 0, true}, 607 {"0", 0, true},
607 {"42", 66, true}, 608 {"42", 66, true},
608 {"-42", 0, false}, 609 {"-42", 0, false},
609 {"+42", 66, true}, 610 {"+42", 66, true},
610 {"40acd88557b", GG_INT64_C(4444444448123), true}, 611 {"40acd88557b", INT64_C(4444444448123), true},
611 {"7fffffff", INT_MAX, true}, 612 {"7fffffff", INT_MAX, true},
612 {"-80000000", 0, false}, 613 {"-80000000", 0, false},
613 {"ffffffff", 0xffffffff, true}, 614 {"ffffffff", 0xffffffff, true},
614 {"DeadBeef", 0xdeadbeef, true}, 615 {"DeadBeef", 0xdeadbeef, true},
615 {"0x42", 66, true}, 616 {"0x42", 66, true},
616 {"-0x42", 0, false}, 617 {"-0x42", 0, false},
617 {"+0x42", 66, true}, 618 {"+0x42", 66, true},
618 {"0x40acd88557b", GG_INT64_C(4444444448123), true}, 619 {"0x40acd88557b", INT64_C(4444444448123), true},
619 {"0x7fffffff", INT_MAX, true}, 620 {"0x7fffffff", INT_MAX, true},
620 {"-0x80000000", 0, false}, 621 {"-0x80000000", 0, false},
621 {"0xffffffff", 0xffffffff, true}, 622 {"0xffffffff", 0xffffffff, true},
622 {"0XDeadBeef", 0xdeadbeef, true}, 623 {"0XDeadBeef", 0xdeadbeef, true},
623 {"0x7fffffffffffffff", kint64max, true}, 624 {"0x7fffffffffffffff", kint64max, true},
624 {"-0x8000000000000000", 0, false}, 625 {"-0x8000000000000000", 0, false},
625 {"0x8000000000000000", GG_UINT64_C(0x8000000000000000), true}, 626 {"0x8000000000000000", UINT64_C(0x8000000000000000), true},
626 {"-0x8000000000000001", 0, false}, 627 {"-0x8000000000000001", 0, false},
627 {"0xFFFFFFFFFFFFFFFF", kuint64max, true}, 628 {"0xFFFFFFFFFFFFFFFF", kuint64max, true},
628 {"FFFFFFFFFFFFFFFF", kuint64max, true}, 629 {"FFFFFFFFFFFFFFFF", kuint64max, true},
629 {"0x0000000000000000", 0, true}, 630 {"0x0000000000000000", 0, true},
630 {"0000000000000000", 0, true}, 631 {"0000000000000000", 0, true},
631 {"1FFFFFFFFFFFFFFFF", kuint64max, false}, // Overflow test. 632 {"1FFFFFFFFFFFFFFFF", kuint64max, false}, // Overflow test.
632 {"0x0f", 15, true}, 633 {"0x0f", 15, true},
633 {"0f", 15, true}, 634 {"0f", 15, true},
634 {" 45", 0x45, false}, 635 {" 45", 0x45, false},
635 {"\t\n\v\f\r 0x45", 0x45, false}, 636 {"\t\n\v\f\r 0x45", 0x45, false},
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
786 787
787 TEST(StringNumberConversionsTest, HexEncode) { 788 TEST(StringNumberConversionsTest, HexEncode) {
788 std::string hex(HexEncode(NULL, 0)); 789 std::string hex(HexEncode(NULL, 0));
789 EXPECT_EQ(hex.length(), 0U); 790 EXPECT_EQ(hex.length(), 0U);
790 unsigned char bytes[] = {0x01, 0xff, 0x02, 0xfe, 0x03, 0x80, 0x81}; 791 unsigned char bytes[] = {0x01, 0xff, 0x02, 0xfe, 0x03, 0x80, 0x81};
791 hex = HexEncode(bytes, sizeof(bytes)); 792 hex = HexEncode(bytes, sizeof(bytes));
792 EXPECT_EQ(hex.compare("01FF02FE038081"), 0); 793 EXPECT_EQ(hex.compare("01FF02FE038081"), 0);
793 } 794 }
794 795
795 } // namespace base 796 } // namespace base
OLDNEW
« no previous file with comments | « base/rand_util.cc ('k') | base/time/time_mac.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698