blob: b10365a2f618e4b0a954bab4adf46910fe8a4c4c [file] [log] [blame]
Chandler Carruth6145f7d2016-01-10 09:40:13 +00001//===- llvm/unittest/ADT/PointerEmbeddedIntTest.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#include "gtest/gtest.h"
11#include "llvm/ADT/PointerEmbeddedInt.h"
12using namespace llvm;
13
14namespace {
15
16TEST(PointerEmbeddedIntTest, Basic) {
17 PointerEmbeddedInt<int, CHAR_BIT> I = 42, J = 43;
18
19 EXPECT_EQ(42, I);
20 EXPECT_EQ(43, I + 1);
21 EXPECT_EQ(sizeof(uintptr_t) * CHAR_BIT - CHAR_BIT,
22 PointerLikeTypeTraits<decltype(I)>::NumLowBitsAvailable);
23
24 EXPECT_FALSE(I == J);
25 EXPECT_TRUE(I != J);
26 EXPECT_TRUE(I < J);
27 EXPECT_FALSE(I > J);
28 EXPECT_TRUE(I <= J);
29 EXPECT_FALSE(I >= J);
30
31 EXPECT_FALSE(I == 43);
32 EXPECT_TRUE(I != 43);
33 EXPECT_TRUE(I < 43);
34 EXPECT_FALSE(I > 43);
35 EXPECT_TRUE(I <= 43);
36 EXPECT_FALSE(I >= 43);
37
38 EXPECT_FALSE(42 == J);
39 EXPECT_TRUE(42 != J);
40 EXPECT_TRUE(42 < J);
41 EXPECT_FALSE(42 > J);
42 EXPECT_TRUE(42 <= J);
43 EXPECT_FALSE(42 >= J);
44}
45
46} // end anonymous namespace