# Copyright 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.

from autotest_lib.client.common_lib import utils

AUTHOR = "sbasi, achuith, rohitbm"
NAME = "telemetry_Benchmarks.smoothness.tough_webgl_cases"
SUITE = "bvt-perbuild"
TIME = "LONG"
TEST_CATEGORY = "Benchmark"
TEST_CLASS = "performance"
TEST_TYPE = "server"

DOC = """
This server side test suite executes the Telemetry smoothness Benchmark
for advanced graphics(e.g. games) for ChromeOS.
This is part of Chrome for Chrome OS performance testing.

Pass local=True to run with local telemetry and no AFE server.
"""

def run_benchmark(machine):
    host = hosts.create_host(machine)
    job.run_test("telemetry_Benchmarks", host=host,
                 benchmark="smoothness.tough_webgl_cases",
                 tag="smoothness.tough_webgl_cases",
                 args=utils.args_to_dict(args))

parallel_simple(run_benchmark, machines)
