| # Copyright 2020 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from autotest_lib.server import utils |
| |
| AUTHOR = 'chromeos-bluetooth' |
| NAME = 'bluetooth_AdapterSASanity.sa_single_advertising_test' |
| PURPOSE = 'Test bluetooth adapter advertising.' |
| CRITERIA = 'Adapter should advertise with correct parameters.' |
| ATTRIBUTES = 'suite:bluetooth_flaky' |
| TIME = 'SHORT' |
| TEST_CATEGORY = 'Functional' |
| TEST_CLASS = 'bluetooth' |
| TEST_TYPE = 'server' |
| DEPENDENCIES = 'bluetooth' |
| |
| DOC = """ |
| This test case verifies that the Bluetooth adapter of the DUT can |
| behave as a Bluetooth low-energy device and register a single |
| advertisement with data and parameters correctly. This test case also |
| verifies that the single advertisement could be registered and |
| unregistered continuously. |
| |
| This autotest include the following test cases: |
| self.test_case_SI200_RA1_CD_UA1() |
| self.test_case_SI200_RA1_CD_RS() |
| self.test_case_RA1_CD_SI200_CD_UA1() |
| self.test_case_RA1_CD_SI200_CD_RS() |
| self.test_case_RA1_CD_SI200_CD_FSI10_UA1_RA1_CD_UA1() |
| self.test_case_RA1_CD_SI200_CD_FSI20000_UA1_RA1_CD_UA1() |
| |
| Specifically, the subtests included in this autotest verify the |
| following operations and parameters. |
| - test_register_advertisement |
| * A single advertisement is 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_set_advertising_intervals |
| * The new advertising intervals are set correctly. |
| - test_reset_advertising |
| * The single advertisement instance is removed. |
| * Advertising is disabled consequently. |
| |
| Mnemonics of the test cases: |
| CD: check advertising duration and intervals |
| RA: register advertisements |
| UA: unregister advertisements |
| SI: set advertising intervals |
| RS: reset advertising |
| FRA: fail to register extra advertisements when max ones have |
| been registered. |
| FSI: fail to set advertising intervals beyond legitimate range |
| of [20 ms, 10,240 ms]. |
| PC: power cycle the bluetooth adapter (controller). |
| SR: suspend and resume the DUT (chromebook) |
| |
| """ |
| |
| args_dict = utils.args_to_dict(args) |
| |
| def run(machine): |
| host = hosts.create_host(machine) |
| job.run_test('bluetooth_AdapterSASanity', host=host, |
| num_iterations=1, test_name=NAME.split('.')[1]) |
| |
| parallel_simple(run, machines) |