# 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.
#
# Test expects to be run on a jailbroken device in developer mode.

from autotest_lib.server import utils

AUTHOR = "dbasehore, snanda"
NAME = "power_DarkResumeShutdownServer"
SUITE = "kernel_daily_regression"
TIME = "MEDIUM"
TEST_CATEGORY = "Functional"
TEST_CLASS = "power"
TEST_TYPE = "server"
DEPENDENCIES = "servo, rpm"

DOC = """
Test that dark resume will result in a shutdown when it resumes without the
power plugged in (and setup so the battery margin will allow it to suspend
again).
"""

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_DarkResumeShutdownServer",
                 host=host, disable_sysinfo=True)

parallel_simple(run, machines)
