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

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

AUTHOR = 'ARC++ Team'
NAME = 'cheets_CTS_R.11_r5.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases'
ATTRIBUTES = 'suite:arc-cts-qual'
DEPENDENCIES = 'arc'
JOB_RETRIES = 1
TEST_TYPE = 'server'
TIME = 'MEDIUM'
MAX_RESULT_SIZE_KB = 512000
PY_VERSION = 3
DOC = 'Run module CtsFragmentTestCases, CtsFragmentTestCasesSdk26, CtsFragmentTestCasesSdk26[instant], CtsFragmentTestCasesSdk26[secondary_user], CtsFragmentTestCases[instant], CtsFragmentTestCases[secondary_user], CtsFsMgrTestCases, CtsFsMgrTestCases[secondary_user], CtsGestureTestCases, CtsGestureTestCases[instant], CtsGestureTestCases[secondary_user], CtsGpuProfilingDataTestCases, CtsGpuProfilingDataTestCases[secondary_user], CtsGpuToolsHostTestCases, CtsGpuToolsHostTestCases[secondary_user], CtsGraphicsTestCases, CtsGraphicsTestCases[instant], CtsGraphicsTestCases[secondary_user], CtsGwpAsanTestCases, CtsGwpAsanTestCases[instant], CtsGwpAsanTestCases[secondary_user], CtsHardwareTestCases, CtsHardwareTestCases[secondary_user], CtsHarmfulAppWarningHostTestCases, CtsHarmfulAppWarningHostTestCases[secondary_user], CtsHdmiCecHostTestCases, CtsHdmiCecHostTestCases[secondary_user], CtsHiddenApiBlacklistApi27TestCases, CtsHiddenApiBlacklistApi27TestCases[instant], CtsHiddenApiBlacklistApi27TestCases[secondary_user], CtsHiddenApiBlacklistApi28TestCases, CtsHiddenApiBlacklistApi28TestCases[instant], CtsHiddenApiBlacklistApi28TestCases[secondary_user], CtsHiddenApiBlacklistCurrentApiTestCases, CtsHiddenApiBlacklistCurrentApiTestCases[instant], CtsHiddenApiBlacklistCurrentApiTestCases[secondary_user], CtsHiddenApiBlacklistDebugClassTestCases, CtsHiddenApiBlacklistDebugClassTestCases[instant], CtsHiddenApiBlacklistDebugClassTestCases[secondary_user], CtsHiddenApiBlacklistTestApiTestCases, CtsHiddenApiBlacklistTestApiTestCases[instant], CtsHiddenApiBlacklistTestApiTestCases[secondary_user], CtsHiddenApiKillswitchDebugClassTestCases, CtsHiddenApiKillswitchDebugClassTestCases[instant], CtsHiddenApiKillswitchDebugClassTestCases[secondary_user], CtsHiddenApiKillswitchWhitelistTestCases, CtsHiddenApiKillswitchWhitelistTestCases[instant], CtsHiddenApiKillswitchWhitelistTestCases[secondary_user], CtsHiddenApiKillswitchWildcardTestCases, CtsHiddenApiKillswitchWildcardTestCases[instant], CtsHiddenApiKillswitchWildcardTestCases[secondary_user], CtsHostTzDataTests, CtsHostTzDataTests[secondary_user], CtsHostsideNetworkTests, CtsHostsideNetworkTests[instant], CtsHostsideNetworkTests[secondary_user], CtsHostsideNumberBlockingTestCases, CtsHostsideNumberBlockingTestCases[secondary_user], CtsHostsideTvTests, CtsHostsideTvTests[secondary_user], CtsHostsideWebViewTests, CtsHostsideWebViewTests[instant], CtsHostsideWebViewTests[secondary_user], CtsIcuTestCases, CtsIcuTestCases[secondary_user], CtsIdentityTestCases, CtsIdentityTestCases[secondary_user], CtsIkeTestCases, CtsIkeTestCases[secondary_user], CtsIncidentHostTestCases, CtsIncidentHostTestCases[instant], CtsIncrementalInstallHostTestCases, CtsIncrementalInstallHostTestCases[secondary_user], CtsInitTestCases, CtsInitTestCases[secondary_user], CtsInlineMockingTestCases, CtsInlineMockingTestCases[instant], CtsInlineMockingTestCases[secondary_user], CtsInputMethodServiceHostTestCases, CtsInputMethodServiceHostTestCases[instant], CtsInputMethodServiceHostTestCases[secondary_user], CtsInputMethodTestCases, CtsInputMethodTestCases[instant], CtsInputMethodTestCases[secondary_user], CtsInstantAppTests, CtsInstantAppTests[secondary_user], CtsIntentSignatureTestCases, CtsIntentSignatureTestCases[secondary_user], CtsJdwpSecurityHostTestCases, CtsJdwpSecurityHostTestCases[secondary_user], CtsJdwpTestCases, CtsJdwpTestCases[instant], CtsJdwpTestCases[secondary_user], CtsJdwpTunnelHostTestCases, CtsJdwpTunnelHostTestCases[secondary_user], CtsJniTestCases, CtsJniTestCases[instant], CtsJniTestCases[secondary_user], CtsJobSchedulerSharedUidTestCases, CtsJobSchedulerSharedUidTestCases[secondary_user], CtsJobSchedulerTestCases, CtsJobSchedulerTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'

