# Copyright (c) 2013 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.robohornet_pro"
SUITE = "bvt-perbuild"
TIME = "LONG"
TEST_CATEGORY = "Benchmark"
TEST_CLASS = "performance"
TEST_TYPE = "server"

DOC = """
This server side test suite executes the Telemetry RoboHornet Pro Benchmark.
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="robohornet_pro", tag="robohornet_pro",
                 args=utils.args_to_dict(args))

parallel_simple(run_benchmark, machines)
