1 //===- llvm/unittest/ADT/SmallStringTest.cpp ------------------------------===// 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 // SmallString unit tests. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #include "gtest/gtest.h" 15 #include "llvm/ADT/SmallString.h" 16 #include <stdarg.h> 17 #include <climits> 18 #include <cstring> 19 20 using namespace llvm; 21 22 namespace { 23 24 // Test fixture class 25 class SmallStringTest : public testing::Test { 26 protected: 27 typedef SmallString<40> StringType; 28 29 StringType theString; 30 31 void assertEmpty(StringType & v) { 32 // Size tests 33 EXPECT_EQ(0u, v.size()); 34 EXPECT_TRUE(v.empty()); 35 // Iterator tests 36 EXPECT_TRUE(v.begin() == v.end()); 37 } 38 }; 39 40 // New string test. 41 TEST_F(SmallStringTest, EmptyStringTest) { 42 SCOPED_TRACE("EmptyStringTest"); 43 assertEmpty(theString); 44 EXPECT_TRUE(theString.rbegin() == theString.rend()); 45 } 46 47 } 48 49