32 #include <gtest/gtest.h>
47 return liveList.size();
53 LiveList::iterator liveIt;
58 liveList.push_front(
this);
59 liveIt = liveList.begin();
64 liveList.erase(liveIt);
73 TEST(RefcntTest, NullPointerCheck)
77 EXPECT_EQ(NULL, nullCheck.get());
78 EXPECT_EQ(0, liveListSize());
81 TEST(RefcntTest, ConstructionFromPointer)
84 Ptr constFromPointer =
new TestRC();
85 EXPECT_EQ(1, liveListSize());
88 TEST(RefcntTest, ConstructionFromExistingPointer)
91 Ptr constFromPointer1 =
new TestRC();
92 Ptr constFromPointer2 = constFromPointer1;
94 EXPECT_EQ(1, liveListSize());
97 TEST(RefcntTest, DestroyPointer)
100 Ptr *ptrPtr =
new Ptr(
new TestRC());
101 EXPECT_EQ(1, liveListSize());
103 EXPECT_EQ(0, liveListSize());
106 TEST(RefcntTest, AssignmentFromAPointerFromAPointer)
109 Ptr assignmentTarget;
110 TestRC *assignmentSourcePointer =
new TestRC();
111 EXPECT_EQ(liveListSize(), 1);
112 assignmentTarget = assignmentSourcePointer;
113 EXPECT_EQ(liveListSize(), 1);
114 assignmentTarget = NULL;
115 EXPECT_EQ(liveListSize(), 0);
116 Ptr assignmentSourcePtr(
new TestRC());
117 EXPECT_EQ(liveListSize(), 1);
118 assignmentTarget = assignmentSourcePtr;
119 EXPECT_EQ(liveListSize(), 1);
120 assignmentSourcePtr = NULL;
121 EXPECT_EQ(liveListSize(), 1);
122 assignmentTarget = NULL;
123 EXPECT_EQ(liveListSize(), 0);
126 TEST(RefcntTest, AccessToClassPointers)
129 TestRC *accessTest =
new TestRC();
130 Ptr accessTestPtr = accessTest;
131 accessTest->testVal = 1;
132 EXPECT_EQ(1, accessTestPtr->testVal);
133 EXPECT_EQ(1, (*accessTestPtr).testVal);
134 accessTest->testVal = 2;
135 EXPECT_EQ(2, accessTestPtr->testVal);
136 EXPECT_EQ(2, (*accessTestPtr).testVal);
137 accessTestPtr->testVal = 3;
138 EXPECT_EQ(3, accessTest->testVal);
139 (*accessTestPtr).testVal = 4;
140 EXPECT_EQ(4, accessTest->testVal);
141 accessTestPtr = NULL;
143 EXPECT_EQ(0, liveListSize());
146 TEST(RefcntTest, BoolAndLogicalNotOperatorOverloads)
149 Ptr boolTest =
new TestRC();
150 EXPECT_EQ(boolTest,
true);
151 EXPECT_EQ(!boolTest,
false);
153 EXPECT_FALSE(boolTest);
154 EXPECT_TRUE(!boolTest);
155 EXPECT_EQ(0, liveListSize());
158 TEST(RefcntTest, EqualityOperators)
161 TestRC *equalTestA =
new TestRC();
162 Ptr equalTestAPtr = equalTestA;
163 Ptr equalTestAPtr2 = equalTestA;
164 TestRC *equalTestB =
new TestRC();
165 Ptr equalTestBPtr = equalTestB;
166 EXPECT_TRUE(equalTestA == equalTestAPtr);
167 EXPECT_TRUE(equalTestAPtr == equalTestA);
168 EXPECT_TRUE(equalTestAPtr == equalTestAPtr2);
169 EXPECT_TRUE(equalTestA != equalTestBPtr);
170 EXPECT_TRUE(equalTestAPtr != equalTestB);
171 EXPECT_TRUE(equalTestAPtr != equalTestBPtr);