# 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.vp8"
TIME = "MEDIUM"
TEST_CATEGORY = "Performance"
TEST_CLASS = "video"
ATTRIBUTES = "suite:bvt-perbuild"
TEST_TYPE = "server"
DEPENDENCIES = "rpm, power:battery"
BUG_TEMPLATE = {
    "labels": ["OS-Chrome", "VideoTestFailure"],
    "cc": ["chromeos-video-test-failures@google.com"],
}

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

import logging

from autotest_lib.client.common_lib import error


VIDEO_NAME = "traffic/traffic-1920x1080-ad53f821ff3cf8ffa7e991c9d2e0b854.vp8.webm"
VIDEO_DESCRIPTION = "vp8_1080p"

def _run_client_test(machine):
    """Runs client test with battery actively discharging."""
    client = hosts.create_host(machine)
    if not client.has_power():
        raise error.TestError("This test requires RPM support.")

    try:
        client.power_off()
        client_at = autotest.Autotest(client)
        client_at.run_test("video_PlaybackPerf", video_name=VIDEO_NAME,
                           video_description=VIDEO_DESCRIPTION, power_test=True)
    finally:
        client.power_on()


job.parallel_on_machines(_run_client_test, machines)
