blob: 91e51bb7f75b3abd26273ceb983179d6eeedf24f [file] [log] [blame]
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
"""
Test script for Bluetooth OTA testing.
"""
from acts.libs.ota import ota_updater
from acts.test_decorators import test_tracker_info
from acts.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest
from acts.test_utils.bt.bt_test_utils import pair_pri_to_sec
from acts import signals
class BtOtaTest(BluetoothBaseTest):
def setup_class(self):
super(BtOtaTest, self).setup_class()
ota_updater.initialize(self.user_params, self.android_devices)
self.dut = self.android_devices[0]
self.pre_ota_name = self.dut.droid.bluetoothGetLocalName()
self.pre_ota_address = self.dut.droid.bluetoothGetLocalAddress()
self.sec_address = self.android_devices[
1].droid.bluetoothGetLocalAddress()
# Pairing devices
if not pair_pri_to_sec(self.dut, self.android_devices[1]):
raise signals.TestSkipClass(
"Failed to bond devices prior to update")
#Run OTA below, if ota fails then abort all tests
try:
ota_updater.update(self.dut)
except Exception as err:
raise signals.TestSkipClass(
"Failed up apply OTA update. Aborting tests")
@BluetoothBaseTest.bt_test_wrap
@test_tracker_info(uuid='57545ef0-2c2e-463c-9dbf-28da73cc76df')
def test_device_name_persists(self):
"""Test device name persists after OTA update
Test device name persists after OTA update
Steps:
1. Verify pre OTA device name matches post OTA device name
Expected Result:
Bluetooth Device name persists
Returns:
Pass if True
Fail if False
TAGS: OTA
Priority: 2
"""
return self.pre_ota_name == self.dut.droid.bluetoothGetLocalName()
@BluetoothBaseTest.bt_test_wrap
@test_tracker_info(uuid='1fd5e1a5-d930-499c-aebc-c1872ab49568')
def test_device_address_persists(self):
"""Test device address persists after OTA update
Test device address persists after OTA update
Steps:
1. Verify pre OTA device address matches post OTA device address
Expected Result:
Bluetooth Device address persists
Returns:
Pass if True
Fail if False
TAGS: OTA
Priority: 2
"""
return self.pre_ota_address == self.dut.droid.bluetoothGetLocalAddress(
)
@BluetoothBaseTest.bt_test_wrap
@test_tracker_info(uuid='2e6704e6-3df0-43fb-8425-41ff841d7473')
def test_bluetooth_state_persists(self):
"""Test device Bluetooth state persists after OTA update
Test device Bluetooth state persists after OTA update
Steps:
1. Verify post OTA Bluetooth state is on
Expected Result:
Bluetooth Device Bluetooth state is on
Returns:
Pass if True
Fail if False
TAGS: OTA
Priority: 2
"""
return self.dut.droid.bluetoothCheckState()
@BluetoothBaseTest.bt_test_wrap
@test_tracker_info(uuid='eb1c0a22-4b4e-4984-af17-ace3bcd203de')
def test_bonded_devices_persist(self):
"""Test device bonded devices persists after OTA update
Test device address persists after OTA update
Steps:
1. Verify pre OTA device bonded devices matches post OTA device
bonded devices
Expected Result:
Bluetooth Device bonded devices persists
Returns:
Pass if True
Fail if False
TAGS: OTA
Priority: 1
"""
bonded_devices = self.dut.droid.bluetoothGetBondedDevices()
for b in bonded_devices:
if b['address'] == self.sec_address:
return True
return False