diff options
Diffstat (limited to 'unittests/ADT/PointerUnionTest.cpp')
-rw-r--r-- | unittests/ADT/PointerUnionTest.cpp | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/unittests/ADT/PointerUnionTest.cpp b/unittests/ADT/PointerUnionTest.cpp index 7eb7181..3bfb79c 100644 --- a/unittests/ADT/PointerUnionTest.cpp +++ b/unittests/ADT/PointerUnionTest.cpp @@ -13,22 +13,24 @@ using namespace llvm; namespace { -typedef PointerUnion<int*, float*> PU; +typedef PointerUnion<int *, float *> PU; -// Test fixture -class PointerUnionTest : public testing::Test { -}; +struct PointerUnionTest : public testing::Test { + float f; + int i; -float f = 3.14f; -int i = 42; + PU a, b, c, n; -const PU a(&f); -const PU b(&i); -const PU n; + PointerUnionTest() : f(3.14f), i(42), a(&f), b(&i), c(&i), n() {} +}; TEST_F(PointerUnionTest, Comparison) { + EXPECT_TRUE(a == a); + EXPECT_FALSE(a != a); EXPECT_TRUE(a != b); EXPECT_FALSE(a == b); + EXPECT_TRUE(b == c); + EXPECT_FALSE(b != c); EXPECT_TRUE(b != n); EXPECT_FALSE(b == n); } @@ -44,21 +46,27 @@ TEST_F(PointerUnionTest, Null) { EXPECT_TRUE((bool)a); EXPECT_TRUE((bool)b); EXPECT_FALSE(n); + + EXPECT_NE(n, b); + EXPECT_EQ(b, c); + b = nullptr; + EXPECT_EQ(n, b); + EXPECT_NE(b, c); } TEST_F(PointerUnionTest, Is) { - EXPECT_FALSE(a.is<int*>()); - EXPECT_TRUE(a.is<float*>()); - EXPECT_TRUE(b.is<int*>()); - EXPECT_FALSE(b.is<float*>()); - EXPECT_TRUE(n.is<int*>()); - EXPECT_FALSE(n.is<float*>()); + EXPECT_FALSE(a.is<int *>()); + EXPECT_TRUE(a.is<float *>()); + EXPECT_TRUE(b.is<int *>()); + EXPECT_FALSE(b.is<float *>()); + EXPECT_TRUE(n.is<int *>()); + EXPECT_FALSE(n.is<float *>()); } TEST_F(PointerUnionTest, Get) { - EXPECT_EQ(a.get<float*>(), &f); - EXPECT_EQ(b.get<int*>(), &i); - EXPECT_EQ(n.get<int*>(), (int*)0); + EXPECT_EQ(a.get<float *>(), &f); + EXPECT_EQ(b.get<int *>(), &i); + EXPECT_EQ(n.get<int *>(), (int *)0); } } // end anonymous namespace |