diff options
author | Stefan Granitz <stefan.graenitz@gmail.com> | 2018-08-08 21:57:42 +0000 |
---|---|---|
committer | Stefan Granitz <stefan.graenitz@gmail.com> | 2018-08-08 21:57:42 +0000 |
commit | 4c01eccba2e61a29b14df9fe0496bceacfbc861d (patch) | |
tree | 67d0a03d37f2b316d1c6e2caab0c0e3c6da87529 | |
parent | f1a98df6ee333a675f7d2fe9bf929dca882f5394 (diff) | |
download | bcm5719-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.cpp | 20 |
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); |