# 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"],
    "cc": ["chromeos-video-test-failures@google.com"],
}

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)