From 28323248a3e48e39b9b85da2e372c848d9d4684a Mon Sep 17 00:00:00 2001 From: Charlie Boutier Date: Mon, 1 Apr 2024 18:58:01 +0000 Subject: [PATCH] Fix test_scan implementation Discover dut's random address before connecting to it --- avatar/cases/le_host_test.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/avatar/cases/le_host_test.py b/avatar/cases/le_host_test.py index 8af96fa..3ba228d 100644 --- a/avatar/cases/le_host_test.py +++ b/avatar/cases/le_host_test.py @@ -105,12 +105,29 @@ def test_scan( scan_response_data = DataTypes() if scannable == 'scannable' else None target = self.dut.address if directed == 'directed' else None + # Advertise with Android and Scan with Bumble to retrieve the address + android_advertise = self.dut.host.Advertise( + legacy=True, + connectable=True, + own_address_type=RANDOM, + data=DataTypes(manufacturer_specific_data=b'pause cafe'), + ) + bumble_scan = self.ref.host.Scan(legacy=False, passive=False, timeout=self.scan_timeout) + result_scan = next((x for x in bumble_scan if b'pause cafe' in x.data.manufacturer_specific_data)) # pytype: disable=name-error + android_advertise.cancel() + bumble_scan.cancel() + logging.error(f'result_scan: {result_scan}') + logging.error(f'random address: {result_scan.random.hex()}') + target = result_scan.random + + # Perform the test as usual advertise = self.ref.host.Advertise( legacy=True, connectable=is_connectable, data=data, # type: ignore[arg-type] scan_response_data=scan_response_data, # type: ignore[arg-type] - public=target, + # public=target, + random=target, own_address_type=PUBLIC, )