# Copyright (c) 2014 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 = "Chrome OS Team"
NAME = "video_PowerConsumption"
TIME = "MEDIUM"
TEST_CATEGORY = "Performance"
TEST_CLASS = "video"
SUITE = "video"
TEST_TYPE = "server"
DEPENDENCIES = "rpm, hw_video_acc_vp8"
BUG_TEMPLATE = {
    'labels': ['OS-Chrome', 'Cr-OS-Kernel-Video'],
}

DOC = """
The test outputs the video power consumption for video
encode and decode.
"""

import logging

from autotest_lib.client.common_lib import error
from autotest_lib.server import site_host_attributes


def _run_client_test(machine):
    """Runs client test with battery actively discharging."""
    client = hosts.create_host(machine)
    if not client.has_power():
        msg = 'This test requires RPM support.'
        logging.info('********************%s', msg)
        raise error.TestError(msg)

    client.power_off()
    try:
        client_at = autotest.Autotest(client)
        client_at.run_test('video_WebRtcPower')
    finally:
        client.power_on()


job.parallel_on_machines(_run_client_test, machines)
