# 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_scrolling_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 measurement test
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_scrolling_cases",
                 tag="smoothness.tough_scrolling_cases",
                 args=utils.args_to_dict(args))

parallel_simple(run_benchmark, machines)
