| #!/usr/bin/env python3 |
| # |
| # Copyright (C) 2019 The Android Open Source Project |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| # use this file except in compliance with the License. You may obtain a copy of |
| # the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations under |
| # the License. |
| """ |
| A2DP PTS Tests. |
| """ |
| from acts.test_utils.abstract_devices.bluetooth_device import AndroidBluetoothDevice |
| from acts.test_utils.abstract_devices.bluetooth_device import FuchsiaBluetoothDevice |
| from acts.test_utils.bt.pts.pts_base_class import PtsBaseClass |
| |
| import acts.test_utils.bt.pts.fuchsia_pts_ics_lib as f_ics_lib |
| import acts.test_utils.bt.pts.fuchsia_pts_ixit_lib as f_ixit_lib |
| |
| |
| class A2dpPtsTest(PtsBaseClass): |
| ble_advertise_interval = 100 |
| pts_action_mapping = None |
| |
| def setup_class(self): |
| super(A2dpPtsTest, self).setup_class() |
| self.dut.initialize_bluetooth_controller() |
| # self.dut.set_bluetooth_local_name(self.dut_bluetooth_local_name) |
| local_dut_mac_address = self.dut.get_local_bluetooth_address() |
| self.pts.set_profile_under_test("A2DP") |
| |
| ics = None |
| ixit = None |
| if isinstance(self.dut, FuchsiaBluetoothDevice): |
| fuchsia_ixit = f_ixit_lib.A2DP_IXIT |
| fuchsia_ixit[b'TSPX_bd_addr_iut'] = (b'OCTETSTRING', |
| local_dut_mac_address.replace( |
| ':', '').encode()) |
| ics = f_ics_lib.A2DP_ICS |
| ixit = fuchsia_ixit |
| elif isinstance(self.dut, AndroidBluetoothDevice): |
| # TODO: Add ICS and IXIT values for Android |
| self.log.warn( |
| "ICS/IXIT values not set for Android, using Fuchsia as default." |
| ) |
| fuchsia_ixit = f_ixit_lib.A2DP_IXIT |
| fuchsia_ixit[b'TSPX_bd_addr_iut'] = (b'OCTETSTRING', |
| local_dut_mac_address.replace( |
| ':', '').encode()) |
| ics = f_ics_lib.A2DP_ICS |
| ixit = fuchsia_ixit |
| |
| self.pts.set_ics_and_ixit(ics, ixit) |
| |
| self.dut.unbond_all_known_devices() |
| self.dut.start_pairing_helper() |
| |
| def setup_test(self): |
| super(A2dpPtsTest, self).setup_test() |
| # Make sure there were no lingering answers due to a failed test. |
| self.pts.extra_answers = [] |
| |
| def teardown_test(self): |
| super(A2dpPtsTest, self).teardown_test() |
| |
| def teardown_class(self): |
| super(A2dpPtsTest, self).teardown_class() |
| self.dut.stop_profile_a2dp_sink() |
| |
| # BEGIN A2DP SINK TESTCASES # |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_as_bv_01_i(self): |
| return self.pts.execute_test("A2DP/SNK/AS/BV-01-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_as_bv_02_i(self): |
| return self.pts.execute_test("A2DP/SNK/AS/BV-02-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_cc_bv_01_i(self): |
| return self.pts.execute_test("A2DP/SNK/CC/BV-01-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_cc_bv_02_i(self): |
| return self.pts.execute_test("A2DP/SNK/CC/BV-02-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_cc_bv_05_i(self): |
| return self.pts.execute_test("A2DP/SNK/CC/BV-05-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_cc_bv_06_i(self): |
| return self.pts.execute_test("A2DP/SNK/CC/BV-06-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_cc_bv_07_i(self): |
| return self.pts.execute_test("A2DP/SNK/CC/BV-07-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_cc_bv_08_i(self): |
| return self.pts.execute_test("A2DP/SNK/CC/BV-08-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_rel_bv_01_i(self): |
| return self.pts.execute_test("A2DP/SNK/REL/BV-01-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_set_bv_01_i(self): |
| return self.pts.execute_test("A2DP/SNK/SET/BV-01-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_set_bv_02_i(self): |
| return self.pts.execute_test("A2DP/SNK/SET/BV-02-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_set_bv_03_i(self): |
| return self.pts.execute_test("A2DP/SNK/SET/BV-03-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_set_bv_03_i_bv_05_i(self): |
| return self.pts.execute_test("A2DP/SNK/SET/BV-05-I") |
| |
| @PtsBaseClass.pts_test_wrap |
| def test_a2dp_snk_sus_bv_01_i(self): |
| return self.pts.execute_test("A2DP/SNK/SUS/BV-01-I") |
| |
| # END A2DP SINK TESTCASES # |