# Copyright (c) 2013 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.

AUTHOR = 'arakhov@chromium.org'
NAME = 'bluetooth_SDP_ServiceBrowse'
SUITE = 'bluetooth,bluetooth_qualification'
TIME = 'SHORT'
TEST_CLASS = 'bluetooth'
TEST_TYPE = 'Server'
DEPENDENCIES = 'bluetooth,wificell'

DOC = """
Verify that the IUT behave correct during Service Browse procedure.

Two tests use different requests to execute Service Browse procedure:
one uses Service Search Request and Service Attribute Request,
the other one uses Service Search Attribute Request.

This test covers the Bluetooth SIG test cases:
TP/SERVER/BRW/BV-01-C
TP/SERVER/BRW/BV-02-C

"""

from autotest_lib.server.cros.bluetooth import bluetooth_tester


def run(machine):
    device_host = hosts.create_host(machine)
    tester_host = bluetooth_tester.create_host_from(device_host)
    job.run_test('bluetooth_SDP_ServiceBrowse',
                 device_host=device_host,
                 tester_host=tester_host,
                 interactive=False)

parallel_simple(run, machines)
