Skip to content

Commit 8d8a3a7

Browse files
committed
cleanup.
1 parent c930dab commit 8d8a3a7

1 file changed

Lines changed: 5 additions & 65 deletions

File tree

RTLTestRunApp/src/RObjectTests/RObjectReflecting_stdUniquePtr.cpp

Lines changed: 5 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
using namespace test_utils;
99
using namespace rtl;
1010

11+
// TODO: Refine these, remove moot cases after this-> UPDATE: MOVING DISALLOWED NOW.
12+
1113
namespace rtl::unit_test
1214
{
1315
TEST(RObject_reflecting_unique_ptr, clone_on__heap_stack)
@@ -63,10 +65,8 @@ namespace rtl::unit_test
6365
// Access the moved-out value
6466
EXPECT_EQ(*uptr, NUM);
6567

68+
// this is compile error now.
6669
//int* ptr = uptr.release();
67-
//// Addresses must be same.
68-
//EXPECT_EQ(numPtr, ptr);
69-
//delete ptr; //RTL must not delete again, once 'robj' out of scope.
7070
}
7171
// there must not be any crash.
7272
ASSERT_TRUE(rtl::getRtlManagedHeapInstanceCount() == 0);
@@ -151,33 +151,6 @@ namespace rtl::unit_test
151151

152152
// RTL still owns it
153153
ASSERT_TRUE(rtl::getRtlManagedHeapInstanceCount() == 1);
154-
155-
// RObject still exists with correct metadata, but the stored unique_ptr is now empty
156-
ASSERT_FALSE(robj.isEmpty());
157-
158-
// UPDATE: MOVING DISALLOWED NOW.
159-
// Any subsequent view will still be obtainable
160-
auto view3 = robj.view<std::unique_ptr<int>>();
161-
ASSERT_TRUE(view3);
162-
163-
// UPDATE: MOVING DISALLOWED NOW.
164-
// But the unique_ptr inside is now empty due to the earlier move
165-
const std::unique_ptr<int>& uptr3 = view3->get();
166-
//ASSERT_TRUE(uptr3 == nullptr);
167-
168-
// UPDATE: MOVING DISALLOWED NOW.
169-
// All earlier views now yield empty unique_ptrs as well- no dangling pointers, no UB
170-
const std::unique_ptr<int>& uptr2 = view2->get();
171-
//ASSERT_TRUE(uptr3 == nullptr);
172-
173-
// UPDATE: MOVING DISALLOWED NOW.
174-
const std::unique_ptr<int>& uptr1 = view1->get();
175-
//ASSERT_TRUE(uptr3 == nullptr);
176-
177-
// UPDATE: MOVING DISALLOWED NOW.
178-
// Even reusing the moved-from view0 is safe- just returns empty
179-
const std::unique_ptr<int>& uptr00 = view0->get();
180-
//ASSERT_TRUE(uptr00 == nullptr);
181154
}
182155

183156

@@ -235,29 +208,6 @@ namespace rtl::unit_test
235208
ASSERT_TRUE(rtl::getRtlManagedHeapInstanceCount() == 1);
236209
// Node still exists.
237210
EXPECT_TRUE(Node::instanceCount() == 1);
238-
239-
// Any subsequent view will still be obtainable
240-
auto view3 = robj.view<std::unique_ptr<Node>>();
241-
ASSERT_TRUE(view3);
242-
243-
// UPDATE: MOVING DISALLOWED NOW.
244-
// But the unique_ptr inside is now empty due to the earlier move
245-
const std::unique_ptr<Node>& uptr3 = view3->get();
246-
//ASSERT_TRUE(uptr3 == nullptr);
247-
248-
// UPDATE: MOVING DISALLOWED NOW.
249-
// All earlier views now yield empty unique_ptrs as well- no dangling pointers, no UB
250-
const std::unique_ptr<Node>& uptr2 = view2->get();
251-
//ASSERT_TRUE(uptr3 == nullptr);
252-
253-
// UPDATE: MOVING DISALLOWED NOW.
254-
const std::unique_ptr<Node>& uptr1 = view1->get();
255-
//ASSERT_TRUE(uptr3 == nullptr);
256-
257-
// UPDATE: MOVING DISALLOWED NOW.
258-
// Even reusing the moved-from view0 is safe- just returns empty
259-
const std::unique_ptr<Node>& uptr00 = view0->get();
260-
//ASSERT_TRUE(uptr00 == nullptr);
261211
}
262212
EXPECT_TRUE(Node::instanceCount() == 1);
263213
ASSERT_TRUE(rtl::getRtlManagedHeapInstanceCount() == 1);
@@ -293,19 +243,14 @@ namespace rtl::unit_test
293243
{
294244
// Get a view of the view as `shared_ptr<int>`
295245
auto view = robj.view<std::shared_ptr<Node>>();
296-
ASSERT_FALSE(view);
246+
EXPECT_FALSE(view);
297247
}
298248
// Check if RObject can reflect as `unique_ptr<Node>`
299249
EXPECT_TRUE(robj.canViewAs<std::unique_ptr<Node>>());
300250
{
301251
// Get a view of the view as `shared_ptr<int>`
302252
auto view = robj.view<std::unique_ptr<Node>>();
303253
EXPECT_TRUE(view);
304-
ASSERT_TRUE(rtl::getRtlManagedHeapInstanceCount() != 0);
305-
{
306-
// UPDATE: MOVING DISALLOWED NOW.
307-
const std::unique_ptr<Node>& movedOutPtr = view->get();
308-
}
309254
EXPECT_TRUE(rtl::getRtlManagedHeapInstanceCount() == 1);
310255
EXPECT_TRUE(Node::instanceCount() == 1);
311256
}
@@ -347,11 +292,6 @@ namespace rtl::unit_test
347292
// Get a view of the view as `shared_ptr<int>`
348293
auto view = robj.view<std::unique_ptr<Node>>();
349294
EXPECT_TRUE(view);
350-
ASSERT_TRUE(rtl::getRtlManagedHeapInstanceCount() != 0);
351-
{
352-
// UPDATE: MOVING DISALLOWED NOW.
353-
const std::unique_ptr<Node>& movedOutPtr = view->get();
354-
}
355295
EXPECT_TRUE(rtl::getRtlManagedHeapInstanceCount() == 1);
356296
EXPECT_TRUE(Node::instanceCount() == 1);
357297
}
@@ -386,7 +326,7 @@ namespace rtl::unit_test
386326
ASSERT_FALSE(robj.isEmpty());
387327

388328
// UPDATE: MOVING DISALLOWED NOW.
389-
const std::unique_ptr<Node>& uptrNode = std::move(view->get());
329+
const std::unique_ptr<Node>& uptrNode = view->get();
390330
EXPECT_EQ(uptrNode->data(), NUM);
391331
}
392332
}

0 commit comments

Comments
 (0)