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