Skip to content

Commit 9ddd1ed

Browse files
[SYCL] Fixed memory leaks in SchedulerTest.LeafLimit test
1 parent b42c7ec commit 9ddd1ed

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

sycl/unittests/scheduler/LeafLimit.cpp

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,14 @@ using namespace cl::sycl;
2121
// overflowed.
2222
TEST_F(SchedulerTest, LeafLimit) {
2323
MockScheduler MS;
24+
std::vector<std::unique_ptr<MockCommand>> LeavesToAdd;
25+
std::unique_ptr<MockCommand> MockDepCmd;
2426

2527
buffer<int, 1> Buf(range<1>(1));
2628
detail::Requirement MockReq = getMockRequirement(Buf);
27-
MockCommand *MockDepCmd =
28-
new MockCommand(detail::getSyclObjImpl(MQueue), MockReq);
29+
30+
MockDepCmd =
31+
std::make_unique<MockCommand>(detail::getSyclObjImpl(MQueue), MockReq);
2932
detail::MemObjRecord *Rec =
3033
MS.getOrInsertMemObjRecord(detail::getSyclObjImpl(MQueue), &MockReq);
3134

@@ -34,16 +37,17 @@ TEST_F(SchedulerTest, LeafLimit) {
3437
for (std::size_t i = 0; i < Rec->MWriteLeaves.genericCommandsCapacity() + 1;
3538
++i) {
3639
LeavesToAdd.push_back(
37-
new MockCommand(detail::getSyclObjImpl(MQueue), MockReq));
40+
std::make_unique<MockCommand>(detail::getSyclObjImpl(MQueue), MockReq));
3841
}
3942
// Create edges: all soon-to-be leaves are direct users of MockDep
40-
for (auto Leaf : LeavesToAdd) {
41-
MockDepCmd->addUser(Leaf);
42-
Leaf->addDep(detail::DepDesc{MockDepCmd, Leaf->getRequirement(), nullptr});
43+
for (auto &Leaf : LeavesToAdd) {
44+
MockDepCmd->addUser(Leaf.get());
45+
Leaf->addDep(
46+
detail::DepDesc{MockDepCmd.get(), Leaf->getRequirement(), nullptr});
4347
}
4448
// Add edges as leaves and exceed the leaf limit
45-
for (auto LeafPtr : LeavesToAdd) {
46-
MS.addNodeToLeaves(Rec, LeafPtr);
49+
for (auto &LeafPtr : LeavesToAdd) {
50+
MS.addNodeToLeaves(Rec, LeafPtr.get());
4751
}
4852
// Check that the oldest leaf has been removed from the leaf list
4953
// and added as a dependency of the newest one instead
@@ -52,11 +56,11 @@ TEST_F(SchedulerTest, LeafLimit) {
5256
ASSERT_TRUE(std::find(Leaves.begin(), Leaves.end(), LeavesToAdd.front()) ==
5357
Leaves.end());
5458
for (std::size_t i = 1; i < LeavesToAdd.size(); ++i) {
55-
assert(std::find(Leaves.begin(), Leaves.end(), LeavesToAdd[i]) !=
59+
assert(std::find(Leaves.begin(), Leaves.end(), LeavesToAdd[i].get()) !=
5660
Leaves.end());
5761
}
58-
MockCommand *OldestLeaf = LeavesToAdd.front();
59-
MockCommand *NewestLeaf = LeavesToAdd.back();
62+
MockCommand *OldestLeaf = LeavesToAdd.front().get();
63+
MockCommand *NewestLeaf = LeavesToAdd.back().get();
6064
ASSERT_EQ(OldestLeaf->MUsers.size(), 1U);
6165
EXPECT_GT(OldestLeaf->MUsers.count(NewestLeaf), 0U);
6266
ASSERT_EQ(NewestLeaf->MDeps.size(), 2U);

0 commit comments

Comments
 (0)