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
20using namespace llvm;
21
22namespace {
23
24// Test fixture class
25class SmallStringTest : public testing::Test {
26protected:
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.
41TEST_F(SmallStringTest, EmptyStringTest) {
42  SCOPED_TRACE("EmptyStringTest");
43  assertEmpty(theString);
44  EXPECT_TRUE(theString.rbegin() == theString.rend());
45}
46
47}
48
49