# 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_RoamSuspendTimeout.wpa'
TIME = 'SHORT'
TEST_TYPE = 'Server'
SUITE = 'wifi_flaky'
DEPENDENCIES = 'wificell'

DOC = """
This tests verifies that we can reconnect to an AP broadcasting a WPA network
using TKIP after deauthentication while the DUT is suspended.  TKIP is
deprecated for having some security holes, and WPA is deprecated in favor of
WPA2, but routers of a certain age only support this mode.
"""

from autotest_lib.client.common_lib.cros.network import xmlrpc_datatypes
from autotest_lib.client.common_lib.cros.network import xmlrpc_security_types
from autotest_lib.server.cros.network import hostap_config


def run(machine):
    wpa_config = xmlrpc_security_types.WPAConfig(
            psk='chromeos',
            wpa_mode=xmlrpc_security_types.WPAConfig.MODE_PURE_WPA,
            wpa_ciphers=[xmlrpc_security_types.WPAConfig.CIPHER_TKIP])
    job.run_test('network_WiFi_RoamSuspendTimeout',
                 tag=NAME.split('.')[1],
                 host=hosts.create_host(machine),
                 raw_cmdline_args=args,
                 additional_params=hostap_config.HostapConfig(
                         frequency=2412,
                         mode=hostap_config.HostapConfig.MODE_11G,
                         security_config=wpa_config))


parallel_simple(run, machines)
