# Copyright (c) 2014 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 = 'quiche, wiley, pstew'
NAME = 'network_WiFi_VisibleScan.11b'
TIME = 'SHORT'
TEST_TYPE = 'Server'
ATTRIBUTES = ''
DEPENDENCIES = 'wificell'

DOC = """
This test scans for networks, with a shill profile that does not
contain any hidden networks. The test verifies that 802.11 probe
frames are seen over-the-air, and that the probe frames specify
a broadcast scan.

"""

from autotest_lib.server.cros.network import hostap_config


def run(machine):
    host = hosts.create_host(machine)
    # This configuration uses as many defaults as possible
    configurations = [hostap_config.HostapConfig(channel=1,
            mode=hostap_config.HostapConfig.MODE_11B)]
    job.run_test('network_WiFi_VisibleScan',
                 tag=NAME.split('.')[1],
                 host=host,
                 raw_cmdline_args=args,
                 additional_params=configurations)


parallel_simple(run, machines)
