blob: 188397476ff85e037049cc9c95f836356d3270ce [file] [log] [blame]
Daniel Dunbar014db9d2009-07-16 17:00:06 +00001//===- 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
47TEST_F(SmallStringTest, AppendUINT64_MAX) {
48 SCOPED_TRACE("AppendUINT64_MAX");
49 theString.clear();
50 assertEmpty(theString);
51 theString.append_uint(UINT64_MAX);
52 EXPECT_TRUE(0 == strcmp(theString.c_str(),"18446744073709551615"));
53}
54
55TEST_F(SmallStringTest, AppendINT64_MIN) {
56 SCOPED_TRACE("AppendINT64_MIN");
57 theString.clear();
58 assertEmpty(theString);
59 theString.append_sint(INT64_MIN);
60 EXPECT_TRUE(0 == strcmp(theString.c_str(),"-9223372036854775808"));
61}
62
63}
64