diff options
author | Sanket Agarwal <sanketa@google.com> | 2016-04-06 20:06:06 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-04-06 20:06:06 +0000 |
commit | ac5c592df860349fba340fa99bc3dea4d968a23b (patch) | |
tree | 4cedeb609e98576c5a4f85110f894568e6fb081e | |
parent | 42f7f166516d65807e7a62de60b1b614dcdd5b9e (diff) | |
parent | 0491de3d9ca1f44e3760a07c51d254aa0e9ef902 (diff) | |
download | platform_tools_test_connectivity-ac5c592df860349fba340fa99bc3dea4d968a23b.tar.gz platform_tools_test_connectivity-ac5c592df860349fba340fa99bc3dea4d968a23b.tar.bz2 platform_tools_test_connectivity-ac5c592df860349fba340fa99bc3dea4d968a23b.zip |
Merge "[DO NOT MERGE] Pairing should wait until success." into nyc-dev
-rw-r--r-- | acts/framework/acts/test_utils/bt/bt_test_utils.py | 28 | ||||
-rw-r--r-- | acts/tests/google/bt/car_bt/BtCarPairedConnectDisconnectTest.py | 11 |
2 files changed, 23 insertions, 16 deletions
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 d5703443a9..8c2501bf04 100644 --- a/acts/framework/acts/test_utils/bt/bt_test_utils.py +++ b/acts/framework/acts/test_utils/bt/bt_test_utils.py @@ -611,23 +611,27 @@ def log_energy_info(droids, state): def pair_pri_to_sec(pri_droid, sec_droid): + # Enable discovery on sec_droid so that pri_droid can find it. + # The timeout here is based on how much time it would take for two devices + # to pair with each other once pri_droid starts seeing devices. sec_droid.bluetoothMakeDiscoverable(default_timeout) - pri_droid.bluetoothStartDiscovery() target_name = sec_droid.bluetoothGetLocalName() - time.sleep(default_discovery_timeout) - discovered_devices = pri_droid.bluetoothGetDiscoveredDevices() - discovered = False - for device in discovered_devices: - log.info(device) - if 'name' in device and target_name == device['name']: - discovered = True - continue - if not discovered: - return False pri_droid.bluetoothStartPairingHelper() sec_droid.bluetoothStartPairingHelper() result = pri_droid.bluetoothDiscoverAndBond(target_name) - return result + + # Loop until we have bonded successfully or timeout. + end_time = time.time() + default_timeout + while time.time() < end_time: + bonded_devices = pri_droid.bluetoothGetBondedDevices() + expected_address = sec_droid.bluetoothGetLocalAddress() + bonded = False + for d in bonded_devices: + if d['address'] == expected_address: + return True + time.sleep(1) + # Timed out trying to bond. + return False def get_bt_mac_address(droid, droid1, make_undisocverable=True): diff --git a/acts/tests/google/bt/car_bt/BtCarPairedConnectDisconnectTest.py b/acts/tests/google/bt/car_bt/BtCarPairedConnectDisconnectTest.py index 822e169a31..6c1b72f593 100644 --- a/acts/tests/google/bt/car_bt/BtCarPairedConnectDisconnectTest.py +++ b/acts/tests/google/bt/car_bt/BtCarPairedConnectDisconnectTest.py @@ -55,14 +55,17 @@ class BtCarPairedConnectDisconnectTest(BaseTestClass): a.ed.clear_all_events() # Pair the devices. - pair_pri_to_sec(self.droid_ad.droid, self.droid1_ad.droid) - # Pairing usually takes time (discovery + key exchange) - time.sleep(15) + # This call may block until some specified timeout in bt_test_utils.py. + result = pair_pri_to_sec(self.droid_ad.droid, self.droid1_ad.droid) + + if result is False: + self.log.info("pair_pri_to_sec returned false.") + return False # Check for successful setup of test. devices = self.droid_ad.droid.bluetoothGetBondedDevices() if (len(devices) == 0): - self.log.info("No bonded devices.") + self.log.info("pair_pri_to_sec succeeded but no bonded devices.") return False return True |