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, NullAndEmptyStates) { 38 ConstString foo("foo"); 39 EXPECT_FALSE(!foo); 40 EXPECT_FALSE(foo.IsEmpty()); 41 EXPECT_FALSE(foo.IsNull()); 42 43 ConstString empty(""); 44 EXPECT_TRUE(!empty); 45 EXPECT_TRUE(empty.IsEmpty()); 46 EXPECT_FALSE(empty.IsNull()); 47 48 ConstString null; 49 EXPECT_TRUE(!null); 50 EXPECT_TRUE(null.IsEmpty()); 51 EXPECT_TRUE(null.IsNull()); 52 } 53