# Copyright 2019 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
from autotest_lib.server.cros.bluetooth import bluetooth_test

AUTHOR = 'chromeos-bluetooth'
NAME = 'bluetooth_AdapterSASanity.sa_adapter_discoverable_timeout_test'
PURPOSE = 'Test DiscoverableTimout Property'
CRITERIA = 'Controller should become not discoverable after timeout'
ATTRIBUTES = 'suite:bluetooth, suite:bluetooth_standalone'
TIME = 'MEDIUM' # 6 minutes on EVE
TEST_CATEGORY = 'Functional'
TEST_CLASS = 'bluetooth'
TEST_TYPE = 'server'
DEPENDENCIES = 'bluetooth'

DOC = """
    Verify that DiscoverableTimeout Property works as expected

    - Set and Read back DiscoverableTimeout and make sure the values match
    - Set discoverable
    - Check that adapter is discoverable till DiscoverableTimeout and then it
      is not discoverable
    - Set DiscoverableTimeout to default value at the end of the test.

    """

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)
