# 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 Octane Benchmark"
SUITE = "perf_v2"
TIME = "LONG"
TEST_CATEGORY = "Benchmark"
TEST_CLASS = "performance"
TEST_TYPE = "server"

DOC = """
This server side test suite executes the Telemetry Octane 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="octane", tag="octane")

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

parallel_simple(run_benchmark, machines)
