# Copyright 2017 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-chameleon'
NAME = 'bluetooth_AdapterPairing.le.mouse.stress_500'
PURPOSE = ('Stress test for 500 iterations on bluetooth adapter pairing '
           'and connection.')
CRITERIA = 'Adapter should work in correct states.'
ATTRIBUTES = 'suite:bluetooth'
TIME = 'LONG'     # This test takes about 8 hours 45 minutes.
TEST_CATEGORY = 'Functional'
TEST_CLASS = 'bluetooth'
TEST_TYPE = 'server'
DEPENDENCIES = 'bluetooth, chameleon:bt_hog'

DOC = """
Verify that the bluetooth adapter of the DUT could pair and connect
to a bluetooth le device.

Specifically, the following subtests are executed in this autotest.
    - test_reset_on_adapter
    - test_pairable
    - test_discover_device
    - test_stop_discovery
    - test_device_name
    - test_device_class_of_service
    - test_device_class_of_device
    - test_pairing
    - test_connection_by_adapter
    - test_disconnection_by_adapter
    - test_connection_by_adapter (N.B. by adapter, Bluefruit can't initiate)
    - test_disconnection_by_adapter (N.B Bluefruit's disconnect isn't clean.)
    - test_remove_pairing
"""

args_dict = utils.args_to_dict(args)
chameleon_args = hosts.CrosHost.get_chameleon_arguments(args_dict)

def run(machine):
    host = hosts.create_host(machine, chameleon_args=chameleon_args)
    job.run_test('bluetooth_AdapterPairing', host=host, device_type='LE_MOUSE',
                 num_iterations=500, min_pass_count=500)

parallel_simple(run, machines)