Skip to content

Commit 14bfa32

Browse files
committed
iox-#27 Fix chunk leak in ClientPortUser
1 parent 0f244a9 commit 14bfa32

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

iceoryx_posh/source/popo/ports/client_port_user.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ void ClientPortUser::sendRequest(RequestHeader* const requestHeader) noexcept
8484
}
8585
else
8686
{
87-
// TODO release request and call error handler
87+
freeRequest(requestHeader);
8888
LogWarn() << "Try to send request without being connected!";
8989
}
9090
}

iceoryx_posh/test/moduletests/test_popo_client_port.cpp

+7-2
Original file line numberDiff line numberDiff line change
@@ -329,12 +329,17 @@ TEST_F(ClientPort_test, SendRequestOnConnectedClientPortEnqueuesRequestToServerQ
329329
});
330330
}
331331

332-
TEST_F(ClientPort_test, SendRequestOnNotConnectedClientPortDoesNotEnqueuesRequestToServerQueue)
332+
TEST_F(ClientPort_test,
333+
SendRequestOnNotConnectedClientPortDoesNotEnqueuesRequestToServerQueueAndReleasesTheChunkToTheMempool)
333334
{
334335
::testing::Test::RecordProperty("TEST_ID", "46c418a8-4f4f-4393-a190-8f5d41deb05e");
335336
auto& sut = clientPortWithoutConnectOnCreate;
336337
sut.portUser.allocateRequest(USER_PAYLOAD_SIZE, USER_PAYLOAD_ALIGNMENT)
337-
.and_then([&](auto& requestHeader) { sut.portUser.sendRequest(requestHeader); })
338+
.and_then([&](auto& requestHeader) {
339+
EXPECT_THAT(this->getNumberOfUsedChunks(), Eq(1U));
340+
sut.portUser.sendRequest(requestHeader);
341+
EXPECT_THAT(this->getNumberOfUsedChunks(), Eq(0U));
342+
})
338343
.or_else([&](auto&) {
339344
constexpr bool UNREACHABLE{false};
340345
EXPECT_TRUE(UNREACHABLE);

0 commit comments

Comments
 (0)