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

Commit 018c3af5 authored by Zach Johnson's avatar Zach Johnson
Browse files

Fold ACL sending into PyHal

Bug: 171749953
Tag: #gd-refactor
Test: gd/cert/run --host
Change-Id: I848e344bca3b4b2516a061fdd3c221a5a9409db4
parent b7c787a0
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@ from cert.closable import safeClose
from hal import facade_pb2 as hal_facade
from bluetooth_packets_python3.hci_packets import WriteScanEnableBuilder
from bluetooth_packets_python3.hci_packets import ScanEnable
from bluetooth_packets_python3.hci_packets import AclPacketBuilder
from bluetooth_packets_python3 import RawBuilder


class PyHal(Closable):
@@ -46,8 +48,9 @@ class PyHal(Closable):
    def send_hci_command(self, command):
        self.device.hal.SendCommand(hal_facade.Command(payload=bytes(command.Serialize())))

    def send_acl(self, acl):
        self.device.hal.SendAcl(hal_facade.AclPacket(payload=bytes(acl)))
    def send_acl(self, handle, pb_flag, b_flag, data):
        acl = AclPacketBuilder(handle, pb_flag, b_flag, RawBuilder(data))
        self.device.hal.SendAcl(hal_facade.AclPacket(payload=bytes(acl.Serialize())))

    def enable_inquiry_and_page_scan(self):
        self.send_hci_command(WriteScanEnableBuilder(ScanEnable.INQUIRY_AND_PAGE_SCAN))
+4 −12
Original line number Diff line number Diff line
@@ -50,14 +50,6 @@ class SimpleHalTest(GdBaseTestClass):
        self.cert_hal.close()
        super().teardown_test()

    def send_cert_acl_data(self, handle, pb_flag, b_flag, acl):
        acl_msg = AclPacketBuilder(handle, pb_flag, b_flag, RawBuilder(acl))
        self.cert_hal.send_acl(acl_msg.Serialize())

    def send_dut_acl_data(self, handle, pb_flag, b_flag, acl):
        acl_msg = AclPacketBuilder(handle, pb_flag, b_flag, RawBuilder(acl))
        self.dut_hal.send_acl(acl_msg.Serialize())

    def test_fetch_hci_event(self):
        self.dut_hal.send_hci_command(
            hci_packets.LeAddDeviceToConnectListBuilder(hci_packets.ConnectListAddressType.RANDOM, '0C:05:04:03:02:01'))
@@ -232,9 +224,9 @@ class SimpleHalTest(GdBaseTestClass):
        dut_handle = conn_handle

        # Send ACL Data
        self.send_dut_acl_data(dut_handle, hci_packets.PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
        self.dut_hal.send_acl(dut_handle, hci_packets.PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
                              hci_packets.BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeAclData'))
        self.send_cert_acl_data(cert_handle, hci_packets.PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
        self.cert_hal.send_acl(cert_handle, hci_packets.PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
                               hci_packets.BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeMoreAclData'))

        assertThat(self.cert_hal.get_acl_stream()).emits(lambda packet: b'SomeAclData' in packet.payload)
+3 −7
Original line number Diff line number Diff line
@@ -99,10 +99,6 @@ class DirectHciTest(GdBaseTestClass):
            handle=int(handle), packet_boundary_flag=int(pb_flag), broadcast_flag=int(b_flag), data=acl)
        self.dut.hci.SendAcl(acl_msg)

    def send_hal_acl_data(self, handle, pb_flag, b_flag, acl):
        acl_msg = AclPacketBuilder(handle, pb_flag, b_flag, RawBuilder(acl))
        self.cert_hal.send_acl(acl_msg.Serialize())

    def test_local_hci_cmd_and_event(self):
        # Loopback mode responds with ACL and SCO connection complete
        self.dut_hci.register_for_events(EventCode.LOOPBACK_COMMAND)
@@ -271,7 +267,7 @@ class DirectHciTest(GdBaseTestClass):
        # Send ACL Data
        self.enqueue_acl_data(dut_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
                              BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeAclData'))
        self.send_hal_acl_data(cert_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
        self.cert_hal.send_acl(cert_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
                               BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeMoreAclData'))

        assertThat(self.cert_hal.get_acl_stream()).emits(
@@ -374,7 +370,7 @@ class DirectHciTest(GdBaseTestClass):
        # Send ACL Data
        self.enqueue_acl_data(dut_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
                              BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeAclData'))
        self.send_hal_acl_data(cert_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
        self.cert_hal.send_acl(cert_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
                               BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeMoreAclData'))

        assertThat(self.cert_hal.get_acl_stream()).emits(lambda packet: b'SomeAclData' in packet.payload)
@@ -414,7 +410,7 @@ class DirectHciTest(GdBaseTestClass):
        # Send ACL Data
        self.enqueue_acl_data(dut_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
                              BroadcastFlag.POINT_TO_POINT, bytes(b'This is just SomeAclData'))
        self.send_hal_acl_data(cert_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
        self.cert_hal.send_acl(cert_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
                               BroadcastFlag.POINT_TO_POINT, bytes(b'This is just SomeMoreAclData'))

        assertThat(self.cert_hal.get_acl_stream()).emits(lambda packet: b'SomeAclData' in packet.payload)