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

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

Issue 812543002: Update from https://crrev.com/308331 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years 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/profiler/tracked_time.cc ('k') | base/strings/stringprintf.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_util.h" 5 #include "base/strings/string_util.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <stdarg.h> 8 #include <stdarg.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after
662 662
663 // Verify the lower case as well. 663 // Verify the lower case as well.
664 EXPECT_EQ(10, HexDigitToInt('a')); 664 EXPECT_EQ(10, HexDigitToInt('a'));
665 EXPECT_EQ(11, HexDigitToInt('b')); 665 EXPECT_EQ(11, HexDigitToInt('b'));
666 EXPECT_EQ(12, HexDigitToInt('c')); 666 EXPECT_EQ(12, HexDigitToInt('c'));
667 EXPECT_EQ(13, HexDigitToInt('d')); 667 EXPECT_EQ(13, HexDigitToInt('d'));
668 EXPECT_EQ(14, HexDigitToInt('e')); 668 EXPECT_EQ(14, HexDigitToInt('e'));
669 EXPECT_EQ(15, HexDigitToInt('f')); 669 EXPECT_EQ(15, HexDigitToInt('f'));
670 } 670 }
671 671
672 // This checks where we can use the assignment operator for a va_list. We need
673 // a way to do this since Visual C doesn't support va_copy, but assignment on
674 // va_list is not guaranteed to be a copy. See StringAppendVT which uses this
675 // capability.
676 static void VariableArgsFunc(const char* format, ...) {
677 va_list org;
678 va_start(org, format);
679
680 va_list dup;
681 GG_VA_COPY(dup, org);
682 int i1 = va_arg(org, int);
683 int j1 = va_arg(org, int);
684 char* s1 = va_arg(org, char*);
685 double d1 = va_arg(org, double);
686 va_end(org);
687
688 int i2 = va_arg(dup, int);
689 int j2 = va_arg(dup, int);
690 char* s2 = va_arg(dup, char*);
691 double d2 = va_arg(dup, double);
692
693 EXPECT_EQ(i1, i2);
694 EXPECT_EQ(j1, j2);
695 EXPECT_STREQ(s1, s2);
696 EXPECT_EQ(d1, d2);
697
698 va_end(dup);
699 }
700
701 TEST(StringUtilTest, VAList) {
702 VariableArgsFunc("%d %d %s %lf", 45, 92, "This is interesting", 9.21);
703 }
704
705 // Test for Tokenize 672 // Test for Tokenize
706 template <typename STR> 673 template <typename STR>
707 void TokenizeTest() { 674 void TokenizeTest() {
708 std::vector<STR> r; 675 std::vector<STR> r;
709 size_t size; 676 size_t size;
710 677
711 size = Tokenize(STR("This is a string"), STR(" "), &r); 678 size = Tokenize(STR("This is a string"), STR(" "), &r);
712 EXPECT_EQ(4U, size); 679 EXPECT_EQ(4U, size);
713 ASSERT_EQ(4U, r.size()); 680 ASSERT_EQ(4U, r.size());
714 EXPECT_EQ(r[0], STR("This")); 681 EXPECT_EQ(r[0], STR("This"));
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after
1259 const std::string live = kLive; 1226 const std::string live = kLive;
1260 std::string dead = live; 1227 std::string dead = live;
1261 strncpy(WriteInto(&dead, 5), kDead, 4); 1228 strncpy(WriteInto(&dead, 5), kDead, 4);
1262 EXPECT_EQ(kDead, dead); 1229 EXPECT_EQ(kDead, dead);
1263 EXPECT_EQ(4u, dead.size()); 1230 EXPECT_EQ(4u, dead.size());
1264 EXPECT_EQ(kLive, live); 1231 EXPECT_EQ(kLive, live);
1265 EXPECT_EQ(4u, live.size()); 1232 EXPECT_EQ(4u, live.size());
1266 } 1233 }
1267 1234
1268 } // namespace base 1235 } // namespace base
OLDNEW
« no previous file with comments | « base/profiler/tracked_time.cc ('k') | base/strings/stringprintf.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698