Lines Matching refs:StringRef
1 //===- llvm/unittest/ADT/StringRefTest.cpp - StringRef unit tests ---------===//
10 #include "llvm/ADT/StringRef.h"
22 std::ostream &operator<<(std::ostream &OS, const StringRef &S) {
28 const std::pair<StringRef, StringRef> &P) {
37 EXPECT_EQ("", StringRef());
38 EXPECT_EQ("hello", StringRef("hello"));
39 EXPECT_EQ("hello", StringRef("hello world", 5));
40 EXPECT_EQ("hello", StringRef(std::string("hello")));
44 StringRef S("hello");
52 EXPECT_EQ(p, StringRef(p, 0).data());
53 EXPECT_TRUE(StringRef().empty());
54 EXPECT_EQ((size_t) 5, StringRef("hello").size());
55 EXPECT_EQ(-1, StringRef("aab").compare("aad"));
56 EXPECT_EQ( 0, StringRef("aab").compare("aab"));
57 EXPECT_EQ( 1, StringRef("aab").compare("aaa"));
58 EXPECT_EQ(-1, StringRef("aab").compare("aabb"));
59 EXPECT_EQ( 1, StringRef("aab").compare("aa"));
60 EXPECT_EQ( 1, StringRef("\xFF").compare("\1"));
62 EXPECT_EQ(-1, StringRef("AaB").compare_lower("aAd"));
63 EXPECT_EQ( 0, StringRef("AaB").compare_lower("aab"));
64 EXPECT_EQ( 1, StringRef("AaB").compare_lower("AAA"));
65 EXPECT_EQ(-1, StringRef("AaB").compare_lower("aaBb"));
66 EXPECT_EQ(-1, StringRef("AaB").compare_lower("bb"));
67 EXPECT_EQ( 1, StringRef("aaBb").compare_lower("AaB"));
68 EXPECT_EQ( 1, StringRef("bb").compare_lower("AaB"));
69 EXPECT_EQ( 1, StringRef("AaB").compare_lower("aA"));
70 EXPECT_EQ( 1, StringRef("\xFF").compare_lower("\1"));
72 EXPECT_EQ(-1, StringRef("aab").compare_numeric("aad"));
73 EXPECT_EQ( 0, StringRef("aab").compare_numeric("aab"));
74 EXPECT_EQ( 1, StringRef("aab").compare_numeric("aaa"));
75 EXPECT_EQ(-1, StringRef("aab").compare_numeric("aabb"));
76 EXPECT_EQ( 1, StringRef("aab").compare_numeric("aa"));
77 EXPECT_EQ(-1, StringRef("1").compare_numeric("10"));
78 EXPECT_EQ( 0, StringRef("10").compare_numeric("10"));
79 EXPECT_EQ( 0, StringRef("10a").compare_numeric("10a"));
80 EXPECT_EQ( 1, StringRef("2").compare_numeric("1"));
81 EXPECT_EQ( 0, StringRef("llvm_v1i64_ty").compare_numeric("llvm_v1i64_ty"));
82 EXPECT_EQ( 1, StringRef("\xFF").compare_numeric("\1"));
83 EXPECT_EQ( 1, StringRef("V16").compare_numeric("V1_q0"));
84 EXPECT_EQ(-1, StringRef("V1_q0").compare_numeric("V16"));
85 EXPECT_EQ(-1, StringRef("V8_q0").compare_numeric("V16"));
86 EXPECT_EQ( 1, StringRef("V16").compare_numeric("V8_q0"));
87 EXPECT_EQ(-1, StringRef("V1_q0").compare_numeric("V8_q0"));
88 EXPECT_EQ( 1, StringRef("V8_q0").compare_numeric("V1_q0"));
92 EXPECT_EQ("", StringRef());
93 EXPECT_TRUE(StringRef("aab") < StringRef("aad"));
94 EXPECT_FALSE(StringRef("aab") < StringRef("aab"));
95 EXPECT_TRUE(StringRef("aab") <= StringRef("aab"));
96 EXPECT_FALSE(StringRef("aab") <= StringRef("aaa"));
97 EXPECT_TRUE(StringRef("aad") > StringRef("aab"));
98 EXPECT_FALSE(StringRef("aab") > StringRef("aab"));
99 EXPECT_TRUE(StringRef("aab") >= StringRef("aab"));
100 EXPECT_FALSE(StringRef("aaa") >= StringRef("aab"));
101 EXPECT_EQ(StringRef("aab"), StringRef("aab"));
102 EXPECT_FALSE(StringRef("aab") == StringRef("aac"));
103 EXPECT_FALSE(StringRef("aab") != StringRef("aab"));
104 EXPECT_TRUE(StringRef("aab") != StringRef("aac"));
105 EXPECT_EQ('a', StringRef("aab")[1]);
109 StringRef Str("hello");
117 StringRef Str("hello");
126 StringRef Str("hello");
127 EXPECT_EQ(std::make_pair(StringRef("hello"), StringRef("")),
129 EXPECT_EQ(std::make_pair(StringRef("h"), StringRef("llo")),
131 EXPECT_EQ(std::make_pair(StringRef(""), StringRef("ello")),
133 EXPECT_EQ(std::make_pair(StringRef("he"), StringRef("lo")),
135 EXPECT_EQ(std::make_pair(StringRef("hell"), StringRef("")),
138 EXPECT_EQ(std::make_pair(StringRef("hello"), StringRef("")),
140 EXPECT_EQ(std::make_pair(StringRef("h"), StringRef("llo")),
142 EXPECT_EQ(std::make_pair(StringRef(""), StringRef("ello")),
144 EXPECT_EQ(std::make_pair(StringRef("hel"), StringRef("o")),
146 EXPECT_EQ(std::make_pair(StringRef("hell"), StringRef("")),
151 SmallVector<StringRef, 5> parts;
152 SmallVector<StringRef, 5> expected;
155 StringRef(",ab,,c,").split(parts, ",", -1, false);
161 StringRef(",ab,,c,").split(parts, ",", -1, true);
166 StringRef("").split(parts, ",", -1, true);
170 StringRef("").split(parts, ",", -1, false);
174 StringRef(",").split(parts, ",", -1, false);
179 StringRef(",").split(parts, ",", -1, true);
184 StringRef("a,b").split(parts, ",", -1, true);
190 StringRef("a,,b,c").split(parts, ",", 0, true);
195 StringRef("a,,b,c").split(parts, ",", 0, false);
200 StringRef("a,,b,c").split(parts, ",", 1, true);
205 StringRef("a,,b,c").split(parts, ",", 1, false);
210 StringRef("a,,b,c").split(parts, ",", 2, true);
215 StringRef("a,,b,c").split(parts, ",", 2, false);
221 StringRef("a,,b,c").split(parts, ",", 3, true);
226 StringRef("a,,b,c").split(parts, ",", 3, false);
231 StringRef Str0("hello");
232 StringRef Str1(" hello ");
233 StringRef Str2(" hello ");
235 EXPECT_EQ(StringRef("hello"), Str0.rtrim());
236 EXPECT_EQ(StringRef(" hello"), Str1.rtrim());
237 EXPECT_EQ(StringRef(" hello"), Str2.rtrim());
238 EXPECT_EQ(StringRef("hello"), Str0.ltrim());
239 EXPECT_EQ(StringRef("hello "), Str1.ltrim());
240 EXPECT_EQ(StringRef("hello "), Str2.ltrim());
241 EXPECT_EQ(StringRef("hello"), Str0.trim());
242 EXPECT_EQ(StringRef("hello"), Str1.trim());
243 EXPECT_EQ(StringRef("hello"), Str2.trim());
245 EXPECT_EQ(StringRef("ello"), Str0.trim("hhhhhhhhhhh"));
247 EXPECT_EQ(StringRef(""), StringRef("").trim());
248 EXPECT_EQ(StringRef(""), StringRef(" ").trim());
249 EXPECT_EQ(StringRef("\0", 1), StringRef(" \0 ", 3).trim());
250 EXPECT_EQ(StringRef("\0\0", 2), StringRef("\0\0", 2).trim());
251 EXPECT_EQ(StringRef("x"), StringRef("\0\0x\0\0", 5).trim(StringRef("\0", 1)));
255 StringRef Str("hello");
263 StringRef Str("heLLo");
273 StringRef Str("hello");
282 StringRef Str("heLLo");
292 StringRef Str("hello");
294 EXPECT_EQ(StringRef::npos, Str.find('z'));
295 EXPECT_EQ(StringRef::npos, Str.find("helloworld"));
298 EXPECT_EQ(StringRef::npos, Str.find("zz"));
300 EXPECT_EQ(StringRef::npos, Str.find("ll", 3));
302 StringRef LongStr("hellx xello hell ello world foo bar hello");
309 EXPECT_EQ(StringRef::npos, Str.rfind('z'));
310 EXPECT_EQ(StringRef::npos, Str.rfind("helloworld"));
313 EXPECT_EQ(StringRef::npos, Str.rfind("zz"));
317 EXPECT_EQ(StringRef::npos, Str.find_first_of("xyz"));
321 EXPECT_EQ(StringRef::npos, Str.find_first_not_of("hello"));
325 EXPECT_EQ(StringRef::npos, Str.find_last_not_of("helo"));
329 StringRef Str("hello");
340 StringRef Str("hello");
347 OS << StringRef("hello");
352 EXPECT_EQ(hash_value(std::string()), hash_value(StringRef()));
353 EXPECT_EQ(hash_value(std::string()), hash_value(StringRef("")));
356 EXPECT_EQ(H, hash_value(StringRef("hello world")));
357 EXPECT_EQ(H, hash_value(StringRef(S)));
358 EXPECT_NE(H, hash_value(StringRef("hello worl")));
360 hash_value(StringRef("hello worl")));
361 EXPECT_NE(H, hash_value(StringRef("hello world ")));
363 hash_value(StringRef("hello world ")));
364 EXPECT_EQ(H, hash_value(StringRef("hello world\0")));
366 hash_value(StringRef("hello world").slice(1, -1)));
420 bool U8Success = StringRef(Unsigned[i].Str).getAsInteger(0, U8);
427 bool U16Success = StringRef(Unsigned[i].Str).getAsInteger(0, U16);
434 bool U32Success = StringRef(Unsigned[i].Str).getAsInteger(0, U32);
441 bool U64Success = StringRef(Unsigned[i].Str).getAsInteger(0, U64);
456 bool S8Success = StringRef(Signed[i].Str).getAsInteger(0, S8);
463 bool S16Success = StringRef(Signed[i].Str).getAsInteger(0, S16);
470 bool S32Success = StringRef(Signed[i].Str).getAsInteger(0, S32);
477 bool S64Success = StringRef(Signed[i].Str).getAsInteger(0, S64);
503 bool IsBadNumber = StringRef(BadStrings[i]).getAsInteger(0, U64);
514 std::vector<StringRef> v1;
539 StringRef Str1 = "hello";
540 StringRef Str2 = "bye";
541 StringRef Str1c = Str1.copy(Alloc);
542 StringRef Str2c = Str2.copy(Alloc);