1 //===-- ConstStringTest.cpp -------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "lldb/Utility/ConstString.h" 11 #include "llvm/Support/FormatVariadic.h" 12 #include "gtest/gtest.h" 13 14 using namespace lldb_private; 15 16 TEST(ConstStringTest, format_provider) { 17 EXPECT_EQ("foo", llvm::formatv("{0}", ConstString("foo")).str()); 18 } 19 20 TEST(ConstStringTest, MangledCounterpart) { 21 ConstString foo("foo"); 22 ConstString counterpart; 23 EXPECT_FALSE(foo.GetMangledCounterpart(counterpart)); 24 EXPECT_EQ("", counterpart.GetStringRef()); 25 26 ConstString bar; 27 bar.SetStringWithMangledCounterpart("bar", foo); 28 EXPECT_EQ("bar", bar.GetStringRef()); 29 30 EXPECT_TRUE(bar.GetMangledCounterpart(counterpart)); 31 EXPECT_EQ("foo", counterpart.GetStringRef()); 32 33 EXPECT_TRUE(foo.GetMangledCounterpart(counterpart)); 34 EXPECT_EQ("bar", counterpart.GetStringRef()); 35 } 36 37 TEST(ConstStringTest, FromMidOfBufferStringRef) { 38 // StringRef's into bigger buffer: no null termination 39 const char *buffer = "foobarbaz"; 40 llvm::StringRef foo_ref(buffer, 3); 41 llvm::StringRef bar_ref(buffer + 3, 3); 42 43 ConstString foo(foo_ref); 44 45 ConstString bar; 46 bar.SetStringWithMangledCounterpart(bar_ref, foo); 47 EXPECT_EQ("bar", bar.GetStringRef()); 48 49 ConstString counterpart; 50 EXPECT_TRUE(bar.GetMangledCounterpart(counterpart)); 51 EXPECT_EQ("foo", counterpart.GetStringRef()); 52 53 EXPECT_TRUE(foo.GetMangledCounterpart(counterpart)); 54 EXPECT_EQ("bar", counterpart.GetStringRef()); 55 } 56 57 TEST(ConstStringTest, NullAndEmptyStates) { 58 ConstString foo("foo"); 59 EXPECT_FALSE(!foo); 60 EXPECT_FALSE(foo.IsEmpty()); 61 EXPECT_FALSE(foo.IsNull()); 62 63 ConstString empty(""); 64 EXPECT_TRUE(!empty); 65 EXPECT_TRUE(empty.IsEmpty()); 66 EXPECT_FALSE(empty.IsNull()); 67 68 ConstString null; 69 EXPECT_TRUE(!null); 70 EXPECT_TRUE(null.IsEmpty()); 71 EXPECT_TRUE(null.IsNull()); 72 } 73