# Copyright 2016 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 = "Harpreet Grewal <harpreet@chromium.org>"
NAME = "powerplay"
PURPOSE = "Suite for tests using powerplay to collect power data."
TIME = "LONG"
TEST_CATEGORY = "Performance"
TEST_CLASS = "suite"
TEST_TYPE = "Server"

DOC = """
This suite runs tests that capture power consumption data from ChromeOS devices
using powerplay.
"""

import common
from autotest_lib.server.cros.dynamic_suite import dynamic_suite

# Values specified in this bug template will override default values when
# filing bugs on tests that are a part of this suite. If left unspecified
# the bug filer will fallback to it's defaults.
_BUG_TEMPLATE = {
    'labels': ['power', 'powerplay'],
    'owner': 'harpreet@chromium.org',
    'status': None,
    'summary': None,
    'title': None,
    'cc': ['dchan@chromium.org']
}

args_dict['name'] = 'powerplay'
args_dict['add_experimental'] = True
args_dict['bug_template'] = _BUG_TEMPLATE
args_dict['job'] = job

dynamic_suite.reimage_and_run(**args_dict)
