OSDN Git Service

Fold ACL sending into PyHal
authorZach Johnson <zachoverflow@google.com>
Fri, 13 Nov 2020 04:22:27 +0000 (20:22 -0800)
committerZach Johnson <zachoverflow@google.com>
Wed, 18 Nov 2020 22:12:43 +0000 (14:12 -0800)
Bug: 171749953
Tag: #gd-refactor
Test: gd/cert/run --host
Change-Id: I848e344bca3b4b2516a061fdd3c221a5a9409db4

gd/cert/py_hal.py
gd/hal/cert/simple_hal_test.py
gd/hci/cert/direct_hci_test.py

index b7d78a6..b48d39c 100644 (file)
@@ -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))
index d815827..f65b56f 100644 (file)
@@ -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,10 +224,10 @@ class SimpleHalTest(GdBaseTestClass):
         dut_handle = conn_handle
 
         # Send ACL Data
-        self.send_dut_acl_data(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,
-                                hci_packets.BroadcastFlag.POINT_TO_POINT, bytes(b'Just SomeMoreAclData'))
+        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.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.dut_hal.get_acl_stream()).emits(lambda packet: b'SomeMoreAclData' in packet.payload)
index 33c33a3..9d60833 100644 (file)
@@ -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)