# Copyright (c) 2012 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 = "Chrome OS Team"
NAME = "network_WiFiCompatSSIDServer"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "network"
TEST_TYPE = "server"

DOC = """
This script configures wireless access points SSID settings and verifies a
chromeos device can detect the changes.  This test must be performed in the
AP compatibility lab.
"""

def wifi_ssid_compat(machine):
    host = hosts.create_host(machine)
    job.run_test('network_WiFiCompatSSIDServer', host=host, iterations=1,
                 disable_sysinfo=True)

parallel_simple(wifi_ssid_compat, machines)
