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

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

move le_advertising_manager_test over to PyHci

Bug: 171749953
Tag: #gd-refactor
Test: gd/cert/run
Change-Id: Ib147e50a91dd0c9d31905317028e267ff2b71070
parent 70e9aa67
Loading
Loading
Loading
Loading
+43 −47
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ from hci.facade import \
  le_advertising_manager_facade_pb2 as le_advertising_facade
from bluetooth_packets_python3 import hci_packets
from facade import common_pb2 as common
from cert.py_hci import PyHci
from cert.truth import assertThat


class LeAdvertisingManagerTest(GdBaseTestClass):
@@ -34,35 +36,29 @@ class LeAdvertisingManagerTest(GdBaseTestClass):
    def setup_class(self):
        super().setup_class(dut_module='HCI_INTERFACES', cert_module='HCI')

    def register_for_event(self, event_code):
        msg = hci_facade.EventRequest(code=int(event_code))
        self.cert.hci.RequestEvent(msg)
    def setup_test(self):
        super().setup_test()
        self.cert_hci = PyHci(self.cert, acl_streaming=True)

    def register_for_le_event(self, event_code):
        msg = hci_facade.EventRequest(code=int(event_code))
        self.cert.hci.RequestLeSubevent(msg)

    def enqueue_hci_command(self, command):
        cmd_bytes = bytes(command.Serialize())
        cmd = common.Data(payload=cmd_bytes)
        self.cert.hci.SendCommand(cmd)
    def teardown_test(self):
        self.cert_hci.close()
        super().teardown_test()

    def test_le_ad_scan_dut_advertises(self):
        self.register_for_le_event(hci_packets.SubeventCode.ADVERTISING_REPORT)
        self.register_for_le_event(hci_packets.SubeventCode.EXTENDED_ADVERTISING_REPORT)
        with EventStream(self.cert.hci.StreamLeSubevents(empty_proto.Empty())) as hci_le_event_stream:
        self.cert_hci.register_for_le_events(hci_packets.SubeventCode.ADVERTISING_REPORT,
                                             hci_packets.SubeventCode.EXTENDED_ADVERTISING_REPORT)

        # CERT Scans
            self.enqueue_hci_command(hci_packets.LeSetRandomAddressBuilder('0C:05:04:03:02:01'))
        self.cert_hci.send_command(hci_packets.LeSetRandomAddressBuilder('0C:05:04:03:02:01'))
        scan_parameters = hci_packets.PhyScanParameters()
        scan_parameters.le_scan_type = hci_packets.LeScanType.ACTIVE
        scan_parameters.le_scan_interval = 40
        scan_parameters.le_scan_window = 20
            self.enqueue_hci_command(
        self.cert_hci.send_command(
            hci_packets.LeSetExtendedScanParametersBuilder(hci_packets.OwnAddressType.RANDOM_DEVICE_ADDRESS,
                                                           hci_packets.LeScanningFilterPolicy.ACCEPT_ALL, 1,
                                                           [scan_parameters]))
            self.enqueue_hci_command(
        self.cert_hci.send_command(
            hci_packets.LeSetExtendedScanEnableBuilder(hci_packets.Enable.ENABLED,
                                                       hci_packets.FilterDuplicates.DISABLED, 0, 0))

@@ -83,9 +79,9 @@ class LeAdvertisingManagerTest(GdBaseTestClass):

        create_response = self.dut.hci_le_advertising_manager.CreateAdvertiser(request)

            hci_le_event_stream.assert_event_occurs(lambda packet: b'Im_The_DUT' in packet.payload)
        assertThat(self.cert_hci.get_le_event_stream()).emits(lambda packet: b'Im_The_DUT' in packet.payload)

        remove_request = le_advertising_facade.RemoveAdvertiserRequest(advertiser_id=create_response.advertiser_id)
        self.dut.hci_le_advertising_manager.RemoveAdvertiser(remove_request)
            self.enqueue_hci_command(
        self.cert_hci.send_command(
            hci_packets.LeSetScanEnableBuilder(hci_packets.Enable.DISABLED, hci_packets.Enable.DISABLED))