1 //===- llvm/unittest/ADT/SmallStringTest.cpp ------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // SmallString unit tests.
12 //===----------------------------------------------------------------------===//
14 #include "gtest/gtest.h"
15 #include "llvm/ADT/SmallString.h"
25 class SmallStringTest : public testing::Test {
27 typedef SmallString<40> StringType;
31 void assertEmpty(StringType & v) {
33 EXPECT_EQ(0u, v.size());
34 EXPECT_TRUE(v.empty());
36 EXPECT_TRUE(v.begin() == v.end());
41 TEST_F(SmallStringTest, EmptyStringTest) {
42 SCOPED_TRACE("EmptyStringTest");
43 assertEmpty(theString);
44 EXPECT_TRUE(theString.rbegin() == theString.rend());
47 TEST_F(SmallStringTest, AppendUINT64_MAX) {
48 SCOPED_TRACE("AppendUINT64_MAX");
50 assertEmpty(theString);
51 theString.append_uint(UINT64_MAX);
52 EXPECT_TRUE(0 == strcmp(theString.c_str(),"18446744073709551615"));
55 TEST_F(SmallStringTest, AppendINT64_MIN) {
56 SCOPED_TRACE("AppendINT64_MIN");
58 assertEmpty(theString);
59 theString.append_sint(INT64_MIN);
60 EXPECT_TRUE(0 == strcmp(theString.c_str(),"-9223372036854775808"));