# Copyright 2020 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 = "puthik"
NAME = "power_LW.power_WebGL"
TIME = "MEDIUM"
TEST_CATEGORY = "Benchmark"
TEST_CLASS = "power"
TEST_TYPE = "server"
ATTRIBUTES = "suite:power_dashboard"

DOC = """
Control file for running power_WebGL in power lab.
"""

from autotest_lib.client.common_lib import utils

args_dict = utils.args_to_dict(args)
test = 'power_WebGL'
args = {'pdash_note': args_dict.get('pdash_note', '')}

def run(machine):
    host = hosts.create_host(machine)
    job.run_test("power_LW", host=host, test=test, args=args,
                 machine=machine, tag=NAME.split('.')[1])

parallel_simple(run, machines)
