| # Copyright 2022 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # This test case verifies that the Bluetooth adapter of the DUT can behave as |
| # a Bluetooth low-energy device and register multiple advertisements with |
| # data and parameters correctly. This test case also verifies that |
| # advertisements could be registered and unregistered continuously. |
| # |
| # Specifically, this autotest include the following test cases: |
| # self.test_case_SI200_RA3_CD_UA3() |
| # self.test_case_SI200_RA3_CD_RA1_CD_UA1_CD_UA3() |
| # self.test_case_SI200_RA3_CD_RS() |
| # self.test_case_SI200_RA3_CD_UA1_CD_RS() |
| # self.test_case_SI200_RA3_CD_UA1_CD_RA2_CD_UA4() |
| # self.test_case_RA3_CD_SI200_CD_UA3() |
| # self.test_case_RA3_CD_SI200_CD_RS() |
| # self.test_case_RA3_CD_SI200_CD_UA1_CD_RS() |
| # self.test_case_RA3_CD_SI200_CD_SI2000_CD_UA3() |
| # self.test_case_RA3_CD_SI200_CD_FSI10_CD_FSI20000_CD_UA3() |
| # |
| # Mnemonics of the test cases: |
| # CD: check advertising duration and intervals |
| # RA: register advertisements |
| # UA: unregister advertisements |
| # SI: set advertising intervals |
| # RS: reset advertising |
| # FSI: fail to set advertising intervals beyond legitimate range of [20 ms, |
| # 10,240 ms]. |
| # |
| # Every test case consists of a sequence of tests: |
| # test_register_advertisement |
| # * All advertisements are registered successfully. |
| # * The advertising min/max intervals are set correctly. |
| # . The intervals are set to specified values. |
| # . The intervals are set to default values after reset. |
| # * The manufacturer id is set correctly. |
| # * The service UUIDs are set correctly. |
| # * The service data is set correctly. |
| # * Advertising is enabled consequently. |
| # test_reset_advertising |
| # * All advertisement instances are removed. |
| # * Advertising is disabled consequently. |
| # test_check_duration_and_intervals |
| # * The duration is correct. |
| # * The new advertising intervals are set correctly. |
| # test_unregister_advertisement |
| # * The advertisement is removed. |
| # * Advertising is disabled when the last one is removed. |
| |
| NAME = 'bluetooth_AdapterAdvHealth.adv_multiple_advertising_test.floss' |
| METADATA = { |
| 'contacts': ['chromeos-bt-team@google.com'], |
| # ChromeOS > Platform > Connectivity > Bluetooth |
| 'bug_component': 'b:167317', |
| 'criteria': 'Test bluetooth adapter multiple advertising capability', |
| 'hw_agnostic': True, |
| 'requirements': ['bt-gen-0001-v01'], |
| } |
| ATTRIBUTES = 'suite:bluetooth_floss' |
| TEST_TYPE = 'server' |
| DEPENDENCIES = 'bluetooth_state:NORMAL' |
| |
| def run(machine): |
| host = hosts.create_host(machine) |
| job.run_test('bluetooth_AdapterAdvHealth', host=host, num_iterations=1, |
| tag='.'.join(NAME.split('.')[1:]), |
| test_name=NAME.split('.')[1], peer_required=False, floss=True) |
| |
| |
| parallel_simple(run, machines) |