Return scan_callback when looking for generic addr
Bug: 73728298
Test: Manual
Change-Id: Ia7bb873b7ffc22267380246a48ef1192e30e53bf
(cherry picked from commit 83c28a0ede6c3e64b8413f4d8140e809d4baf3f3)
diff --git a/acts/framework/acts/test_utils/bt/bt_coc_test_utils.py b/acts/framework/acts/test_utils/bt/bt_coc_test_utils.py
index f7d4867..306291f 100644
--- a/acts/framework/acts/test_utils/bt/bt_coc_test_utils.py
+++ b/acts/framework/acts/test_utils/bt/bt_coc_test_utils.py
@@ -162,7 +162,7 @@
client_ad.log.info(
"Orchestrate_coc_connection: Start BLE advertisement and"
"scanning. Secured Connection={}".format(secured_conn))
- mac_address, adv_callback = (
+ mac_address, adv_callback, scan_callback = (
get_mac_address_of_generic_advertisement(client_ad, server_ad))
except BtTestUtilsError as err:
raise BtCoCTestUtilsError(
@@ -187,6 +187,7 @@
False,
transport=gatt_transport['le'],
opportunistic=False)
+ client_ad.droid.bleStopBleScan(scan_callback)
except GattTestUtilsError as err:
client_ad.log.error(err)
if (adv_callback != None):
diff --git a/acts/framework/acts/test_utils/bt/bt_gatt_utils.py b/acts/framework/acts/test_utils/bt/bt_gatt_utils.py
index f3fb6bc..e3d410e 100644
--- a/acts/framework/acts/test_utils/bt/bt_gatt_utils.py
+++ b/acts/framework/acts/test_utils/bt/bt_gatt_utils.py
@@ -106,7 +106,7 @@
if mac_address is None:
if transport == gatt_transport['le']:
try:
- mac_address, adv_callback = (
+ mac_address, adv_callback, scan_callback = (
get_mac_address_of_generic_advertisement(cen_ad, per_ad))
except BtTestUtilsError as err:
raise GattTestUtilsError(
diff --git a/acts/framework/acts/test_utils/bt/bt_test_utils.py b/acts/framework/acts/test_utils/bt/bt_test_utils.py
index 5ddc9a3..9a930ab 100644
--- a/acts/framework/acts/test_utils/bt/bt_test_utils.py
+++ b/acts/framework/acts/test_utils/bt/bt_test_utils.py
@@ -66,6 +66,7 @@
from acts.test_utils.bt.bt_constants import scan_result
from acts.test_utils.bt.bt_constants import scan_failed
from acts.test_utils.bt.bt_constants import hid_id_keyboard
+
from acts.test_utils.tel.tel_test_utils import toggle_airplane_mode_by_adb
from acts.test_utils.tel.tel_test_utils import verify_http_connection
from acts.utils import exe_cmd
@@ -573,8 +574,7 @@
raise BtTestUtilsError(
"Scanner did not find advertisement {}".format(err))
mac_address = event['data']['Result']['deviceInfo']['address']
- scan_ad.droid.bleStopBleScan(scan_callback)
- return mac_address, advertise_callback
+ return mac_address, advertise_callback, scan_callback
def enable_bluetooth(droid, ed):
if droid.bluetoothCheckState() is True:
diff --git a/acts/tests/google/ble/gatt/GattConnectTest.py b/acts/tests/google/ble/gatt/GattConnectTest.py
index 07c8e1b..0b160a2 100644
--- a/acts/tests/google/ble/gatt/GattConnectTest.py
+++ b/acts/tests/google/ble/gatt/GattConnectTest.py
@@ -103,8 +103,8 @@
event = self.per_ad.ed.pop_event(expected_event,
self.default_timeout)
except Empty:
- self.log.error(gatt_cb_strings['serv_added_err'].format(
- expected_event))
+ self.log.error(
+ gatt_cb_strings['serv_added_err'].format(expected_event))
return False
if event['data']['serviceUuid'].lower() != uuid.lower():
self.log.error("Uuid mismatch. Found: {}, Expected {}.".format(
@@ -124,8 +124,8 @@
mtu_size_found, expected_mtu))
return False
except Empty:
- self.log.error(gatt_cb_err['mtu_changed_err'].format(
- expected_event))
+ self.log.error(
+ gatt_cb_err['mtu_changed_err'].format(expected_event))
return False
expected_event = gatt_cb_strings['mtu_serv_changed'].format(
@@ -139,8 +139,8 @@
mtu_size_found, expected_mtu))
return False
except Empty:
- self.log.error(gatt_cb_err['mtu_serv_changed_err'].format(
- expected_event))
+ self.log.error(
+ gatt_cb_err['mtu_serv_changed_err'].format(expected_event))
return False
return True
@@ -228,9 +228,9 @@
return False
self.per_ad.droid.bleStopBleAdvertising(adv_callback)
try:
- event = self.cen_ad.ed.pop_event(gatt_cb_strings[
- 'gatt_conn_change'].format(gatt_callback,
- self.default_timeout))
+ event = self.cen_ad.ed.pop_event(
+ gatt_cb_strings['gatt_conn_change'].format(
+ gatt_callback, self.default_timeout))
self.log.error(
"Connection event found when not expected: {}".format(event))
return False
@@ -277,11 +277,12 @@
gatt_server_cb)
self.gatt_server_list.append(gatt_server)
autoconnect = False
- mac_address, adv_callback = (
+ mac_address, adv_callback, scan_callback = (
get_mac_address_of_generic_advertisement(self.cen_ad, self.per_ad))
try:
bluetooth_gatt, gatt_callback = setup_gatt_connection(
self.cen_ad, mac_address, autoconnect)
+ self.cen_ad.droid.bleStopBleScan(scan_callback)
self.bluetooth_gatt_list.append(bluetooth_gatt)
except GattTestUtilsError as err:
self.log.error(err)
@@ -306,8 +307,8 @@
event = self.cen_ad.ed.pop_event(expected_event,
self.default_timeout)
except Empty:
- self.log.error(gatt_cb_err['gatt_conn_change_err'].format(
- expected_event))
+ self.log.error(
+ gatt_cb_err['gatt_conn_change_err'].format(expected_event))
test_result = False
return self._orchestrate_gatt_disconnection(bluetooth_gatt,
gatt_callback)
@@ -345,7 +346,7 @@
gatt_server = self.per_ad.droid.gattServerOpenGattServer(
gatt_server_cb)
self.gatt_server_list.append(gatt_server)
- mac_address, adv_callback = (
+ mac_address, adv_callback, scan_callback = (
get_mac_address_of_generic_advertisement(self.cen_ad, self.per_ad))
# Make GATT connection 1
try:
@@ -355,6 +356,7 @@
False,
transport=gatt_transport['auto'],
opportunistic=False)
+ self.cen_ad.droid.bleStopBleScan(scan_callback)
self.bluetooth_gatt_list.append(bluetooth_gatt_1)
except GattTestUtilsError as err:
self.log.error(err)
@@ -585,8 +587,8 @@
try:
self.cen_ad.ed.pop_event(expected_event, self.default_timeout)
except Empty:
- self.log.error(gatt_cb_err['rd_remote_rssi_err'].format(
- expected_event))
+ self.log.error(
+ gatt_cb_err['rd_remote_rssi_err'].format(expected_event))
return self._orchestrate_gatt_disconnection(bluetooth_gatt,
gatt_callback)
@@ -637,8 +639,8 @@
event = self.cen_ad.ed.pop_event(expected_event,
self.default_timeout)
except Empty:
- self.log.error(gatt_cb_err['gatt_serv_disc'].format(
- expected_event))
+ self.log.error(
+ gatt_cb_err['gatt_serv_disc'].format(expected_event))
return False
return self._orchestrate_gatt_disconnection(bluetooth_gatt,
gatt_callback)
@@ -697,8 +699,8 @@
self.default_timeout)
discovered_services_index = event['data']['ServicesIndex']
except Empty:
- self.log.error(gatt_cb_err['gatt_serv_disc'].format(
- expected_event))
+ self.log.error(
+ gatt_cb_err['gatt_serv_disc'].format(expected_event))
return False
log_gatt_server_uuids(self.cen_ad, discovered_services_index)
return self._orchestrate_gatt_disconnection(bluetooth_gatt,
@@ -754,8 +756,8 @@
event = self.cen_ad.ed.pop_event(expected_event,
self.default_timeout)
except Empty:
- self.log.error(gatt_cb_err['gatt_serv_disc'].format(
- expected_event))
+ self.log.error(
+ gatt_cb_err['gatt_serv_disc'].format(expected_event))
return False
discovered_services_index = event['data']['ServicesIndex']
log_gatt_server_uuids(self.cen_ad, discovered_services_index)
@@ -795,7 +797,7 @@
gatt_server = self.per_ad.droid.gattServerOpenGattServer(
gatt_server_cb)
self.gatt_server_list.append(gatt_server)
- mac_address, adv_callback = get_mac_address_of_generic_advertisement(
+ mac_address, adv_callback, scan_callback = get_mac_address_of_generic_advertisement(
self.cen_ad, self.per_ad)
autoconnect = False
for i in range(1000):
@@ -803,11 +805,12 @@
try:
bluetooth_gatt, gatt_callback = setup_gatt_connection(
self.cen_ad, mac_address, autoconnect)
+ self.cen_ad.droid.bleStopBleScan(scan_callback)
except GattTestUtilsError as err:
self.log.error(err)
return False
- test_result = self._orchestrate_gatt_disconnection(bluetooth_gatt,
- gatt_callback)
+ test_result = self._orchestrate_gatt_disconnection(
+ bluetooth_gatt, gatt_callback)
if not test_result:
self.log.info("Failed to disconnect from peripheral device.")
return False
@@ -867,8 +870,8 @@
gatt_characteristic['permission_write_encrypted_mitm'])
gatt_service = self.per_ad.droid.gattServerCreateService(
service_uuid, gatt_service_types['primary'])
- self.per_ad.droid.gattServerAddCharacteristicToService(gatt_service,
- characteristic)
+ self.per_ad.droid.gattServerAddCharacteristicToService(
+ gatt_service, characteristic)
self.per_ad.droid.gattServerAddService(gatt_server, gatt_service)
result = self._find_service_added_event(gatt_server_cb, service_uuid)
if not result:
@@ -884,8 +887,8 @@
event = self.cen_ad.ed.pop_event(expected_event,
self.default_timeout)
except Empty:
- self.log.error(gatt_cb_err['gatt_serv_disc'].format(
- expected_event))
+ self.log.error(
+ gatt_cb_err['gatt_serv_disc'].format(expected_event))
return False
discovered_services_index = event['data']['ServicesIndex']
else:
@@ -914,8 +917,8 @@
bonded_devices = \
self.cen_ad.droid.bluetoothGetBondedDevices()
for device in bonded_devices:
- if ('name' in device.keys() and
- device['name'] == target_name):
+ if ('name' in device.keys()
+ and device['name'] == target_name):
bonded = True
break
bonded = False
@@ -924,8 +927,8 @@
bonded_devices = \
self.per_ad.droid.bluetoothGetBondedDevices()
for device in bonded_devices:
- if ('name' in device.keys() and
- device['name'] == target_name):
+ if ('name' in device.keys()
+ and device['name'] == target_name):
bonded = True
break
for ad in [self.cen_ad, self.per_ad]:
@@ -935,8 +938,8 @@
time.sleep(2)
bonded_devices = ad.droid.bluetoothGetBondedDevices()
if len(bonded_devices) > 0:
- self.log.error("Failed to unbond devices: {}".format(
- bonded_devices))
+ self.log.error(
+ "Failed to unbond devices: {}".format(bonded_devices))
return False
return self._orchestrate_gatt_disconnection(bluetooth_gatt,
gatt_callback)
@@ -1064,8 +1067,8 @@
self.cen_ad.droid.bleSetScanFilterDeviceName(
self.per_ad.droid.bluetoothGetLocalName())
self.cen_ad.droid.bleBuildScanFilter(filter_list)
- self.cen_ad.droid.bleSetScanSettingsScanMode(ble_scan_settings_modes[
- 'low_latency'])
+ self.cen_ad.droid.bleSetScanSettingsScanMode(
+ ble_scan_settings_modes['low_latency'])
# Setup necessary scan objects.
scan_settings = self.cen_ad.droid.bleBuildScanSetting()
@@ -1106,8 +1109,8 @@
# Steps 4: Try to connect to the first mac address
gatt_callback = self.cen_ad.droid.gattCreateGattCallback()
- self.log.info("Gatt Connect to mac address {}.".format(
- mac_address_pre_restart))
+ self.log.info(
+ "Gatt Connect to mac address {}.".format(mac_address_pre_restart))
bluetooth_gatt = self.cen_ad.droid.gattClientConnectGatt(
gatt_callback, mac_address_pre_restart, autoconnect, transport,
opportunistic, gatt_phy_mask['1m_mask'])
@@ -1127,8 +1130,8 @@
self.cen_ad.droid.gattClientDisconnect(bluetooth_gatt)
# Step 6: Connect to second mac address.
- self.log.info("Gatt Connect to mac address {}.".format(
- mac_address_post_restart))
+ self.log.info(
+ "Gatt Connect to mac address {}.".format(mac_address_post_restart))
bluetooth_gatt = self.cen_ad.droid.gattClientConnectGatt(
gatt_callback, mac_address_post_restart, autoconnect, transport,
opportunistic, gatt_phy_mask['1m_mask'])
@@ -1149,4 +1152,4 @@
except Empty:
self.log.error("No connection update was found.")
return False
- return self.cen_ad.droid.gattClientDisconnect(bluetooth_gatt)
\ No newline at end of file
+ return self.cen_ad.droid.gattClientDisconnect(bluetooth_gatt)
diff --git a/acts/tests/google/ble/system_tests/BleStressTest.py b/acts/tests/google/ble/system_tests/BleStressTest.py
index a1387ab..5be082a 100644
--- a/acts/tests/google/ble/system_tests/BleStressTest.py
+++ b/acts/tests/google/ble/system_tests/BleStressTest.py
@@ -168,7 +168,8 @@
self.adv_ad.droid.bleStartBleAdvertising(
advertise_callback, advertise_data, advertise_settings)
expected_advertise_event_name = "".join(
- ["BleAdvertise", str(advertise_callback), "onSuccess"])
+ ["BleAdvertise",
+ str(advertise_callback), "onSuccess"])
worker = self.adv_ad.ed.handle_event(
self.bleadvertise_verify_onsuccess_handler,
expected_advertise_event_name, ([]), self.default_timeout)
@@ -176,7 +177,8 @@
self.log.debug(worker.result(self.default_timeout))
except Empty as error:
self.log.debug(" ".join(
- ["Test failed with Empty error:", str(error)]))
+ ["Test failed with Empty error:",
+ str(error)]))
test_result = False
except concurrent.futures._base.TimeoutError as error:
self.log.debug(" ".join([
@@ -219,7 +221,8 @@
self.adv_ad.droid.bleStartBleAdvertising(
advertise_callback, advertise_data, advertise_settings)
expected_advertise_event_name = "".join(
- ["BleAdvertise", str(advertise_callback), "onSuccess"])
+ ["BleAdvertise",
+ str(advertise_callback), "onSuccess"])
worker = self.adv_ad.ed.handle_event(
self.bleadvertise_verify_onsuccess_handler,
expected_advertise_event_name, ([]), self.default_timeout)
@@ -227,7 +230,8 @@
self.log.debug(worker.result(self.default_timeout))
except Empty as error:
self.log.debug(" ".join(
- ["Test failed with Empty error:", str(error)]))
+ ["Test failed with Empty error:",
+ str(error)]))
test_result = False
except concurrent.futures._base.TimeoutError as error:
self.log.debug(" ".join([
@@ -247,7 +251,8 @@
self.log.debug(worker.result(self.default_timeout))
except Empty as error:
self.log.debug(" ".join(
- ["Test failed with Empty error:", str(error)]))
+ ["Test failed with Empty error:",
+ str(error)]))
test_result = False
except concurrent.futures._base.TimeoutError as error:
self.log.debug(" ".join([
@@ -318,7 +323,7 @@
iterations = 100
for i in range(iterations):
try:
- target_address, adv_callback = get_mac_address_of_generic_advertisement(
+ target_address, adv_callback, scan_callback = get_mac_address_of_generic_advertisement(
self.scn_ad, self.adv_ad)
except BtTestUtilsError as err:
self.log.error(err)
@@ -339,6 +344,7 @@
self.log.error("Failed to unbond device from advertiser.")
return False
self.adv_ad.droid.bleStopBleAdvertising(adv_callback)
+ self.scn_ad.droid.bleStopBleScan(scan_callback)
# Magic sleep to let unbonding finish
time.sleep(2)
return True