diff options
author | Vladislav Antonov <vlantonov@luxoft.com> | 2016-04-25 14:31:49 +0300 |
---|---|---|
committer | Vladislav Antonov <vlantonov@luxoft.com> | 2016-04-27 15:31:34 +0300 |
commit | d0c939eb7635990a30e524c0044c90d0716848d9 (patch) | |
tree | fd3b5e870c080d711a9912c2806524b33268718e /src/components/transport_manager/test | |
parent | 771e9d137b1faa296099c66bedfa866b3f46d686 (diff) | |
download | sdl_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.h | 3 | ||||
-rw-r--r-- | src/components/transport_manager/test/transport_manager_impl_test.cc | 2 |
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); } |