From 08993c03abed359171d12b50ab38da0ac331cfb7 Mon Sep 17 00:00:00 2001 From: Gabor Greif Date: Tue, 20 Jul 2010 16:51:18 +0000 Subject: extend to cast<> and cast_or_null<> tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108854 91177308-0d34-0410-b5e6-96231b3b80d8 --- unittests/Support/Casting.cpp | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) (limited to 'unittests') diff --git a/unittests/Support/Casting.cpp b/unittests/Support/Casting.cpp index 3a3af7e046..22badb47c7 100644 --- a/unittests/Support/Casting.cpp +++ b/unittests/Support/Casting.cpp @@ -19,19 +19,47 @@ using namespace llvm; namespace { +const foo *null_foo = NULL; + extern bar &B1; extern const bar *B2; +// test various configurations of const +const bar &B3 = B1; +const bar *const B4 = B2; TEST(CastingTest, isa) { - // test various configurations of const - const bar &B3 = B1; - const bar *const B4 = B2; EXPECT_TRUE(isa(B1)); EXPECT_TRUE(isa(B2)); EXPECT_TRUE(isa(B3)); EXPECT_TRUE(isa(B4)); } +TEST(CastingTest, cast) { + foo &F1 = cast(B1); + EXPECT_NE(&F1, null_foo); + const foo *F3 = cast(B2); + EXPECT_NE(F3, null_foo); + const foo *F4 = cast(B2); + EXPECT_NE(F4, null_foo); + const foo &F8 = cast(B3); + EXPECT_NE(&F8, null_foo); + const foo *F9 = cast(B4); + EXPECT_NE(F9, null_foo); + foo *F10 = cast(fub()); + EXPECT_EQ(F10, null_foo); +} + +TEST(CastingTest, cast_or_null) { + const foo *F11 = cast_or_null(B2); + EXPECT_NE(F11, null_foo); + const foo *F12 = cast_or_null(B2); + EXPECT_NE(F12, null_foo); + const foo *F13 = cast_or_null(B4); + EXPECT_NE(F13, null_foo); + const foo *F14 = cast_or_null(fub()); // Shouldn't print. + EXPECT_EQ(F14, null_foo); +} + bar B; bar &B1 = B; const bar *B2 = &B; -- cgit v1.2.3