Home | History | Annotate | Download | only in car_bt
      1 #/usr/bin/env python3.4
      2 #
      3 # Copyright (C) 2016 The Android Open Source Project
      4 #
      5 # Licensed under the Apache License, Version 2.0 (the "License"); you may not
      6 # use this file except in compliance with the License. You may obtain a copy of
      7 # the License at
      8 #
      9 # http://www.apache.org/licenses/LICENSE-2.0
     10 #
     11 # Unless required by applicable law or agreed to in writing, software
     12 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
     13 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
     14 # License for the specific language governing permissions and limitations under
     15 # the License.
     16 """
     17 Test script to execute Bluetooth basic functionality test cases relevant to car.
     18 """
     19 
     20 import time
     21 
     22 from queue import Empty
     23 from acts.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest
     24 from acts.test_utils.bt.BtEnum import BluetoothScanModeType
     25 from acts.test_utils.bt.bt_test_utils import check_device_supported_profiles
     26 from acts.test_utils.bt.bt_test_utils import log_energy_info
     27 from acts.test_utils.bt.bt_test_utils import reset_bluetooth
     28 from acts.test_utils.bt.bt_test_utils import set_device_name
     29 from acts.test_utils.bt.bt_test_utils import set_bt_scan_mode
     30 from acts.test_utils.bt.bt_test_utils import setup_multiple_devices_for_bt_test
     31 from acts.test_utils.bt.bt_test_utils import take_btsnoop_logs
     32 
     33 
     34 class BtCarBasicFunctionalityTest(BluetoothBaseTest):
     35     default_timeout = 10
     36     scan_discovery_time = 5
     37 
     38     def __init__(self, controllers):
     39         BluetoothBaseTest.__init__(self, controllers)
     40         self.car_ad = self.android_devices[0]
     41 
     42     def setup_class(self):
     43         return setup_multiple_devices_for_bt_test(self.android_devices)
     44 
     45     #@BluetoothTest(UUID=b52a032a-3438-4b84-863f-c46a969882a4)
     46     @BluetoothBaseTest.bt_test_wrap
     47     def test_if_support_a2dp_sink_profile(self):
     48         """ Test that a single device can support A2DP SNK profile.
     49         Steps
     50         1. Initialize one android devices
     51         2. Check devices support profiles and return a dictionary
     52         3. Check the value of key 'a2dp_sink'
     53         :return: test_result: bool
     54         """
     55         profiles = check_device_supported_profiles(self.car_ad.droid)
     56         if not profiles['a2dp_sink']:
     57             self.car_ad.log.debug(
     58                 "Android device do not support A2DP SNK profile.")
     59             return False
     60         return True
     61 
     62     #@BluetoothTest(UUID=3c2cb613-6c8a-4ed7-8783-37fb47bff5f2)
     63     @BluetoothBaseTest.bt_test_wrap
     64     def test_if_support_hfp_client_profile(self):
     65         """ Test that a single device can support HFP HF profile.
     66         Steps
     67         1. Initialize one android devices
     68         2. Check devices support profiles and return a dictionary
     69         3. Check the value of key 'hfp_client'
     70         :return: test_result: bool
     71         """
     72         profiles = check_device_supported_profiles(self.car_ad.droid)
     73         if not profiles['hfp_client']:
     74             self.car_ad.log.debug(
     75                 "Android device do not support HFP Client profile.")
     76             return False
     77         return True
     78 
     79     #@BluetoothTest(UUID=c3854e74-33da-4e4d-a9cb-4f5170ef7d10)
     80     @BluetoothBaseTest.bt_test_wrap
     81     def test_if_support_pbap_client_profile(self):
     82         """ Test that a single device can support PBAP PCE profile.
     83         Steps
     84         1. Initialize one android devices
     85         2. Check devices support profiles and return a dictionary
     86         3. Check the value of key 'pbap_client'
     87         :return: test_result: bool
     88         """
     89         profiles = check_device_supported_profiles(self.car_ad.droid)
     90         if not profiles['pbap_client']:
     91             self.car_ad.log.debug(
     92                 "Android device do not support PBAP Client profile.")
     93             return False
     94         return True
     95