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

Commit eff89b35 authored by Zach Johnson's avatar Zach Johnson
Browse files

Add send_acl_first to PyHal, to simplify redundancy

Bug: 171749953
Tag: #gd-refactor
Test: gd/cert/run --host
Change-Id: I90cfe69ec30ed6b92366df81874c2ab30abe7f84
parent 018c3af5
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -23,6 +23,8 @@ from bluetooth_packets_python3.hci_packets import WriteScanEnableBuilder
from bluetooth_packets_python3.hci_packets import ScanEnable
from bluetooth_packets_python3.hci_packets import ScanEnable
from bluetooth_packets_python3.hci_packets import AclPacketBuilder
from bluetooth_packets_python3.hci_packets import AclPacketBuilder
from bluetooth_packets_python3 import RawBuilder
from bluetooth_packets_python3 import RawBuilder
from bluetooth_packets_python3.hci_packets import BroadcastFlag
from bluetooth_packets_python3.hci_packets import PacketBoundaryFlag




class PyHal(Closable):
class PyHal(Closable):
@@ -52,5 +54,8 @@ class PyHal(Closable):
        acl = AclPacketBuilder(handle, pb_flag, b_flag, RawBuilder(data))
        acl = AclPacketBuilder(handle, pb_flag, b_flag, RawBuilder(data))
        self.device.hal.SendAcl(hal_facade.AclPacket(payload=bytes(acl.Serialize())))
        self.device.hal.SendAcl(hal_facade.AclPacket(payload=bytes(acl.Serialize())))


    def send_acl_first(self, handle, data):
        self.send_acl(handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE, BroadcastFlag.POINT_TO_POINT, data)

    def enable_inquiry_and_page_scan(self):
    def enable_inquiry_and_page_scan(self):
        self.send_hci_command(WriteScanEnableBuilder(ScanEnable.INQUIRY_AND_PAGE_SCAN))
        self.send_hci_command(WriteScanEnableBuilder(ScanEnable.INQUIRY_AND_PAGE_SCAN))
+2 −4
Original line number Original line Diff line number Diff line
@@ -224,10 +224,8 @@ class SimpleHalTest(GdBaseTestClass):
        dut_handle = conn_handle
        dut_handle = conn_handle


        # Send ACL Data
        # Send ACL Data
        self.dut_hal.send_acl(dut_handle, hci_packets.PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
        self.dut_hal.send_acl_first(dut_handle, bytes(b'Just SomeAclData'))
                              hci_packets.BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeAclData'))
        self.cert_hal.send_acl_first(cert_handle, bytes(b'Just SomeMoreAclData'))
        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)
        assertThat(self.cert_hal.get_acl_stream()).emits(lambda packet: b'SomeAclData' in packet.payload)
        assertThat(self.dut_hal.get_acl_stream()).emits(lambda packet: b'SomeMoreAclData' in packet.payload)
        assertThat(self.dut_hal.get_acl_stream()).emits(lambda packet: b'SomeMoreAclData' in packet.payload)
+3 −6
Original line number Original line Diff line number Diff line
@@ -267,8 +267,7 @@ class DirectHciTest(GdBaseTestClass):
        # Send ACL Data
        # Send ACL Data
        self.enqueue_acl_data(dut_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
        self.enqueue_acl_data(dut_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
                              BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeAclData'))
                              BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeAclData'))
        self.cert_hal.send_acl(cert_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
        self.cert_hal.send_acl_first(cert_handle, bytes(b'Just SomeMoreAclData'))
                               BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeMoreAclData'))


        assertThat(self.cert_hal.get_acl_stream()).emits(
        assertThat(self.cert_hal.get_acl_stream()).emits(
            lambda packet: logging.debug(packet.payload) or b'SomeAclData' in packet.payload)
            lambda packet: logging.debug(packet.payload) or b'SomeAclData' in packet.payload)
@@ -370,8 +369,7 @@ class DirectHciTest(GdBaseTestClass):
        # Send ACL Data
        # Send ACL Data
        self.enqueue_acl_data(dut_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
        self.enqueue_acl_data(dut_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
                              BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeAclData'))
                              BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeAclData'))
        self.cert_hal.send_acl(cert_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
        self.cert_hal.send_acl_first(cert_handle, bytes(b'Just SomeMoreAclData'))
                               BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeMoreAclData'))


        assertThat(self.cert_hal.get_acl_stream()).emits(lambda packet: b'SomeAclData' in packet.payload)
        assertThat(self.cert_hal.get_acl_stream()).emits(lambda packet: b'SomeAclData' in packet.payload)
        assertThat(self.dut_hci.get_raw_acl_stream()).emits(lambda packet: b'SomeMoreAclData' in packet.data)
        assertThat(self.dut_hci.get_raw_acl_stream()).emits(lambda packet: b'SomeMoreAclData' in packet.data)
@@ -410,8 +408,7 @@ class DirectHciTest(GdBaseTestClass):
        # Send ACL Data
        # Send ACL Data
        self.enqueue_acl_data(dut_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
        self.enqueue_acl_data(dut_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
                              BroadcastFlag.POINT_TO_POINT, bytes(b'This is just SomeAclData'))
                              BroadcastFlag.POINT_TO_POINT, bytes(b'This is just SomeAclData'))
        self.cert_hal.send_acl(cert_handle, PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE,
        self.cert_hal.send_acl_first(cert_handle, bytes(b'This is just SomeMoreAclData'))
                               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)
        assertThat(self.cert_hal.get_acl_stream()).emits(lambda packet: b'SomeAclData' in packet.payload)
        assertThat(self.dut_hci.get_raw_acl_stream()).emits(lambda packet: b'SomeMoreAclData' in packet.data)
        assertThat(self.dut_hci.get_raw_acl_stream()).emits(lambda packet: b'SomeMoreAclData' in packet.data)