Home | History | Annotate | Download | only in bluetooth_AdapterStandalone
      1 # Copyright 2016 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 tests on adapter standalone working states."""
      6 
      7 from autotest_lib.client.common_lib import error
      8 from autotest_lib.server.cros.bluetooth.bluetooth_adpater_tests import (
      9         BluetoothAdapterTests)
     10 from autotest_lib.server.cros.multimedia import remote_facade_factory
     11 
     12 
     13 class bluetooth_AdapterStandalone(BluetoothAdapterTests):
     14     """Server side bluetooth adapter standalone tests.
     15 
     16     This test tries to thoroughly verify most of the important work
     17     states of a standalone bluetooth adapter prior to connecting to
     18     other bluetooth peripherals.
     19 
     20     In particular, the following subtests are performed. Look at the
     21     docstrings of the subtests for more details.
     22     - test_start_bluetoothd
     23     - test_stop_bluetoothd
     24     - test_adapter_work_state
     25     - test_power_on_adapter
     26     - test_power_off_adapter
     27     - test_reset_on_adapter
     28     - test_reset_off_adapter
     29     - test_UUIDs
     30     - test_start_discovery
     31     - test_stop_discovery
     32     - test_discoverable
     33     - test_nondiscoverable
     34     - test_pairable
     35     - test_nonpairable
     36 
     37     Refer to BluetoothAdapterTests for all subtests performed in this test.
     38 
     39     """
     40 
     41     def run_once(self, host):
     42         """Running Bluetooth adapter standalone tests.
     43 
     44         @param host: device under test host
     45         """
     46         self.host = host
     47         factory = remote_facade_factory.RemoteFacadeFactory(host)
     48         self.bluetooth_facade = factory.create_bluetooth_hid_facade()
     49 
     50         # The bluetoothd must be running in the beginning.
     51         self.test_bluetoothd_running()
     52 
     53         # It is possible that the adapter is not powered on yet.
     54         # Power it on anyway and verify that it is actually powered on.
     55         self.test_power_on_adapter()
     56 
     57         # Verify that the adapter could be powered off and powered on,
     58         # and that it is in the correct working state.
     59         self.test_power_off_adapter()
     60         self.test_power_on_adapter()
     61         self.test_adapter_work_state()
     62 
     63         # Verify that the bluetoothd could be simply stopped and then
     64         # be started again, and that it is in the correct working state.
     65         self.test_stop_bluetoothd()
     66         self.test_start_bluetoothd()
     67         self.test_adapter_work_state()
     68 
     69         # Verify that the adapter could be reset off and on which includes
     70         # removing all cached information.
     71         self.test_reset_off_adapter()
     72         self.test_reset_on_adapter()
     73         self.test_adapter_work_state()
     74 
     75         # Verify that the adapter supports basic profiles.
     76         self.test_UUIDs()
     77 
     78         # Verify that the adapter could start and stop discovery.
     79         self.test_start_discovery()
     80         self.test_stop_discovery()
     81         self.test_start_discovery()
     82 
     83         # Verify that the adapter could set discoverable and non-discoverable.
     84         self.test_discoverable()
     85         self.test_nondiscoverable()
     86         self.test_discoverable()
     87 
     88         # Verify that the adapter could set pairable and non-pairable.
     89         self.test_pairable()
     90         self.test_nonpairable()
     91         self.test_pairable()
     92 
     93         if self.fails:
     94             raise error.TestFail(self.fails)
     95