# Copyright 2018 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.blink_perf.image_decoder'
METADATA = {
    'contacts': ['cros-sw-perf@google.com'],
    'bug_component': 'b:1045832',  # ChromeOS > Software > Performance > TPS
    'criteria': ('Executes the Telemetry Benchmark: blink_perf.image_decoder.'
                 'Pass local=True to run with local telemetry and no AFE '
                 'server.'),
    'hw_agnostic': False
}
# Disable this test until it can be fixed: http://b/170998795
# ATTRIBUTES = 'suite:crosbolt_perf_nightly'
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='blink_perf.image_decoder',
                 tag='blink_perf.image_decoder',
                 args=dargs)

parallel_simple(run_benchmark, machines)
