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

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

Issue 368133002: Fixes for re-enabling more MSVC level 4 warnings: base/ edition (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix build, attempt 2 Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « base/strings/safe_sprintf_unittest.cc ('k') | base/strings/string_util_unittest.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 <errno.h> 5 #include <errno.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 #include <stdio.h> 7 #include <stdio.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 #include <limits> 10 #include <limits>
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 }; 466 };
467 467
468 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) { 468 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) {
469 int output = 0; 469 int output = 0;
470 EXPECT_EQ(cases[i].success, HexStringToInt(cases[i].input, &output)); 470 EXPECT_EQ(cases[i].success, HexStringToInt(cases[i].input, &output));
471 EXPECT_EQ(cases[i].output, output); 471 EXPECT_EQ(cases[i].output, output);
472 } 472 }
473 // One additional test to verify that conversion of numbers in strings with 473 // One additional test to verify that conversion of numbers in strings with
474 // embedded NUL characters. The NUL and extra data after it should be 474 // embedded NUL characters. The NUL and extra data after it should be
475 // interpreted as junk after the number. 475 // interpreted as junk after the number.
476 const char input[] = "0xc0ffee\09"; 476 const char input[] = "0xc0ffee\0" "9";
477 std::string input_string(input, arraysize(input) - 1); 477 std::string input_string(input, arraysize(input) - 1);
478 int output; 478 int output;
479 EXPECT_FALSE(HexStringToInt(input_string, &output)); 479 EXPECT_FALSE(HexStringToInt(input_string, &output));
480 EXPECT_EQ(0xc0ffee, output); 480 EXPECT_EQ(0xc0ffee, output);
481 } 481 }
482 482
483 TEST(StringNumberConversionsTest, HexStringToUInt) { 483 TEST(StringNumberConversionsTest, HexStringToUInt) {
484 static const struct { 484 static const struct {
485 std::string input; 485 std::string input;
486 uint32 output; 486 uint32 output;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 }; 526 };
527 527
528 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) { 528 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) {
529 uint32 output = 0; 529 uint32 output = 0;
530 EXPECT_EQ(cases[i].success, HexStringToUInt(cases[i].input, &output)); 530 EXPECT_EQ(cases[i].success, HexStringToUInt(cases[i].input, &output));
531 EXPECT_EQ(cases[i].output, output); 531 EXPECT_EQ(cases[i].output, output);
532 } 532 }
533 // One additional test to verify that conversion of numbers in strings with 533 // One additional test to verify that conversion of numbers in strings with
534 // embedded NUL characters. The NUL and extra data after it should be 534 // embedded NUL characters. The NUL and extra data after it should be
535 // interpreted as junk after the number. 535 // interpreted as junk after the number.
536 const char input[] = "0xc0ffee\09"; 536 const char input[] = "0xc0ffee\0" "9";
537 std::string input_string(input, arraysize(input) - 1); 537 std::string input_string(input, arraysize(input) - 1);
538 uint32 output; 538 uint32 output;
539 EXPECT_FALSE(HexStringToUInt(input_string, &output)); 539 EXPECT_FALSE(HexStringToUInt(input_string, &output));
540 EXPECT_EQ(0xc0ffeeU, output); 540 EXPECT_EQ(0xc0ffeeU, output);
541 } 541 }
542 542
543 TEST(StringNumberConversionsTest, HexStringToInt64) { 543 TEST(StringNumberConversionsTest, HexStringToInt64) {
544 static const struct { 544 static const struct {
545 std::string input; 545 std::string input;
546 int64 output; 546 int64 output;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
583 }; 583 };
584 584
585 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) { 585 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) {
586 int64 output = 0; 586 int64 output = 0;
587 EXPECT_EQ(cases[i].success, HexStringToInt64(cases[i].input, &output)); 587 EXPECT_EQ(cases[i].success, HexStringToInt64(cases[i].input, &output));
588 EXPECT_EQ(cases[i].output, output); 588 EXPECT_EQ(cases[i].output, output);
589 } 589 }
590 // One additional test to verify that conversion of numbers in strings with 590 // One additional test to verify that conversion of numbers in strings with
591 // embedded NUL characters. The NUL and extra data after it should be 591 // embedded NUL characters. The NUL and extra data after it should be
592 // interpreted as junk after the number. 592 // interpreted as junk after the number.
593 const char input[] = "0xc0ffee\09"; 593 const char input[] = "0xc0ffee\0" "9";
594 std::string input_string(input, arraysize(input) - 1); 594 std::string input_string(input, arraysize(input) - 1);
595 int64 output; 595 int64 output;
596 EXPECT_FALSE(HexStringToInt64(input_string, &output)); 596 EXPECT_FALSE(HexStringToInt64(input_string, &output));
597 EXPECT_EQ(0xc0ffee, output); 597 EXPECT_EQ(0xc0ffee, output);
598 } 598 }
599 599
600 TEST(StringNumberConversionsTest, HexStringToUInt64) { 600 TEST(StringNumberConversionsTest, HexStringToUInt64) {
601 static const struct { 601 static const struct {
602 std::string input; 602 std::string input;
603 uint64 output; 603 uint64 output;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 }; 645 };
646 646
647 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) { 647 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) {
648 uint64 output = 0; 648 uint64 output = 0;
649 EXPECT_EQ(cases[i].success, HexStringToUInt64(cases[i].input, &output)); 649 EXPECT_EQ(cases[i].success, HexStringToUInt64(cases[i].input, &output));
650 EXPECT_EQ(cases[i].output, output); 650 EXPECT_EQ(cases[i].output, output);
651 } 651 }
652 // One additional test to verify that conversion of numbers in strings with 652 // One additional test to verify that conversion of numbers in strings with
653 // embedded NUL characters. The NUL and extra data after it should be 653 // embedded NUL characters. The NUL and extra data after it should be
654 // interpreted as junk after the number. 654 // interpreted as junk after the number.
655 const char input[] = "0xc0ffee\09"; 655 const char input[] = "0xc0ffee\0" "9";
656 std::string input_string(input, arraysize(input) - 1); 656 std::string input_string(input, arraysize(input) - 1);
657 uint64 output; 657 uint64 output;
658 EXPECT_FALSE(HexStringToUInt64(input_string, &output)); 658 EXPECT_FALSE(HexStringToUInt64(input_string, &output));
659 EXPECT_EQ(0xc0ffeeU, output); 659 EXPECT_EQ(0xc0ffeeU, output);
660 } 660 }
661 661
662 TEST(StringNumberConversionsTest, HexStringToBytes) { 662 TEST(StringNumberConversionsTest, HexStringToBytes) {
663 static const struct { 663 static const struct {
664 const std::string input; 664 const std::string input;
665 const char* output; 665 const char* output;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 errno = 1; 740 errno = 1;
741 EXPECT_EQ(cases[i].success, StringToDouble(cases[i].input, &output)); 741 EXPECT_EQ(cases[i].success, StringToDouble(cases[i].input, &output));
742 if (cases[i].success) 742 if (cases[i].success)
743 EXPECT_EQ(1, errno) << i; // confirm that errno is unchanged. 743 EXPECT_EQ(1, errno) << i; // confirm that errno is unchanged.
744 EXPECT_DOUBLE_EQ(cases[i].output, output); 744 EXPECT_DOUBLE_EQ(cases[i].output, output);
745 } 745 }
746 746
747 // One additional test to verify that conversion of numbers in strings with 747 // One additional test to verify that conversion of numbers in strings with
748 // embedded NUL characters. The NUL and extra data after it should be 748 // embedded NUL characters. The NUL and extra data after it should be
749 // interpreted as junk after the number. 749 // interpreted as junk after the number.
750 const char input[] = "3.14\0159"; 750 const char input[] = "3.14\0" "159";
751 std::string input_string(input, arraysize(input) - 1); 751 std::string input_string(input, arraysize(input) - 1);
752 double output; 752 double output;
753 EXPECT_FALSE(StringToDouble(input_string, &output)); 753 EXPECT_FALSE(StringToDouble(input_string, &output));
754 EXPECT_DOUBLE_EQ(3.14, output); 754 EXPECT_DOUBLE_EQ(3.14, output);
755 } 755 }
756 756
757 TEST(StringNumberConversionsTest, DoubleToString) { 757 TEST(StringNumberConversionsTest, DoubleToString) {
758 static const struct { 758 static const struct {
759 double input; 759 double input;
760 const char* expected; 760 const char* expected;
(...skipping 25 matching lines...) Expand all
786 786
787 TEST(StringNumberConversionsTest, HexEncode) { 787 TEST(StringNumberConversionsTest, HexEncode) {
788 std::string hex(HexEncode(NULL, 0)); 788 std::string hex(HexEncode(NULL, 0));
789 EXPECT_EQ(hex.length(), 0U); 789 EXPECT_EQ(hex.length(), 0U);
790 unsigned char bytes[] = {0x01, 0xff, 0x02, 0xfe, 0x03, 0x80, 0x81}; 790 unsigned char bytes[] = {0x01, 0xff, 0x02, 0xfe, 0x03, 0x80, 0x81};
791 hex = HexEncode(bytes, sizeof(bytes)); 791 hex = HexEncode(bytes, sizeof(bytes));
792 EXPECT_EQ(hex.compare("01FF02FE038081"), 0); 792 EXPECT_EQ(hex.compare("01FF02FE038081"), 0);
793 } 793 }
794 794
795 } // namespace base 795 } // namespace base
OLDNEW
« no previous file with comments | « base/strings/safe_sprintf_unittest.cc ('k') | base/strings/string_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698