# 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__:LATEST

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

AUTHOR = 'n/a'
NAME = 'cheets_CTS_R.internal.arm.all.CtsPdfTestCases_-_CtsProtoTestCases'
METADATA = {
    "contacts": ["arc-cts-eng@google.com"],
    "bug_component": "b:183644",
    "criteria": "A part of Android CTS",
}
ATTRIBUTES = 'suite:arc-cts-qual, suite:arc-cts-qual-arm-15'
DEPENDENCIES = 'arc'
HW_DEPS = ['android-container-rvc','android-vm-rvc']
JOB_RETRIES = 1
TEST_TYPE = 'server'
TIME = 'MEDIUM'
MAX_RESULT_SIZE_KB = 512000
DOC = 'n/a'

def run_TS(machine):
    host_list = [hosts.create_host(machine)]
    job.run_test(
        'cheets_CTS_R',
        hosts=host_list,
        iterations=1,
        max_retry=9,
        use_helpers=True,
        tag='internal.arm.all.CtsPdfTestCases_-_CtsProtoTestCases',
        test_name='cheets_CTS_R.internal.arm.all.CtsPdfTestCases_-_CtsProtoTestCases',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsPdfTestCases', '--include-filter', 'CtsPdfTestCases[instant]', '--include-filter', 'CtsPdfTestCases[secondary_user]', '--include-filter', 'CtsPerfettoTestCases', '--include-filter', 'CtsPerfettoTestCases[secondary_user]', '--include-filter', 'CtsPermission2TestCases', '--include-filter', 'CtsPermission2TestCases[instant]', '--include-filter', 'CtsPermission3TestCases', '--include-filter', 'CtsPermission3TestCases[secondary_user]', '--include-filter', 'CtsPermissionTestCases', '--include-filter', 'CtsPermissionTestCasesSdk28', '--include-filter', 'CtsPermissionTestCasesSdk28[instant]', '--include-filter', 'CtsPermissionTestCasesSdk28[secondary_user]', '--include-filter', 'CtsPermissionTestCasesTelephony', '--include-filter', 'CtsPermissionTestCasesTelephony[instant]', '--include-filter', 'CtsPermissionTestCasesTelephony[secondary_user]', '--include-filter', 'CtsPermissionTestCases[instant]', '--include-filter', 'CtsPreferenceTestCases', '--include-filter', 'CtsPreferenceTestCases[instant]', '--include-filter', 'CtsPreferenceTestCases[secondary_user]', '--include-filter', 'CtsPrintTestCases', '--include-filter', 'CtsPrintTestCases[instant]', '--include-filter', 'CtsPrintTestCases[secondary_user]', '--include-filter', 'CtsProtoTestCases', '--include-filter', 'CtsProtoTestCases[instant]', '--include-filter', 'CtsProtoTestCases[secondary_user]', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='all.CtsPdfTestCases_-_CtsProtoTestCases',
        target_plan=None,
        bundle='arm',
        uri='LATEST',
        timeout=172800)

parallel_simple(run_TS, machines)
