# 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.h264"
TIME = "MEDIUM"
TEST_CATEGORY = "Performance"
TEST_CLASS = "video"
SUITE = "bvt-perbuild"
TEST_TYPE = "server"
DEPENDENCIES = "rpm, power:battery"
BUG_TEMPLATE = {
    "labels": ["OS-Chrome", "VideoTestFailure"],
}

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

import logging

from autotest_lib.client.common_lib import error


VIDEO_NAME = "traffic-1920x1080-8005020218f6b86bfa978e550d04956e.mp4"
VIDEO_DESCRIPTION = "h264_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.")

    client.power_off()
    try:
        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)
