Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9941c6b3 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "RootCanal: Use EventMask"

parents 4d695dfc 5d377ee7
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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):
@@ -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,
+5 −0
Original line number Diff line number Diff line
@@ -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()
@@ -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')
@@ -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',
+2 −0
Original line number Diff line number Diff line
@@ -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(
@@ -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',
+8 −4
Original line number Diff line number Diff line
@@ -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;
  }

@@ -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;
  }
}
+269 −126

File changed.

Preview size limit exceeded, changes collapsed.

Loading