# 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, pstew, quiche'
NAME = 'network_WiFi_HiddenRemains'
TIME = 'SHORT'
TEST_TYPE = 'Server'
ATTRIBUTES = "suite:wifi_matfunc, suite:wifi_matfunc_bcm4356, suite:wifi_matfunc_intel7265, suite:wifi_matfunc_marvell8897"
SUITE = ('wifi_matfunc, wifi_matfunc_bcm4356, wifi_matfunc_marvell8897,'
         'wifi_matfunc_intel7265')
DEPENDENCIES = 'wificell'

DOC = """
This test verifies that shill continues to remember that a network is
hidden after associating with it.
"""


def run(machine):
    host = hosts.create_host(machine)
    job.run_test('network_WiFi_HiddenRemains',
                 tag=NAME,
                 host=host,
                 raw_cmdline_args=args)


parallel_simple(run, machines)
