def setup_class(self): # AVRCP roles self.CT = self.android_devices[0] self.TG = self.android_devices[1] # A2DP roles for the same devices self.SNK = self.CT self.SRC = self.TG # Setup devices bt_test_utils.setup_multiple_devices_for_bt_test([self.CT, self.TG]) self.btAddrCT = self.CT.droid.bluetoothGetLocalAddress() self.btAddrTG = self.TG.droid.bluetoothGetLocalAddress() # Additional time from the stack reset in setup. time.sleep(4) # Pair the devices. if not bt_test_utils.pair_pri_to_sec( self.CT, self.TG, attempts=4, auto_confirm=False): self.log.error("Failed to pair") return False # Disable all car_bt_utils.set_car_profile_priorities_off(self.SNK, self.SRC) # Enable A2DP bt_test_utils.set_profile_priority( self.SNK, self.SRC, [BtEnum.BluetoothProfile.A2DP_SINK], BtEnum.BluetoothPriorityLevel.PRIORITY_ON)
def setup_class(self): if not super(BtCarPbapTest, self).setup_class(): return False self.pce = self.android_devices[0] self.pse = self.android_devices[1] self.pse2 = self.android_devices[2] self.contacts_destination_path = self.log_path + "/" permissions_list = [ "android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS", "android.permission.READ_EXTERNAL_STORAGE" ] for device in self.android_devices: for permission in permissions_list: device.adb.shell( "pm grant com.google.android.contacts {}".format( permission)) # Pair the devices. # This call may block until some specified timeout in bt_test_utils.py. # Grace time inbetween stack state changes if not bt_test_utils.pair_pri_to_sec(self.pce, self.pse): self.log.error("Failed to pair.") return False time.sleep(3) if not bt_test_utils.pair_pri_to_sec(self.pce, self.pse2): self.log.error("Failed to pair.") return False # Disable the HFP and A2DP profiles. This will ensure only PBAP # gets connected. Also, this will eliminate the auto-connect loop. car_bt_utils.set_car_profile_priorities_off(self.pce, self.pse) car_bt_utils.set_car_profile_priorities_off(self.pce, self.pse2) # Enable PBAP on PSE & PCE. self.pse.droid.bluetoothChangeProfileAccessPermission( self.pce.droid.bluetoothGetLocalAddress(), BtEnum.BluetoothProfile.PBAP_SERVER.value, BtEnum.BluetoothAccessLevel.ACCESS_ALLOWED.value) self.pse2.droid.bluetoothChangeProfileAccessPermission( self.pce.droid.bluetoothGetLocalAddress(), BtEnum.BluetoothProfile.PBAP_SERVER.value, BtEnum.BluetoothAccessLevel.ACCESS_ALLOWED.value) bt_test_utils.set_profile_priority( self.pce, self.pse, [BtEnum.BluetoothProfile.PBAP_CLIENT], BtEnum.BluetoothPriorityLevel.PRIORITY_ON) bt_test_utils.set_profile_priority( self.pce, self.pse2, [BtEnum.BluetoothProfile.PBAP_CLIENT], BtEnum.BluetoothPriorityLevel.PRIORITY_ON) return True
def setup_class(self): if not super(BtCarHfpConnectionTest, self).setup_class(): return False # Disable all car_bt_utils.set_car_profile_priorities_off(self.hf, self.ag) # Enable A2DP bt_test_utils.set_profile_priority( self.hf, self.ag, [BtEnum.BluetoothProfile.HEADSET_CLIENT], BtEnum.BluetoothPriorityLevel.PRIORITY_ON) return True
def test_repairing(self): """ Tests that even if we modify the priorities, on unpair and pair we will reset the priorities. Steps: 1. Pair the devices (do not connect) 2. Unset the priorities for HFP and A2DP 3. Pair again 4. Check the priorities, they should be set to default. Returns: Pass if True Fail if False Priority: 0 """ # Pair the devices. self.log.info("Pairing the devices ...") if not bt_test_utils.pair_pri_to_sec( self.car, self.ph, attempts=1, auto_confirm=False): self.log.error("Failed to pair devices.") return False # Timed wait for the profile priorities to propagate. time.sleep(BOND_TO_SDP_WAIT) # Set the priority to OFF for ALL car profiles. self.car.log.info("Set priorities off ...") car_bt_utils.set_car_profile_priorities_off(self.car, self.ph) # Now unpair the devices. self.log.info("Resetting the devices ...") for ad in self.android_devices: bt_test_utils.clear_bonded_devices(ad) # Give the stack time to unbond. time.sleep(UNBOND_TIMEOUT) # Pair them again! self.log.info("Pairing them again ...") if not bt_test_utils.pair_pri_to_sec( self.car, self.ph, attempts=1, auto_confirm=False): self.log.error("Faild to pair devices.") return False # Timed wait for the profile priorities to propagate. time.sleep(BOND_TO_SDP_WAIT) # Check the default priorities. ph_hfp_p = self.car.droid.bluetoothHfpClientGetPriority( self.ph.droid.bluetoothGetLocalAddress()) if ph_hfp_p != BtEnum.BluetoothPriorityLevel.PRIORITY_ON.value: self.hf.log.error("HFP priority found: {}, expected: {}.".format( ph_hfp_p, BtEnum.BluetoothPriorityLevel.PRIORITY_ON.value)) return False ph_a2dp_p = self.car.droid.bluetoothA2dpSinkGetPriority( self.ph.droid.bluetoothGetLocalAddress()) if ph_a2dp_p != BtEnum.BluetoothPriorityLevel.PRIORITY_ON.value: self.ph.log.error("A2DP priority found: {}, expected {}.".format( ph_a2dp_p, BtEnum.BluetoothPriorityLevel.PRIORITY_ON.value)) return False return True