# Copyright 2022 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Do not edit this file! It was created by generate_controlfiles.py.

from autotest_lib.client.common_lib import utils

NAME = 'telemetry_Benchmarks.speedometer2'
METADATA = {
    'contacts': ['cros-sw-perf@google.com'],
    'bug_component': 'b:1045832',  # ChromeOS > Software > Performance > TPS
    'criteria': ('Executes the Telemetry Benchmark: speedometer2.'
                 'Pass local=True to run with local telemetry and no AFE '
                 'server.'),
    'hw_agnostic': False
}
ATTRIBUTES = 'suite:crosbolt_perf_perbuild'
TEST_TYPE = 'server'

def run_benchmark(machine):
    host = hosts.create_host(machine)
    dargs = utils.args_to_dict(args)
    dargs['extra_args'] = ''.split()
    job.run_test('telemetry_Benchmarks', host=host,
                 benchmark='speedometer2',
                 tag='speedometer2',
                 args=dargs)

parallel_simple(run_benchmark, machines)
