diff options
author | Andriy Byzhynar (GitHub) <AByzhynar@luxoft.com> | 2016-07-19 16:29:43 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-19 16:29:43 +0300 |
commit | 808097a8cf307919a4970d41c2842e822c0cb422 (patch) | |
tree | daae8d44ff44505cc0ae475e42420ee8f3721f2b | |
parent | 0625f49ef911800bc5f53792c7a8a6401ab71ca2 (diff) | |
parent | 447ef7844d38f2b1c39951c4abfe43fc43e26cae (diff) | |
download | sdl_core-808097a8cf307919a4970d41c2842e822c0cb422.tar.gz |
Merge pull request #698 from VProdanov/fix/Core_dump_on_app_registration_with_another_appName_and_AppID
Fix_core_dump_due_to_connection_been_created_twice
5 files changed, 108 insertions, 7 deletions
diff --git a/src/components/transport_manager/src/tcp/tcp_connection_factory.cc b/src/components/transport_manager/src/tcp/tcp_connection_factory.cc index 22653e8343..5b1e9af6cb 100644 --- a/src/components/transport_manager/src/tcp/tcp_connection_factory.cc +++ b/src/components/transport_manager/src/tcp/tcp_connection_factory.cc @@ -57,7 +57,6 @@ TransportAdapter::Error TcpConnectionFactory::CreateConnection( TcpServerOiginatedSocketConnection* connection( new TcpServerOiginatedSocketConnection( device_uid, app_handle, controller_)); - controller_->ConnectionCreated(connection, device_uid, app_handle); if (connection->Start() == TransportAdapter::OK) { LOG4CXX_DEBUG(logger_, "TCP connection initialised"); return TransportAdapter::OK; diff --git a/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc b/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc index 65afdf4fc0..5e9f3d941d 100644 --- a/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc +++ b/src/components/transport_manager/src/transport_adapter/threaded_socket_connection.cc @@ -162,7 +162,7 @@ TransportAdapter::Error ThreadedSocketConnection::Disconnect() { void ThreadedSocketConnection::threadMain() { LOG4CXX_AUTO_TRACE(logger_); - controller_->ConnectionCreated(this, device_uid_, app_handle_); + controller_->ConnectionCreated(this, device_handle(), application_handle()); ConnectError* connect_error = NULL; if (!Establish(&connect_error)) { LOG4CXX_ERROR(logger_, "Connection Establish failed"); diff --git a/src/components/transport_manager/test/CMakeLists.txt b/src/components/transport_manager/test/CMakeLists.txt index 4b4c33c0a9..da20f1d43c 100644 --- a/src/components/transport_manager/test/CMakeLists.txt +++ b/src/components/transport_manager/test/CMakeLists.txt @@ -62,15 +62,16 @@ if (BUILD_BT_SUPPORT) endif() set(SOURCES - ${TM_TEST_DIR}/transport_manager_default_test.cc ${TM_TEST_DIR}/transport_manager_impl_test.cc ${TM_TEST_DIR}/transport_adapter_test.cc ${TM_TEST_DIR}/transport_adapter_listener_test.cc ${TM_TEST_DIR}/tcp_transport_adapter_test.cc ${TM_TEST_DIR}/tcp_device_test.cc ${TM_TEST_DIR}/tcp_client_listener_test.cc + ${TM_TEST_DIR}/transport_manager_default_test.cc ) create_test("transport_manager_test" "${SOURCES}" "${LIBRARIES}") file(COPY smartDeviceLink_test.ini DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +file(COPY app_info_storage2 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) endif() diff --git a/src/components/transport_manager/test/app_info_storage2 b/src/components/transport_manager/test/app_info_storage2 new file mode 100644 index 0000000000..794c8b90bc --- /dev/null +++ b/src/components/transport_manager/test/app_info_storage2 @@ -0,0 +1,99 @@ +{ + "TransportManager" : { + "BluetoothAdapter" : null, + "TcpAdapter" : { + "devices" : [ + { + "address" : "57.48.0.1", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name0" + }, + { + "address" : "57.48.0.2", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name1" + }, + { + "address" : "57.48.0.3", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name2" + }, + { + "address" : "57.48.0.4", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name3" + }, + { + "address" : "57.48.0.5", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name4" + }, + { + "address" : "57.48.0.6", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name5" + }, + { + "address" : "57.48.0.7", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name6" + }, + { + "address" : "57.48.0.8", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name7" + }, + { + "address" : "57.48.0.9", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name8" + }, + { + "address" : "57.48.0.10", + "applications" : [ + { + "port" : "12345" + } + ], + "name" : "unique_device_name9" + } + ] + } + } +} diff --git a/src/components/transport_manager/test/transport_manager_default_test.cc b/src/components/transport_manager/test/transport_manager_default_test.cc index 672e48e8ce..8207737d93 100644 --- a/src/components/transport_manager/test/transport_manager_default_test.cc +++ b/src/components/transport_manager/test/transport_manager_default_test.cc @@ -41,11 +41,12 @@ namespace components { namespace transport_manager_test { using ::testing::Return; + TEST(TestTransportManagerDefault, Init_LastStateNotUsed) { MockTransportManagerSettings transport_manager_settings; transport_manager::TransportManagerDefault transport_manager( transport_manager_settings); - resumption::LastState last_state("app_storage_folder", "app_info_storage"); + resumption::LastState last_state("app_storage_folder", "app_info_storage2"); EXPECT_CALL(transport_manager_settings, use_last_state()) .WillRepeatedly(Return(false)); @@ -54,18 +55,19 @@ TEST(TestTransportManagerDefault, Init_LastStateNotUsed) { transport_manager.Init(last_state); } -// TODO(VVeremjova) APPLINK-22021 -TEST(TestTransportManagerDefault, DISABLED_Init_LastStateUsed) { +TEST(TestTransportManagerDefault, Init_LastStateUsed) { MockTransportManagerSettings transport_manager_settings; transport_manager::TransportManagerDefault transport_manager( transport_manager_settings); - resumption::LastState last_state("app_storage_folder", "app_info_storage"); + resumption::LastState last_state("app_storage_folder", "app_info_storage2"); EXPECT_CALL(transport_manager_settings, use_last_state()) .WillRepeatedly(Return(true)); EXPECT_CALL(transport_manager_settings, transport_manager_tcp_adapter_port()) .WillRepeatedly(Return(1u)); + transport_manager.Init(last_state); + transport_manager.Stop(); } } // namespace transport_manager_test |