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

AUTHOR = "chromeos-perf"
NAME = "Telemetry RoboHornetPro Benchmark"
SUITE = "perf_v2"
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.
"""

def run_benchmark(machine):
    host = hosts.create_host(machine)

    # The benchmark reports power data when the DUT is on battery power, so
    # attempt to turn the power off for the duration.
    job.run_test("power_RPMTest", host=host, verify=False,
                 power_on=False, tag="off")

    # The benchmark doesn't need the power off to run successfully, so there
    # is no dependency on rpm, as an RPM failure could cause the job to fail
    # before running the benchmark.
    job.run_test("telemetry_Benchmarks", host=host,
                 benchmark="robohornet_pro", tag="robohornet_pro")

    job.run_test("power_RPMTest", host=host, verify=False,
                 power_on=True, tag="on")

parallel_simple(run_benchmark, machines)
