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

DOC = """
This test outputs the power consumption of WebRTC to the performance dashboard.
The purpose is to watch the regression.
"""

import logging

from autotest_lib.client.common_lib import error


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_WebRtcPerf",
                           decode_time_test=False,
                           cpu_test=False,
                           power_test=True)
    finally:
        client.power_on()


job.parallel_on_machines(_run_client_test, machines)
