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

# __GENERATED_BY_GENERATE_CONTROLFILES_PY__:MOBLAB

# This file has been automatically generated. Do not edit!

AUTHOR = 'n/a'
NAME = 'cheets_CTS_R.x86.CtsMediaTestCases'
METADATA = {
    "contacts": ["arc-cts-eng@google.com"],
    "bug_component": "b:183644",
    "criteria": "A part of Android CTS",
}
ATTRIBUTES = 'suite:cts'
DEPENDENCIES = 'arc, cts_abi_x86, noloopback'
HW_DEPS = ['android-container-rvc','android-vm-rvc']
JOB_RETRIES = 1
TEST_TYPE = 'server'
TIME = 'LONG'
MAX_RESULT_SIZE_KB = 512000
PRIORITY = 70
DOC = 'n/a'

def run_TS(machine):
    host_list = [hosts.create_host(machine)]
    job.run_test(
        'cheets_CTS_R',
        hosts=host_list,
        iterations=1,
        needs_push_media=True,
        tag='x86.CtsMediaTestCases',
        test_name='cheets_CTS_R.x86.CtsMediaTestCases',
        run_template=['run', 'commandAndExit', 'cts', '--module', 'CtsMediaTestCases'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='CtsMediaTestCases',
        target_plan=None,
        bundle='x86',
        retry_manual_tests=True,
        warn_on_test_retry=False,
        timeout=36000)

parallel_simple(run_TS, machines)