def run_TS(machine):
    host_list = [hosts.create_host(machine)]
    job.run_test(
        'cheets_CTS_R',
        hosts=host_list,
        iterations=1,
        max_retry=30,
        tag='11_r5.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases',
        test_name='cheets_CTS_R.11_r5.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases',
        run_template=['run', 'commandAndExit', 'cts', '--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]', '--include-filter', 'CtsGestureTestCases', '--include-filter', 'CtsGestureTestCases[instant]', '--include-filter', 'CtsGestureTestCases[secondary_user]', '--include-filter', 'CtsGpuProfilingDataTestCases', '--include-filter', 'CtsGpuProfilingDataTestCases[secondary_user]', '--include-filter', 'CtsGpuToolsHostTestCases', '--include-filter', 'CtsGpuToolsHostTestCases[secondary_user]', '--include-filter', 'CtsGraphicsTestCases', '--include-filter', 'CtsGraphicsTestCases[instant]', '--include-filter', 'CtsGraphicsTestCases[secondary_user]', '--include-filter', 'CtsGwpAsanTestCases', '--include-filter', 'CtsGwpAsanTestCases[instant]', '--include-filter', 'CtsGwpAsanTestCases[secondary_user]', '--include-filter', 'CtsHardwareTestCases', '--include-filter', 'CtsHardwareTestCases[secondary_user]', '--include-filter', 'CtsHarmfulAppWarningHostTestCases', '--include-filter', 'CtsHarmfulAppWarningHostTestCases[secondary_user]', '--include-filter', 'CtsHdmiCecHostTestCases', '--include-filter', 'CtsHdmiCecHostTestCases[secondary_user]', '--include-filter', 'CtsHiddenApiBlacklistApi27TestCases', '--include-filter', 'CtsHiddenApiBlacklistApi27TestCases[instant]', '--include-filter', 'CtsHiddenApiBlacklistApi27TestCases[secondary_user]', '--include-filter', 'CtsHiddenApiBlacklistApi28TestCases', '--include-filter', 'CtsHiddenApiBlacklistApi28TestCases[instant]', '--include-filter', 'CtsHiddenApiBlacklistApi28TestCases[secondary_user]', '--include-filter', 'CtsHiddenApiBlacklistCurrentApiTestCases', '--include-filter', 'CtsHiddenApiBlacklistCurrentApiTestCases[instant]', '--include-filter', 'CtsHiddenApiBlacklistCurrentApiTestCases[secondary_user]', '--include-filter', 'CtsHiddenApiBlacklistDebugClassTestCases', '--include-filter', 'CtsHiddenApiBlacklistDebugClassTestCases[instant]', '--include-filter', 'CtsHiddenApiBlacklistDebugClassTestCases[secondary_user]', '--include-filter', 'CtsHiddenApiBlacklistTestApiTestCases', '--include-filter', 'CtsHiddenApiBlacklistTestApiTestCases[instant]', '--include-filter', 'CtsHiddenApiBlacklistTestApiTestCases[secondary_user]', '--include-filter', 'CtsHiddenApiKillswitchDebugClassTestCases', '--include-filter', 'CtsHiddenApiKillswitchDebugClassTestCases[instant]', '--include-filter', 'CtsHiddenApiKillswitchDebugClassTestCases[secondary_user]', '--include-filter', 'CtsHiddenApiKillswitchWhitelistTestCases', '--include-filter', 'CtsHiddenApiKillswitchWhitelistTestCases[instant]', '--include-filter', 'CtsHiddenApiKillswitchWhitelistTestCases[secondary_user]', '--include-filter', 'CtsHiddenApiKillswitchWildcardTestCases', '--include-filter', 'CtsHiddenApiKillswitchWildcardTestCases[instant]', '--include-filter', 'CtsHiddenApiKillswitchWildcardTestCases[secondary_user]', '--include-filter', 'CtsHostTzDataTests', '--include-filter', 'CtsHostTzDataTests[secondary_user]', '--include-filter', 'CtsHostsideNetworkTests', '--include-filter', 'CtsHostsideNetworkTests[instant]', '--include-filter', 'CtsHostsideNetworkTests[secondary_user]', '--include-filter', 'CtsHostsideNumberBlockingTestCases', '--include-filter', 'CtsHostsideNumberBlockingTestCases[secondary_user]', '--include-filter', 'CtsHostsideTvTests', '--include-filter', 'CtsHostsideTvTests[secondary_user]', '--include-filter', 'CtsHostsideWebViewTests', '--include-filter', 'CtsHostsideWebViewTests[instant]', '--include-filter', 'CtsHostsideWebViewTests[secondary_user]', '--include-filter', 'CtsIcuTestCases', '--include-filter', 'CtsIcuTestCases[secondary_user]', '--include-filter', 'CtsIdentityTestCases', '--include-filter', 'CtsIdentityTestCases[secondary_user]', '--include-filter', 'CtsIkeTestCases', '--include-filter', 'CtsIkeTestCases[secondary_user]', '--include-filter', 'CtsIncidentHostTestCases', '--include-filter', 'CtsIncidentHostTestCases[instant]', '--include-filter', 'CtsIncrementalInstallHostTestCases', '--include-filter', 'CtsIncrementalInstallHostTestCases[secondary_user]', '--include-filter', 'CtsInitTestCases', '--include-filter', 'CtsInitTestCases[secondary_user]', '--include-filter', 'CtsInlineMockingTestCases', '--include-filter', 'CtsInlineMockingTestCases[instant]', '--include-filter', 'CtsInlineMockingTestCases[secondary_user]', '--include-filter', 'CtsInputMethodServiceHostTestCases', '--include-filter', 'CtsInputMethodServiceHostTestCases[instant]', '--include-filter', 'CtsInputMethodServiceHostTestCases[secondary_user]', '--include-filter', 'CtsInputMethodTestCases', '--include-filter', 'CtsInputMethodTestCases[instant]', '--include-filter', 'CtsInputMethodTestCases[secondary_user]', '--include-filter', 'CtsInstantAppTests', '--include-filter', 'CtsInstantAppTests[secondary_user]', '--include-filter', 'CtsIntentSignatureTestCases', '--include-filter', 'CtsIntentSignatureTestCases[secondary_user]', '--include-filter', 'CtsJdwpSecurityHostTestCases', '--include-filter', 'CtsJdwpSecurityHostTestCases[secondary_user]', '--include-filter', 'CtsJdwpTestCases', '--include-filter', 'CtsJdwpTestCases[instant]', '--include-filter', 'CtsJdwpTestCases[secondary_user]', '--include-filter', 'CtsJdwpTunnelHostTestCases', '--include-filter', 'CtsJdwpTunnelHostTestCases[secondary_user]', '--include-filter', 'CtsJniTestCases', '--include-filter', 'CtsJniTestCases[instant]', '--include-filter', 'CtsJniTestCases[secondary_user]', '--include-filter', 'CtsJobSchedulerSharedUidTestCases', '--include-filter', 'CtsJobSchedulerSharedUidTestCases[secondary_user]', '--include-filter', 'CtsJobSchedulerTestCases', '--include-filter', 'CtsJobSchedulerTestCases[secondary_user]', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases',
        target_plan=None,
        bundle='arm',
        uri='LATEST',
        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
        use_jdk9=True,
        timeout=172800)

parallel_simple(run_TS, machines)
