# 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 = 'wiley@chromium.com'
NAME = 'network_WiFi_SimpleConnect'
TIME = 'SHORT'
TEST_TYPE = 'Server'

DOC = """
This test verifies that DUT can connect to an open 802.11a network
on channels 48, 64.
"""


from autotest_lib.server.cros.wlan import hostap_config


def run(machine):
    a_mode = hostap_config.HostapConfig.MODE_11A
    configurations = [hostap_config.HostapConfig(channel=48, mode=a_mode),
                      hostap_config.HostapConfig(channel=64, mode=a_mode)]
    host = hosts.create_host(machine)
    job.run_test('network_WiFi_SimpleConnect',
                 host=host,
                 raw_cmdline_args=args,
                 additional_params=configurations)


parallel_simple(run, machines)
