Loading system/gd/cert/py_hal.py +7 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,8 @@ class PyHal(Closable): self.hci_event_stream = EventStream(self.device.hal.StreamEvents(empty_proto.Empty())) self.acl_stream = EventStream(self.device.hal.StreamAcl(empty_proto.Empty())) self.event_mask = 0x1FFF_FFFF_FFFF # Default Event Mask (Core Vol 4 [E] 7.3.1) # We don't deal with SCO for now def close(self): Loading Loading @@ -169,6 +171,11 @@ class PyHal(Closable): [phy_scan_params])) self.wait_for_complete(OpCode.LE_SET_EXTENDED_SCAN_PARAMETERS) def unmask_event(self, *event_codes): for event_code in event_codes: self.event_mask |= 1 << (int(event_code) - 1) self.send_hci_command(hci_packets.SetEventMaskBuilder(self.event_mask)) def start_scanning(self): self.send_hci_command( hci_packets.LeSetExtendedScanEnableBuilder(hci_packets.Enable.ENABLED, Loading system/gd/hal/cert/simple_hal_test_lib.py +5 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ class SimpleHalTestBase(): ) def test_le_ad_scan_cert_advertises(self): self.dut_hal.unmask_event(hci_packets.EventCode.LE_META_EVENT) self.dut_hal.set_random_le_address('0D:05:04:03:02:01') self.dut_hal.set_scan_parameters() Loading @@ -96,10 +97,12 @@ class SimpleHalTestBase(): self.dut_hal.stop_scanning() def test_le_connection_dut_advertises(self): self.cert_hal.unmask_event(hci_packets.EventCode.LE_META_EVENT) self.cert_hal.set_random_le_address('0C:05:04:03:02:01') self.cert_hal.initiate_le_connection('0D:05:04:03:02:01') # DUT Advertises self.dut_hal.unmask_event(hci_packets.EventCode.LE_META_EVENT) advertisement = self.dut_hal.create_advertisement(0, '0D:05:04:03:02:01') advertisement.set_data(b'Im_The_DUT') advertisement.set_scan_response(b'Im_The_D') Loading @@ -115,10 +118,12 @@ class SimpleHalTestBase(): assertThat(self.dut_hal.get_acl_stream()).emits(lambda packet: b'SomeMoreAclData' in packet.payload) def test_le_connect_list_connection_cert_advertises(self): self.dut_hal.unmask_event(hci_packets.EventCode.LE_META_EVENT) self.dut_hal.set_random_le_address('0D:05:04:03:02:01') self.dut_hal.add_to_connect_list('0C:05:04:03:02:01') self.dut_hal.initiate_le_connection_by_connect_list('BA:D5:A4:A3:A2:A1') self.cert_hal.unmask_event(hci_packets.EventCode.LE_META_EVENT) advertisement = self.cert_hal.create_advertisement( 1, '0C:05:04:03:02:01', Loading system/gd/hci/cert/direct_hci_test_lib.py +2 −0 Original line number Diff line number Diff line Loading @@ -202,6 +202,7 @@ class DirectHciTestBase(): SubeventCode.ENHANCED_CONNECTION_COMPLETE, SubeventCode.READ_REMOTE_FEATURES_COMPLETE) # Cert Connects self.cert_hal.unmask_event(EventCode.LE_META_EVENT) self.cert_hal.send_hci_command(LeSetRandomAddressBuilder('0C:05:04:03:02:01')) phy_scan_params = DirectHciTestBase._create_phy_scan_params() self.cert_hal.send_hci_command( Loading Loading @@ -242,6 +243,7 @@ class DirectHciTestBase(): OwnAddressType.RANDOM_DEVICE_ADDRESS, AddressType.RANDOM_DEVICE_ADDRESS, 'BA:D5:A4:A3:A2:A1', 1, [phy_scan_params])) self.cert_hal.unmask_event(EventCode.LE_META_EVENT) advertisement = self.cert_hal.create_advertisement( 1, '0C:05:04:03:02:01', Loading system/vendor_libs/test_vendor_lib/model/controller/dual_mode_controller.cc +8 −4 Original line number Diff line number Diff line Loading @@ -331,8 +331,10 @@ void DualModeController::HandleAcl(std::shared_ptr<std::vector<uint8_t>> packet) cp.connection_handle_ = handle; cp.host_num_of_completed_packets_ = kNumCommandPackets; completed_packets.push_back(cp); if (properties_.IsUnmasked(EventCode::NUMBER_OF_COMPLETED_PACKETS)) { send_event_(bluetooth::hci::NumberOfCompletedPacketsBuilder::Create( completed_packets)); } return; } Loading @@ -352,8 +354,10 @@ void DualModeController::HandleSco(std::shared_ptr<std::vector<uint8_t>> packet) cp.connection_handle_ = handle; cp.host_num_of_completed_packets_ = kNumCommandPackets; completed_packets.push_back(cp); if (properties_.IsUnmasked(EventCode::NUMBER_OF_COMPLETED_PACKETS)) { send_event_(bluetooth::hci::NumberOfCompletedPacketsBuilder::Create( completed_packets)); } return; } } Loading system/vendor_libs/test_vendor_lib/model/controller/link_layer_controller.cc +269 −126 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
system/gd/cert/py_hal.py +7 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,8 @@ class PyHal(Closable): self.hci_event_stream = EventStream(self.device.hal.StreamEvents(empty_proto.Empty())) self.acl_stream = EventStream(self.device.hal.StreamAcl(empty_proto.Empty())) self.event_mask = 0x1FFF_FFFF_FFFF # Default Event Mask (Core Vol 4 [E] 7.3.1) # We don't deal with SCO for now def close(self): Loading Loading @@ -169,6 +171,11 @@ class PyHal(Closable): [phy_scan_params])) self.wait_for_complete(OpCode.LE_SET_EXTENDED_SCAN_PARAMETERS) def unmask_event(self, *event_codes): for event_code in event_codes: self.event_mask |= 1 << (int(event_code) - 1) self.send_hci_command(hci_packets.SetEventMaskBuilder(self.event_mask)) def start_scanning(self): self.send_hci_command( hci_packets.LeSetExtendedScanEnableBuilder(hci_packets.Enable.ENABLED, Loading
system/gd/hal/cert/simple_hal_test_lib.py +5 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ class SimpleHalTestBase(): ) def test_le_ad_scan_cert_advertises(self): self.dut_hal.unmask_event(hci_packets.EventCode.LE_META_EVENT) self.dut_hal.set_random_le_address('0D:05:04:03:02:01') self.dut_hal.set_scan_parameters() Loading @@ -96,10 +97,12 @@ class SimpleHalTestBase(): self.dut_hal.stop_scanning() def test_le_connection_dut_advertises(self): self.cert_hal.unmask_event(hci_packets.EventCode.LE_META_EVENT) self.cert_hal.set_random_le_address('0C:05:04:03:02:01') self.cert_hal.initiate_le_connection('0D:05:04:03:02:01') # DUT Advertises self.dut_hal.unmask_event(hci_packets.EventCode.LE_META_EVENT) advertisement = self.dut_hal.create_advertisement(0, '0D:05:04:03:02:01') advertisement.set_data(b'Im_The_DUT') advertisement.set_scan_response(b'Im_The_D') Loading @@ -115,10 +118,12 @@ class SimpleHalTestBase(): assertThat(self.dut_hal.get_acl_stream()).emits(lambda packet: b'SomeMoreAclData' in packet.payload) def test_le_connect_list_connection_cert_advertises(self): self.dut_hal.unmask_event(hci_packets.EventCode.LE_META_EVENT) self.dut_hal.set_random_le_address('0D:05:04:03:02:01') self.dut_hal.add_to_connect_list('0C:05:04:03:02:01') self.dut_hal.initiate_le_connection_by_connect_list('BA:D5:A4:A3:A2:A1') self.cert_hal.unmask_event(hci_packets.EventCode.LE_META_EVENT) advertisement = self.cert_hal.create_advertisement( 1, '0C:05:04:03:02:01', Loading
system/gd/hci/cert/direct_hci_test_lib.py +2 −0 Original line number Diff line number Diff line Loading @@ -202,6 +202,7 @@ class DirectHciTestBase(): SubeventCode.ENHANCED_CONNECTION_COMPLETE, SubeventCode.READ_REMOTE_FEATURES_COMPLETE) # Cert Connects self.cert_hal.unmask_event(EventCode.LE_META_EVENT) self.cert_hal.send_hci_command(LeSetRandomAddressBuilder('0C:05:04:03:02:01')) phy_scan_params = DirectHciTestBase._create_phy_scan_params() self.cert_hal.send_hci_command( Loading Loading @@ -242,6 +243,7 @@ class DirectHciTestBase(): OwnAddressType.RANDOM_DEVICE_ADDRESS, AddressType.RANDOM_DEVICE_ADDRESS, 'BA:D5:A4:A3:A2:A1', 1, [phy_scan_params])) self.cert_hal.unmask_event(EventCode.LE_META_EVENT) advertisement = self.cert_hal.create_advertisement( 1, '0C:05:04:03:02:01', Loading
system/vendor_libs/test_vendor_lib/model/controller/dual_mode_controller.cc +8 −4 Original line number Diff line number Diff line Loading @@ -331,8 +331,10 @@ void DualModeController::HandleAcl(std::shared_ptr<std::vector<uint8_t>> packet) cp.connection_handle_ = handle; cp.host_num_of_completed_packets_ = kNumCommandPackets; completed_packets.push_back(cp); if (properties_.IsUnmasked(EventCode::NUMBER_OF_COMPLETED_PACKETS)) { send_event_(bluetooth::hci::NumberOfCompletedPacketsBuilder::Create( completed_packets)); } return; } Loading @@ -352,8 +354,10 @@ void DualModeController::HandleSco(std::shared_ptr<std::vector<uint8_t>> packet) cp.connection_handle_ = handle; cp.host_num_of_completed_packets_ = kNumCommandPackets; completed_packets.push_back(cp); if (properties_.IsUnmasked(EventCode::NUMBER_OF_COMPLETED_PACKETS)) { send_event_(bluetooth::hci::NumberOfCompletedPacketsBuilder::Create( completed_packets)); } return; } } Loading
system/vendor_libs/test_vendor_lib/model/controller/link_layer_controller.cc +269 −126 File changed.Preview size limit exceeded, changes collapsed. Show changes