summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Granitz <stefan.graenitz@gmail.com>2018-08-08 21:57:42 +0000
committerStefan Granitz <stefan.graenitz@gmail.com>2018-08-08 21:57:42 +0000
commit4c01eccba2e61a29b14df9fe0496bceacfbc861d (patch)
tree67d0a03d37f2b316d1c6e2caab0c0e3c6da87529
parentf1a98df6ee333a675f7d2fe9bf929dca882f5394 (diff)
downloadbcm5719-llvm-4c01eccba2e61a29b14df9fe0496bceacfbc861d.tar.gz
bcm5719-llvm-4c01eccba2e61a29b14df9fe0496bceacfbc861d.zip
Add ConstString test FromMidOfBufferStringRef
Summary: It was not immediately clear to me whether or not non-null-terminated StringRef's are supported in ConstString and/or the counterpart mechanism. From this test it seems to be fine. Maybe useful to keep? Reviewers: labath Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D50334 llvm-svn: 339292
-rw-r--r--lldb/unittests/Utility/ConstStringTest.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/lldb/unittests/Utility/ConstStringTest.cpp b/lldb/unittests/Utility/ConstStringTest.cpp
index add76a012e1..5ad6ea986bd 100644
--- a/lldb/unittests/Utility/ConstStringTest.cpp
+++ b/lldb/unittests/Utility/ConstStringTest.cpp
@@ -34,6 +34,26 @@ TEST(ConstStringTest, MangledCounterpart) {
EXPECT_EQ("bar", counterpart.GetStringRef());
}
+TEST(ConstStringTest, FromMidOfBufferStringRef) {
+ // StringRef's into bigger buffer: no null termination
+ const char *buffer = "foobarbaz";
+ llvm::StringRef foo_ref(buffer, 3);
+ llvm::StringRef bar_ref(buffer + 3, 3);
+
+ ConstString foo(foo_ref);
+
+ ConstString bar;
+ bar.SetStringWithMangledCounterpart(bar_ref, foo);
+ EXPECT_EQ("bar", bar.GetStringRef());
+
+ ConstString counterpart;
+ EXPECT_TRUE(bar.GetMangledCounterpart(counterpart));
+ EXPECT_EQ("foo", counterpart.GetStringRef());
+
+ EXPECT_TRUE(foo.GetMangledCounterpart(counterpart));
+ EXPECT_EQ("bar", counterpart.GetStringRef());
+}
+
TEST(ConstStringTest, NullAndEmptyStates) {
ConstString foo("foo");
EXPECT_FALSE(!foo);
OpenPOWER on IntegriCloud