# Copyright (c) 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.

AUTHOR = "chromeos-perf"
NAME = "Telemetry Tab Switching Benchmark"
SUITE = "perf_v2"
TIME = "LONG"
TEST_CATEGORY = "Benchmark"
TEST_CLASS = "performance"
TEST_TYPE = "server"

DOC = """
This server side test suite executes the Telemetry Tab Switching Benchmark.
This is part of Chrome for Chrome OS performance testing.
"""

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

    # 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="tab_switching.tough_energy_cases",
                 tag="tab_switching.tough_energy_cases")

parallel_simple(run_benchmark, machines)
