aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/ADT/StringRefTest.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-07-26 03:18:15 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-07-26 03:18:15 +0000
commit56563f33f707c5101e28160ef2e83b4f884a80d9 (patch)
tree9d76a78a89dadd0f7e43de4c6fdcfef8736e182c /llvm/unittests/ADT/StringRefTest.cpp
parent8e58bc9ed47a290db076977fa40c25c1e0bc65b2 (diff)
downloadllvm-56563f33f707c5101e28160ef2e83b4f884a80d9.zip
llvm-56563f33f707c5101e28160ef2e83b4f884a80d9.tar.gz
llvm-56563f33f707c5101e28160ef2e83b4f884a80d9.tar.bz2
Add StringRef::{slice, split}, two convenient string operations which are simple
and efficient on a StringRef. llvm-svn: 77117
Diffstat (limited to 'llvm/unittests/ADT/StringRefTest.cpp')
-rw-r--r--llvm/unittests/ADT/StringRefTest.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/StringRefTest.cpp b/llvm/unittests/ADT/StringRefTest.cpp
index ba2216d..e7498cc 100644
--- a/llvm/unittests/ADT/StringRefTest.cpp
+++ b/llvm/unittests/ADT/StringRefTest.cpp
@@ -64,6 +64,21 @@ TEST(StringRefTest, Utilities) {
EXPECT_TRUE(Str.substr(0, 100) == "hello");
EXPECT_TRUE(Str.substr(4, 10) == "o");
+ EXPECT_TRUE(Str.slice(2, 3) == "l");
+ EXPECT_TRUE(Str.slice(1, 4) == "ell");
+ EXPECT_TRUE(Str.slice(2, 100) == "llo");
+ EXPECT_TRUE(Str.slice(2, 1) == "");
+ EXPECT_TRUE(Str.slice(10, 20) == "");
+
+ EXPECT_TRUE(Str.split('X') == std::make_pair(StringRef("hello"),
+ StringRef("")));
+ EXPECT_TRUE(Str.split('e') == std::make_pair(StringRef("h"),
+ StringRef("llo")));
+ EXPECT_TRUE(Str.split('h') == std::make_pair(StringRef(""),
+ StringRef("ello")));
+ EXPECT_TRUE(Str.split('o') == std::make_pair(StringRef("hell"),
+ StringRef("")));
+
EXPECT_TRUE(Str.startswith("he"));
EXPECT_FALSE(Str.startswith("helloworld"));
EXPECT_FALSE(Str.startswith("hi"));