# 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.CtsDynamicLinkerTestCases_-_CtsFsMgrTestCases'
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-6'
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,
        tag='internal.arm.all.CtsDynamicLinkerTestCases_-_CtsFsMgrTestCases',
        test_name='cheets_CTS_R.internal.arm.all.CtsDynamicLinkerTestCases_-_CtsFsMgrTestCases',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsDynamicLinkerTestCases', '--include-filter', 'CtsDynamicLinkerTestCases[instant]', '--include-filter', 'CtsDynamicLinkerTestCases[secondary_user]', '--include-filter', 'CtsDynamicMimeHostTestCases', '--include-filter', 'CtsDynamicMimeHostTestCases[secondary_user]', '--include-filter', 'CtsEdiHostTestCases', '--include-filter', 'CtsEdiHostTestCases[secondary_user]', '--include-filter', 'CtsEffectTestCases', '--include-filter', 'CtsEffectTestCases[instant]', '--include-filter', 'CtsEffectTestCases[secondary_user]', '--include-filter', 'CtsExtendedMockingTestCases', '--include-filter', 'CtsExtendedMockingTestCases[instant]', '--include-filter', 'CtsExtendedMockingTestCases[secondary_user]', '--include-filter', 'CtsExternalServiceTestCases', '--include-filter', 'CtsExternalServiceTestCases[secondary_user]', '--include-filter', 'CtsExtractNativeLibsHostTestCases', '--include-filter', 'CtsExtractNativeLibsHostTestCases[secondary_user]', '--include-filter', 'CtsFragmentTestCases', '--include-filter', 'CtsFragmentTestCasesSdk26', '--include-filter', 'CtsFragmentTestCasesSdk26[instant]', '--include-filter', 'CtsFragmentTestCasesSdk26[secondary_user]', '--include-filter', 'CtsFragmentTestCases[instant]', '--include-filter', 'CtsFragmentTestCases[secondary_user]', '--include-filter', 'CtsFsMgrTestCases', '--include-filter', 'CtsFsMgrTestCases[secondary_user]', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='all.CtsDynamicLinkerTestCases_-_CtsFsMgrTestCases',
        target_plan=None,
        bundle='arm',
        uri='LATEST',
        timeout=172800)

parallel_simple(run_TS, machines)
