# Copyright 2015 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 = 'bmahadev, krisr, harpreet'
TIME = 'SHORT'
NAME = 'network_WiFi_RoamSuspendEndToEnd'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:wifi_endtoend, suite:wifi_matfunc_bcm4371'
SUITE = 'wifi_endtoend, wifi_matfunc_bcm4371'
DEPENDENCIES = 'servo, wificell'

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.
"""

from autotest_lib.server import utils

args_dict = utils.args_to_dict(args)
servo_args = hosts.CrosHost.get_servo_arguments(args_dict)

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

parallel_simple(run, machines)
