Home | History | Annotate | Download | only in bluetooth_AdapterSuspendResume
      1 # Copyright 2017 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 """Server side bluetooth adapter stress tests involving suspend resume.
      6 First we test powering on the adapter, suspend/resume the DUT, and make sure
      7 the adapter is still powered on and in a working state.
      8 
      9 Next we test powering off the adapter, suspend/resume, and verify the adapter
     10 is still powered off.
     11 """
     12 
     13 import logging
     14 
     15 from autotest_lib.client.common_lib import error
     16 from autotest_lib.server.cros.bluetooth import bluetooth_adapter_tests
     17 from autotest_lib.server.cros.multimedia import bluetooth_le_facade_adapter
     18 
     19 
     20 test_case_log = bluetooth_adapter_tests.test_case_log
     21 
     22 
     23 class bluetooth_AdapterSuspendResume(
     24         bluetooth_adapter_tests.BluetoothAdapterTests):
     25     """Server side bluetooth adapter suspend resume test."""
     26 
     27     # ---------------------------------------------------------------
     28     # Definitions of all test cases
     29     # ---------------------------------------------------------------
     30 
     31     @test_case_log
     32     def test_case_adapter_on_SR(self):
     33         """Test Case: Power on - SR"""
     34         self.test_power_on_adapter()
     35         self.test_bluetoothd_running()
     36         self.suspend_resume()
     37         self.test_bluetoothd_running()
     38         self.test_adapter_work_state()
     39         self.test_power_on_adapter()
     40 
     41     @test_case_log
     42     def test_case_adapter_off_SR(self):
     43         """Test Case: Power on - SR"""
     44         self.test_power_off_adapter()
     45         self.test_bluetoothd_running()
     46         self.suspend_resume()
     47         self.test_power_off_adapter()
     48         self.test_bluetoothd_running()
     49 
     50 
     51     def run_once(self, host, num_iterations=1):
     52         """Running Bluetooth adapter suspend resume autotest.
     53 
     54         @param host: device under test host.
     55         @param num_iterations: number of times to perform suspend resume tests.
     56 
     57         """
     58         self.host = host
     59         ble_adapter = bluetooth_le_facade_adapter.BluetoothLEFacadeRemoteAdapter
     60         self.bluetooth_le_facade = ble_adapter(self.host)
     61         self.bluetooth_facade = self.bluetooth_le_facade
     62 
     63         for i in xrange(num_iterations):
     64             logging.debug('Starting loop #%d', i)
     65             self.test_case_adapter_on_SR()
     66             self.test_case_adapter_off_SR()
     67 
     68         if self.fails:
     69             raise error.TestFail(self.fails)
     70