# Copyright 2015 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

AUTHOR = 'bmahadev, krisr, harpreet'
TIME = 'SHORT'
NAME = 'network_WiFi_RoamSuspendEndToEnd'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:wifi_endtoend'
DEPENDENCIES = 'wificell, peripheral_wifi_state:WORKING'
PY_VERSION = 3

DOC = """
WiFi_RoamSuspendEndToEnd test configures two APs with the same ssid and runs the
client side network_RoamWifiEndToEnd test which uses these APs to test
WiFi roaming between two Open Networks after a Suspend/Resume.
"""

METADATA = {
    'contacts': ['chromeos-connectivity-engprod@google.com'],
    'bug_component': 'b:978946',
    'criteria': 'Test WiFi roaming between two Open Networks after suspend/resume',
    'hw_agnostic': False
}

from autotest_lib.server import utils

args_dict = utils.args_to_dict(args)

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

parallel_simple(run, machines)
