summaryrefslogtreecommitdiff
path: root/src/components/transport_manager/test
diff options
context:
space:
mode:
authorVladislav Antonov <vlantonov@luxoft.com>2016-04-25 14:31:49 +0300
committerVladislav Antonov <vlantonov@luxoft.com>2016-04-27 15:31:34 +0300
commitd0c939eb7635990a30e524c0044c90d0716848d9 (patch)
treefd3b5e870c080d711a9912c2806524b33268718e /src/components/transport_manager/test
parent771e9d137b1faa296099c66bedfa866b3f46d686 (diff)
downloadsdl_core-d0c939eb7635990a30e524c0044c90d0716848d9.tar.gz
hotfix/SDL does not release memory after app unregistering
Registered after start connections in TransportAdapterImpl can be unregistered when finalized using the RemoveFinalizedConnection method from the TransportAdapter interface. The call to the RemoveConnection method in the TransportManagerImpl unregisters the connection calling the RemoveFinalizedConnection using the supplied TransportAdapter instance. This solves the observed memory leak of the inactive connections. Issues: APPLINK-22910, APPLINK-23563
Diffstat (limited to 'src/components/transport_manager/test')
-rw-r--r--src/components/transport_manager/test/include/transport_manager/transport_adapter_mock.h3
-rw-r--r--src/components/transport_manager/test/transport_manager_impl_test.cc2
2 files changed, 5 insertions, 0 deletions
diff --git a/src/components/transport_manager/test/include/transport_manager/transport_adapter_mock.h b/src/components/transport_manager/test/include/transport_manager/transport_adapter_mock.h
index ff3ebcbeec..44175593bc 100644
--- a/src/components/transport_manager/test/include/transport_manager/transport_adapter_mock.h
+++ b/src/components/transport_manager/test/include/transport_manager/transport_adapter_mock.h
@@ -73,6 +73,9 @@ class MockTransportAdapter
MOCK_METHOD0(
StopClientListening,
::transport_manager::transport_adapter::TransportAdapter::Error());
+ MOCK_METHOD2(RemoveFinalizedConnection, void(
+ const ::transport_manager::DeviceUID& device_handle,
+ const ::transport_manager::ApplicationHandle& app_handle));
MOCK_METHOD2(Disconnect,
::transport_manager::transport_adapter::TransportAdapter::Error(
const ::transport_manager::DeviceUID& device_handle,
diff --git a/src/components/transport_manager/test/transport_manager_impl_test.cc b/src/components/transport_manager/test/transport_manager_impl_test.cc
index 0e6cd5c78e..e7324376f9 100644
--- a/src/components/transport_manager/test/transport_manager_impl_test.cc
+++ b/src/components/transport_manager/test/transport_manager_impl_test.cc
@@ -285,6 +285,7 @@ class TransportManagerImplTest : public ::testing::Test {
error_);
EXPECT_CALL(*tm_listener_, OnConnectionClosed(application_id_));
+ EXPECT_CALL(*mock_adapter_, RemoveFinalizedConnection(mac_address_, application_id_));
tm_.TestHandle(test_event);
}
@@ -772,6 +773,7 @@ TEST_F(TransportManagerImplTest, CheckUnexpectedDisconnect) {
HandleConnection();
// Act and Assert
EXPECT_CALL(*tm_listener_, OnUnexpectedDisconnect(connection_key_, _));
+ EXPECT_CALL(*mock_adapter_, RemoveFinalizedConnection(mac_address_, application_id_));
tm_.TestHandle(test_event);
}