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

# WARNING(crbug.com/743265): This test is currently broken because the ability
# to run client tests in the background from a server-side test has been
# deleted.

from autotest_lib.server import utils

AUTHOR = "abrestic, tbroch"
NAME = "power_USBHotplugInSuspend"
PURPOSE = "Tests USB hot-plugging during suspend."
CRITERIA = "Fails if hotplug of a USB device during suspend is not detected."
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "power"
TEST_TYPE = "server"
DEPENDENCIES = "servo_state:WORKING"

DOC = """
This tests both hotplug insertion and removal of a USB device while the DUT
is suspended.  The DUT is suspended using the client test power_KernelSuspend.
Servo is then used to power on/off the USB key.  After the client resumes, it
should detect the change.
"""

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("power_USBHotplugInSuspend", host=host)

parallel_simple(run, machines)
