Loading system/gd/hci/hci_layer_fake.cc +4 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,10 @@ CommandView TestHciLayer::GetCommand() { return command_packet_view; } void TestHciLayer::AssertNoQueuedCommand() { EXPECT_TRUE(command_queue_.empty()); } void TestHciLayer::RegisterEventHandler( EventCode event_code, common::ContextualCallback<void(EventView)> event_handler) { registered_events_[event_code] = event_handler; Loading system/gd/hci/hci_layer_fake.h +2 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,8 @@ class TestHciLayer : public HciLayer { CommandView GetCommand(); void AssertNoQueuedCommand(); void RegisterEventHandler(EventCode event_code, common::ContextualCallback<void(EventView)> event_handler) override; void UnregisterEventHandler(EventCode event_code) override; Loading system/gd/hci/le_scanning_manager.cc +4 −0 Original line number Diff line number Diff line Loading @@ -561,6 +561,8 @@ struct LeScanningManager::impl : public LeAddressManagerCallback { scan_on_resume_ = true; return; } scan_on_resume_ = false; is_scanning_ = true; if (!address_manager_registered_) { le_address_manager_->Register(this); Loading @@ -584,6 +586,8 @@ struct LeScanningManager::impl : public LeAddressManagerCallback { } void stop_scan() { scan_on_resume_ = false; if (!is_scanning_) { LOG_INFO("Scanning already stopped, return!"); return; Loading system/gd/hci/le_scanning_manager_test.cc +35 −0 Original line number Diff line number Diff line Loading @@ -611,6 +611,41 @@ TEST_F(LeScanningManagerExtendedTest, start_scan_test) { test_hci_layer_->IncomingLeMetaEvent(LeExtendedAdvertisingReportBuilder::Create({report})); } TEST_F(LeScanningManagerExtendedTest, start_scan_on_resume_conflict_test) { TestLeAddressManager* test_le_address_manager = (TestLeAddressManager*)test_acl_manager_->GetLeAddressManager(); // Enable scan le_scanning_manager->Scan(true); ASSERT_EQ(OpCode::LE_SET_EXTENDED_SCAN_PARAMETERS, test_hci_layer_->GetCommand().GetOpCode()); test_hci_layer_->IncomingEvent( LeSetExtendedScanParametersCompleteBuilder::Create(uint8_t{1}, ErrorCode::SUCCESS)); ASSERT_EQ(OpCode::LE_SET_EXTENDED_SCAN_ENABLE, test_hci_layer_->GetCommand().GetOpCode()); test_hci_layer_->IncomingEvent( LeSetExtendedScanEnableCompleteBuilder::Create(uint8_t{1}, ErrorCode::SUCCESS)); test_le_address_manager->client_->OnPause(); ASSERT_EQ(OpCode::LE_SET_EXTENDED_SCAN_ENABLE, test_hci_layer_->GetCommand().GetOpCode()); test_hci_layer_->IncomingEvent( LeSetExtendedScanEnableCompleteBuilder::Create(uint8_t{1}, ErrorCode::SUCCESS)); le_scanning_manager->Scan(false); test_hci_layer_->AssertNoQueuedCommand(); le_scanning_manager->Scan(true); ASSERT_EQ(OpCode::LE_SET_EXTENDED_SCAN_PARAMETERS, test_hci_layer_->GetCommand().GetOpCode()); test_hci_layer_->IncomingEvent( LeSetExtendedScanParametersCompleteBuilder::Create(uint8_t{1}, ErrorCode::SUCCESS)); ASSERT_EQ(OpCode::LE_SET_EXTENDED_SCAN_ENABLE, test_hci_layer_->GetCommand().GetOpCode()); test_hci_layer_->IncomingEvent( LeSetExtendedScanEnableCompleteBuilder::Create(uint8_t{1}, ErrorCode::SUCCESS)); // Ensure there is no double enable commands on resume test_le_address_manager->client_->OnResume(); sync_client_handler(); test_hci_layer_->AssertNoQueuedCommand(); } TEST_F(LeScanningManagerExtendedTest, ignore_on_pause_on_resume_after_unregistered) { TestLeAddressManager* test_le_address_manager = (TestLeAddressManager*)test_acl_manager_->GetLeAddressManager(); test_le_address_manager->ignore_unregister_for_testing = true; Loading Loading
system/gd/hci/hci_layer_fake.cc +4 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,10 @@ CommandView TestHciLayer::GetCommand() { return command_packet_view; } void TestHciLayer::AssertNoQueuedCommand() { EXPECT_TRUE(command_queue_.empty()); } void TestHciLayer::RegisterEventHandler( EventCode event_code, common::ContextualCallback<void(EventView)> event_handler) { registered_events_[event_code] = event_handler; Loading
system/gd/hci/hci_layer_fake.h +2 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,8 @@ class TestHciLayer : public HciLayer { CommandView GetCommand(); void AssertNoQueuedCommand(); void RegisterEventHandler(EventCode event_code, common::ContextualCallback<void(EventView)> event_handler) override; void UnregisterEventHandler(EventCode event_code) override; Loading
system/gd/hci/le_scanning_manager.cc +4 −0 Original line number Diff line number Diff line Loading @@ -561,6 +561,8 @@ struct LeScanningManager::impl : public LeAddressManagerCallback { scan_on_resume_ = true; return; } scan_on_resume_ = false; is_scanning_ = true; if (!address_manager_registered_) { le_address_manager_->Register(this); Loading @@ -584,6 +586,8 @@ struct LeScanningManager::impl : public LeAddressManagerCallback { } void stop_scan() { scan_on_resume_ = false; if (!is_scanning_) { LOG_INFO("Scanning already stopped, return!"); return; Loading
system/gd/hci/le_scanning_manager_test.cc +35 −0 Original line number Diff line number Diff line Loading @@ -611,6 +611,41 @@ TEST_F(LeScanningManagerExtendedTest, start_scan_test) { test_hci_layer_->IncomingLeMetaEvent(LeExtendedAdvertisingReportBuilder::Create({report})); } TEST_F(LeScanningManagerExtendedTest, start_scan_on_resume_conflict_test) { TestLeAddressManager* test_le_address_manager = (TestLeAddressManager*)test_acl_manager_->GetLeAddressManager(); // Enable scan le_scanning_manager->Scan(true); ASSERT_EQ(OpCode::LE_SET_EXTENDED_SCAN_PARAMETERS, test_hci_layer_->GetCommand().GetOpCode()); test_hci_layer_->IncomingEvent( LeSetExtendedScanParametersCompleteBuilder::Create(uint8_t{1}, ErrorCode::SUCCESS)); ASSERT_EQ(OpCode::LE_SET_EXTENDED_SCAN_ENABLE, test_hci_layer_->GetCommand().GetOpCode()); test_hci_layer_->IncomingEvent( LeSetExtendedScanEnableCompleteBuilder::Create(uint8_t{1}, ErrorCode::SUCCESS)); test_le_address_manager->client_->OnPause(); ASSERT_EQ(OpCode::LE_SET_EXTENDED_SCAN_ENABLE, test_hci_layer_->GetCommand().GetOpCode()); test_hci_layer_->IncomingEvent( LeSetExtendedScanEnableCompleteBuilder::Create(uint8_t{1}, ErrorCode::SUCCESS)); le_scanning_manager->Scan(false); test_hci_layer_->AssertNoQueuedCommand(); le_scanning_manager->Scan(true); ASSERT_EQ(OpCode::LE_SET_EXTENDED_SCAN_PARAMETERS, test_hci_layer_->GetCommand().GetOpCode()); test_hci_layer_->IncomingEvent( LeSetExtendedScanParametersCompleteBuilder::Create(uint8_t{1}, ErrorCode::SUCCESS)); ASSERT_EQ(OpCode::LE_SET_EXTENDED_SCAN_ENABLE, test_hci_layer_->GetCommand().GetOpCode()); test_hci_layer_->IncomingEvent( LeSetExtendedScanEnableCompleteBuilder::Create(uint8_t{1}, ErrorCode::SUCCESS)); // Ensure there is no double enable commands on resume test_le_address_manager->client_->OnResume(); sync_client_handler(); test_hci_layer_->AssertNoQueuedCommand(); } TEST_F(LeScanningManagerExtendedTest, ignore_on_pause_on_resume_after_unregistered) { TestLeAddressManager* test_le_address_manager = (TestLeAddressManager*)test_acl_manager_->GetLeAddressManager(); test_le_address_manager->ignore_unregister_for_testing = true; Loading