StringRefTest.cpp revision 4cf95d75c65f37677d306952b0d2306bc6d20b1f
1//===- llvm/unittest/ADT/StringRefTest.cpp - StringRef unit tests ---------===// 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 "gtest/gtest.h" 11#include "llvm/ADT/StringRef.h" 12using namespace llvm; 13 14namespace { 15 16TEST(StringRefTest, Construction) { 17 EXPECT_TRUE(StringRef() == ""); 18 EXPECT_TRUE(StringRef("hello") == "hello"); 19 EXPECT_TRUE(StringRef("hello world", 5) == "hello"); 20 EXPECT_TRUE(StringRef(std::string("hello")) == "hello"); 21} 22 23TEST(StringRefTest, Iteration) { 24 StringRef S("hello"); 25 const char *p = "hello"; 26 for (const char *it = S.begin(), *ie = S.end(); it != ie; ++it, ++p) 27 EXPECT_TRUE(*p == *it); 28} 29 30TEST(StringRefTest, StringOps) { 31 const char *p = "hello"; 32 EXPECT_EQ(p, StringRef(p, 0).data()); 33 EXPECT_TRUE(StringRef().empty()); 34 EXPECT_EQ((size_t) 5, StringRef("hello").size()); 35 EXPECT_EQ(-1, StringRef("aab").compare("aad")); 36 EXPECT_EQ( 0, StringRef("aab").compare("aab")); 37 EXPECT_EQ( 1, StringRef("aab").compare("aaa")); 38 EXPECT_EQ(-1, StringRef("aab").compare("aabb")); 39 EXPECT_EQ( 1, StringRef("aab").compare("aa")); 40} 41 42TEST(StringRefTest, Operators) { 43 EXPECT_TRUE(StringRef() == ""); 44 EXPECT_TRUE(StringRef("aab") < StringRef("aad")); 45 EXPECT_FALSE(StringRef("aab") < StringRef("aab")); 46 EXPECT_TRUE(StringRef("aab") <= StringRef("aab")); 47 EXPECT_FALSE(StringRef("aab") <= StringRef("aaa")); 48 EXPECT_TRUE(StringRef("aad") > StringRef("aab")); 49 EXPECT_FALSE(StringRef("aab") > StringRef("aab")); 50 EXPECT_TRUE(StringRef("aab") >= StringRef("aab")); 51 EXPECT_FALSE(StringRef("aaa") >= StringRef("aab")); 52 EXPECT_TRUE(StringRef("aab") == StringRef("aab")); 53 EXPECT_FALSE(StringRef("aab") == StringRef("aac")); 54 EXPECT_FALSE(StringRef("aab") != StringRef("aab")); 55 EXPECT_TRUE(StringRef("aab") != StringRef("aac")); 56 EXPECT_EQ('a', StringRef("aab")[1]); 57} 58 59} // end anonymous namespace 60