diff options
-rw-r--r-- | acts/tests/google/bt/car_bt/BtCarToggleTest.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/acts/tests/google/bt/car_bt/BtCarToggleTest.py b/acts/tests/google/bt/car_bt/BtCarToggleTest.py index d6fd449221..aa7f5b4210 100644 --- a/acts/tests/google/bt/car_bt/BtCarToggleTest.py +++ b/acts/tests/google/bt/car_bt/BtCarToggleTest.py @@ -21,17 +21,32 @@ from acts.test_decorators import test_tracker_info from acts.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest from acts.test_utils.bt import bt_test_utils +import random +import time + class BtCarToggleTest(BluetoothBaseTest): + def setup_class(self): self.droid_ad = self.android_devices[0] + for ad in self.android_devices: + bt_test_utils.clear_bonded_devices(ad) def setup_test(self): self.droid_ad.ed.clear_all_events() + if not bt_test_utils.bluetooth_enabled_check(self.droid_ad): + return False def on_fail(self, test_name, begin_time): bt_test_utils.take_btsnoop_logs(self.android_devices, self, test_name) + def delay(self, delay_interval): + self.log.debug("Toggle delay interval {}".format(0.01 * delay_interval)) + + start_time = time.time() + while (start_time + 0.01 * delay_interval) > time.time(): + time.sleep(0.1) + @test_tracker_info(uuid='290eb41f-6e66-4dc1-8f3e-55783901d116') @BluetoothBaseTest.bt_test_wrap def test_bluetooth_reset(self): @@ -46,5 +61,42 @@ class BtCarToggleTest(BluetoothBaseTest): Returns: Pass if True Fail if False + """ return bt_test_utils.reset_bluetooth([self.droid_ad]) + + @test_tracker_info(uuid='5ff9dc37-67ff-4367-9803-4a58a22de610') + @BluetoothBaseTest.bt_test_wrap + def test_bluetooth_continuous_reset(self): + """Test resets bluetooth continuously with delay intervals . + + Test the integrity of resetting bluetooth on Android. + + Steps: + 1. Toggle bluetooth off. + 2. Toggle bluetooth on. + 3. Repeat. + + Returns: + Pass if True + Fail if False + + """ + + for count in range(50): + + delay_off_interval = random.randint(0, 1000) + delay_on_interval = random.randint(0, 1000) + + passed = True + + self.delay(delay_off_interval) + + passed = self.droid_ad.droid.bluetoothToggleState(False) + self.delay(delay_on_interval) + passed = passed and self.droid_ad.droid.bluetoothToggleState(True) + + if not passed: + self.log.error("Failed to reset bluetooth: Iteration count {}".format(count)) + return False + return True |