Loading system/vendor_libs/test_vendor_lib/desktop/root_canal_main.cc +6 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ DEFINE_string(default_commands_file, "", constexpr uint16_t kTestPort = 6401; constexpr uint16_t kHciServerPort = 6402; constexpr uint16_t kLinkServerPort = 6403; constexpr uint16_t kLinkBleServerPort = 6404; extern "C" const char* __asan_default_options() { return "detect_container_overflow=0"; Loading Loading @@ -90,6 +91,7 @@ int main(int argc, char** argv) { uint16_t test_port = kTestPort; uint16_t hci_server_port = kHciServerPort; uint16_t link_server_port = kLinkServerPort; uint16_t link_ble_server_port = kLinkBleServerPort; for (int arg = 0; arg < argc; arg++) { int port = atoi(argv[arg]); Loading @@ -109,6 +111,9 @@ int main(int argc, char** argv) { case 3: link_server_port = port; break; case 4: link_ble_server_port = port; break; default: LOG_WARN("Ignored option %s", argv[arg]); } Loading @@ -119,6 +124,7 @@ int main(int argc, char** argv) { std::make_shared<PosixAsyncSocketServer>(test_port, &am), std::make_shared<PosixAsyncSocketServer>(hci_server_port, &am), std::make_shared<PosixAsyncSocketServer>(link_server_port, &am), std::make_shared<PosixAsyncSocketServer>(link_ble_server_port, &am), std::make_shared<PosixAsyncSocketConnector>(&am), FLAGS_controller_properties_file, FLAGS_default_commands_file); std::promise<void> barrier; Loading system/vendor_libs/test_vendor_lib/desktop/test_environment.cc +22 −8 Original line number Diff line number Diff line Loading @@ -55,11 +55,8 @@ void TestEnvironment::initialize(std::promise<void> barrier) { test_model_.IncomingHciConnection(socket, controller_properties_file_); srv->StartListening(); }); SetUpLinkLayerServer([this](std::shared_ptr<AsyncDataChannel> socket, AsyncDataChannelServer* srv) { test_model_.IncomingLinkLayerConnection(socket); srv->StartListening(); }); SetUpLinkLayerServer(); SetUpLinkBleLayerServer(); LOG_INFO("%s: Finished", __func__); } Loading @@ -80,9 +77,26 @@ void TestEnvironment::SetUpHciServer(ConnectCallback connection_callback) { } } void TestEnvironment::SetUpLinkLayerServer( ConnectCallback connection_callback) { remote_link_layer_transport_.SetUp(link_socket_server_, connection_callback); void TestEnvironment::SetUpLinkBleLayerServer() { remote_link_layer_transport_.SetUp( link_ble_socket_server_, [this](std::shared_ptr<AsyncDataChannel> socket, AsyncDataChannelServer* srv) { test_model_.IncomingLinkBleLayerConnection(socket); srv->StartListening(); }); test_channel_.RegisterSendResponse([](const std::string& response) { LOG_INFO("No LinkLayer Response channel: %s", response.c_str()); }); } void TestEnvironment::SetUpLinkLayerServer() { remote_link_layer_transport_.SetUp( link_socket_server_, [this](std::shared_ptr<AsyncDataChannel> socket, AsyncDataChannelServer* srv) { test_model_.IncomingLinkLayerConnection(socket); srv->StartListening(); }); test_channel_.RegisterSendResponse([](const std::string& response) { LOG_INFO("No LinkLayer Response channel: %s", response.c_str()); Loading system/vendor_libs/test_vendor_lib/desktop/test_environment.h +6 −1 Original line number Diff line number Diff line Loading @@ -48,12 +48,14 @@ class TestEnvironment { TestEnvironment(std::shared_ptr<AsyncDataChannelServer> test_port, std::shared_ptr<AsyncDataChannelServer> hci_server_port, std::shared_ptr<AsyncDataChannelServer> link_server_port, std::shared_ptr<AsyncDataChannelServer> link_ble_server_port, std::shared_ptr<AsyncDataChannelConnector> connector, const std::string& controller_properties_file = "", const std::string& default_commands_file = "") : test_socket_server_(test_port), hci_socket_server_(hci_server_port), link_socket_server_(link_server_port), link_ble_socket_server_(link_ble_server_port), connector_(connector), controller_properties_file_(controller_properties_file), default_commands_file_(default_commands_file), Loading @@ -69,6 +71,7 @@ class TestEnvironment { std::shared_ptr<AsyncDataChannelServer> test_socket_server_; std::shared_ptr<AsyncDataChannelServer> hci_socket_server_; std::shared_ptr<AsyncDataChannelServer> link_socket_server_; std::shared_ptr<AsyncDataChannelServer> link_ble_socket_server_; std::shared_ptr<AsyncDataChannelConnector> connector_; std::string controller_properties_file_; std::string default_commands_file_; Loading @@ -78,7 +81,8 @@ class TestEnvironment { void SetUpTestChannel(); void SetUpHciServer(ConnectCallback on_connect); void SetUpLinkLayerServer(ConnectCallback on_connect); void SetUpLinkLayerServer(); void SetUpLinkBleLayerServer(); std::shared_ptr<AsyncDataChannel> ConnectToRemoteServer( const std::string& server, int port); Loading @@ -87,6 +91,7 @@ class TestEnvironment { test_vendor_lib::TestChannelTransport test_channel_transport_; test_vendor_lib::TestChannelTransport remote_hci_transport_; test_vendor_lib::TestChannelTransport remote_link_layer_transport_; test_vendor_lib::TestChannelTransport remote_link_ble_layer_transport_; test_vendor_lib::TestModel test_model_{ [this]() { return async_manager_.GetNextUserId(); }, Loading system/vendor_libs/test_vendor_lib/model/setup/test_model.cc +6 −1 Original line number Diff line number Diff line Loading @@ -197,11 +197,16 @@ void TestModel::AddLinkLayerConnection(std::shared_ptr<AsyncDataChannel> socket, void TestModel::IncomingLinkLayerConnection( std::shared_ptr<AsyncDataChannel> socket) { // TODO: Handle other phys LOG_INFO("A new link layer connection has arrived."); AddLinkLayerConnection(socket, Phy::Type::BR_EDR); } void TestModel::IncomingLinkBleLayerConnection( std::shared_ptr<AsyncDataChannel> socket) { LOG_INFO("A new low energery link layer (BLE) connection has arrived."); AddLinkLayerConnection(socket, Phy::Type::LOW_ENERGY); } void TestModel::AddRemote(const std::string& server, int port, Phy::Type phy_type) { LOG_INFO("Connecting to %s:%d", server.c_str(), port); Loading system/vendor_libs/test_vendor_lib/model/setup/test_model.h +1 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ class TestModel { void AddLinkLayerConnection(std::shared_ptr<AsyncDataChannel> socket_fd, Phy::Type phy_type); void IncomingLinkLayerConnection(std::shared_ptr<AsyncDataChannel> socket_fd); void IncomingLinkBleLayerConnection(std::shared_ptr<AsyncDataChannel> socket_fd); void IncomingHciConnection(std::shared_ptr<AsyncDataChannel> socket_fd, std::string properties_filename = ""); Loading Loading
system/vendor_libs/test_vendor_lib/desktop/root_canal_main.cc +6 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ DEFINE_string(default_commands_file, "", constexpr uint16_t kTestPort = 6401; constexpr uint16_t kHciServerPort = 6402; constexpr uint16_t kLinkServerPort = 6403; constexpr uint16_t kLinkBleServerPort = 6404; extern "C" const char* __asan_default_options() { return "detect_container_overflow=0"; Loading Loading @@ -90,6 +91,7 @@ int main(int argc, char** argv) { uint16_t test_port = kTestPort; uint16_t hci_server_port = kHciServerPort; uint16_t link_server_port = kLinkServerPort; uint16_t link_ble_server_port = kLinkBleServerPort; for (int arg = 0; arg < argc; arg++) { int port = atoi(argv[arg]); Loading @@ -109,6 +111,9 @@ int main(int argc, char** argv) { case 3: link_server_port = port; break; case 4: link_ble_server_port = port; break; default: LOG_WARN("Ignored option %s", argv[arg]); } Loading @@ -119,6 +124,7 @@ int main(int argc, char** argv) { std::make_shared<PosixAsyncSocketServer>(test_port, &am), std::make_shared<PosixAsyncSocketServer>(hci_server_port, &am), std::make_shared<PosixAsyncSocketServer>(link_server_port, &am), std::make_shared<PosixAsyncSocketServer>(link_ble_server_port, &am), std::make_shared<PosixAsyncSocketConnector>(&am), FLAGS_controller_properties_file, FLAGS_default_commands_file); std::promise<void> barrier; Loading
system/vendor_libs/test_vendor_lib/desktop/test_environment.cc +22 −8 Original line number Diff line number Diff line Loading @@ -55,11 +55,8 @@ void TestEnvironment::initialize(std::promise<void> barrier) { test_model_.IncomingHciConnection(socket, controller_properties_file_); srv->StartListening(); }); SetUpLinkLayerServer([this](std::shared_ptr<AsyncDataChannel> socket, AsyncDataChannelServer* srv) { test_model_.IncomingLinkLayerConnection(socket); srv->StartListening(); }); SetUpLinkLayerServer(); SetUpLinkBleLayerServer(); LOG_INFO("%s: Finished", __func__); } Loading @@ -80,9 +77,26 @@ void TestEnvironment::SetUpHciServer(ConnectCallback connection_callback) { } } void TestEnvironment::SetUpLinkLayerServer( ConnectCallback connection_callback) { remote_link_layer_transport_.SetUp(link_socket_server_, connection_callback); void TestEnvironment::SetUpLinkBleLayerServer() { remote_link_layer_transport_.SetUp( link_ble_socket_server_, [this](std::shared_ptr<AsyncDataChannel> socket, AsyncDataChannelServer* srv) { test_model_.IncomingLinkBleLayerConnection(socket); srv->StartListening(); }); test_channel_.RegisterSendResponse([](const std::string& response) { LOG_INFO("No LinkLayer Response channel: %s", response.c_str()); }); } void TestEnvironment::SetUpLinkLayerServer() { remote_link_layer_transport_.SetUp( link_socket_server_, [this](std::shared_ptr<AsyncDataChannel> socket, AsyncDataChannelServer* srv) { test_model_.IncomingLinkLayerConnection(socket); srv->StartListening(); }); test_channel_.RegisterSendResponse([](const std::string& response) { LOG_INFO("No LinkLayer Response channel: %s", response.c_str()); Loading
system/vendor_libs/test_vendor_lib/desktop/test_environment.h +6 −1 Original line number Diff line number Diff line Loading @@ -48,12 +48,14 @@ class TestEnvironment { TestEnvironment(std::shared_ptr<AsyncDataChannelServer> test_port, std::shared_ptr<AsyncDataChannelServer> hci_server_port, std::shared_ptr<AsyncDataChannelServer> link_server_port, std::shared_ptr<AsyncDataChannelServer> link_ble_server_port, std::shared_ptr<AsyncDataChannelConnector> connector, const std::string& controller_properties_file = "", const std::string& default_commands_file = "") : test_socket_server_(test_port), hci_socket_server_(hci_server_port), link_socket_server_(link_server_port), link_ble_socket_server_(link_ble_server_port), connector_(connector), controller_properties_file_(controller_properties_file), default_commands_file_(default_commands_file), Loading @@ -69,6 +71,7 @@ class TestEnvironment { std::shared_ptr<AsyncDataChannelServer> test_socket_server_; std::shared_ptr<AsyncDataChannelServer> hci_socket_server_; std::shared_ptr<AsyncDataChannelServer> link_socket_server_; std::shared_ptr<AsyncDataChannelServer> link_ble_socket_server_; std::shared_ptr<AsyncDataChannelConnector> connector_; std::string controller_properties_file_; std::string default_commands_file_; Loading @@ -78,7 +81,8 @@ class TestEnvironment { void SetUpTestChannel(); void SetUpHciServer(ConnectCallback on_connect); void SetUpLinkLayerServer(ConnectCallback on_connect); void SetUpLinkLayerServer(); void SetUpLinkBleLayerServer(); std::shared_ptr<AsyncDataChannel> ConnectToRemoteServer( const std::string& server, int port); Loading @@ -87,6 +91,7 @@ class TestEnvironment { test_vendor_lib::TestChannelTransport test_channel_transport_; test_vendor_lib::TestChannelTransport remote_hci_transport_; test_vendor_lib::TestChannelTransport remote_link_layer_transport_; test_vendor_lib::TestChannelTransport remote_link_ble_layer_transport_; test_vendor_lib::TestModel test_model_{ [this]() { return async_manager_.GetNextUserId(); }, Loading
system/vendor_libs/test_vendor_lib/model/setup/test_model.cc +6 −1 Original line number Diff line number Diff line Loading @@ -197,11 +197,16 @@ void TestModel::AddLinkLayerConnection(std::shared_ptr<AsyncDataChannel> socket, void TestModel::IncomingLinkLayerConnection( std::shared_ptr<AsyncDataChannel> socket) { // TODO: Handle other phys LOG_INFO("A new link layer connection has arrived."); AddLinkLayerConnection(socket, Phy::Type::BR_EDR); } void TestModel::IncomingLinkBleLayerConnection( std::shared_ptr<AsyncDataChannel> socket) { LOG_INFO("A new low energery link layer (BLE) connection has arrived."); AddLinkLayerConnection(socket, Phy::Type::LOW_ENERGY); } void TestModel::AddRemote(const std::string& server, int port, Phy::Type phy_type) { LOG_INFO("Connecting to %s:%d", server.c_str(), port); Loading
system/vendor_libs/test_vendor_lib/model/setup/test_model.h +1 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ class TestModel { void AddLinkLayerConnection(std::shared_ptr<AsyncDataChannel> socket_fd, Phy::Type phy_type); void IncomingLinkLayerConnection(std::shared_ptr<AsyncDataChannel> socket_fd); void IncomingLinkBleLayerConnection(std::shared_ptr<AsyncDataChannel> socket_fd); void IncomingHciConnection(std::shared_ptr<AsyncDataChannel> socket_fd, std::string properties_filename = ""); Loading