def accept_connection(self): connection_request = HciCaptures.ConnectionRequestCapture() assertThat(self.event_stream).emits(connection_request) self.send_command( hci_packets.AcceptConnectionRequestBuilder(connection_request.get().GetBdAddr(), hci_packets.AcceptConnectionRequestRole.REMAIN_PERIPHERAL)) return self.complete_connection()
def test_connection_cert_connects(self): self.send_hal_hci_command(hci_packets.WritePageTimeoutBuilder(0x4000)) # DUT Enables scans and gets its address self.dut_hci.send_command_with_complete( hci_packets.WriteScanEnableBuilder( hci_packets.ScanEnable.INQUIRY_AND_PAGE_SCAN)) self.dut_hci.send_command_with_complete( hci_packets.ReadBdAddrBuilder()) read_bd_addr_capture = HciCaptures.ReadBdAddrCompleteCapture() assertThat(self.dut_hci.get_event_stream()).emits(read_bd_addr_capture) address = read_bd_addr_capture.get().GetBdAddr() # Cert Connects self.send_hal_hci_command( hci_packets.CreateConnectionBuilder( address, 0xcc18, # Packet Type hci_packets.PageScanRepetitionMode.R0, 0, hci_packets.ClockOffsetValid.INVALID, hci_packets.CreateConnectionRoleSwitch.ALLOW_ROLE_SWITCH)) # DUT Accepts connection_request_capture = HciCaptures.ConnectionRequestCapture() assertThat(self.dut_hci.get_event_stream()).emits( connection_request_capture, timeout=timedelta(seconds=20)) connection_request = connection_request_capture.get() self.dut_hci.send_command_with_status( hci_packets.AcceptConnectionRequestBuilder( connection_request.GetBdAddr(), hci_packets.AcceptConnectionRequestRole.REMAIN_SLAVE)) (dut_handle, cert_handle) = self._verify_connection_complete() # Send ACL Data self.enqueue_acl_data( dut_handle, hci_packets.PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE, hci_packets.BroadcastFlag.POINT_TO_POINT, bytes(b'This is just SomeAclData')) self.send_hal_acl_data( cert_handle, hci_packets.PacketBoundaryFlag.FIRST_NON_AUTOMATICALLY_FLUSHABLE, hci_packets.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.dut_hci.get_raw_acl_stream()).emits( lambda packet: b'SomeMoreAclData' in packet.data)