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