# Copyright 2022 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_T.internal.x86.all.CtsSyncAccountAccessOtherCertTestCases_-_CtsTetheringTest'
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-x86-33'
DEPENDENCIES = 'arc, cts_abi_x86'
HW_DEPS = ['android-vm-tm']
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_T',
        hosts=host_list,
        iterations=1,
        max_retry=9,
        tag='internal.x86.all.CtsSyncAccountAccessOtherCertTestCases_-_CtsTetheringTest',
        test_name='cheets_CTS_T.internal.x86.all.CtsSyncAccountAccessOtherCertTestCases_-_CtsTetheringTest',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsSyncAccountAccessOtherCertTestCases', '--include-filter', 'CtsSyncAccountAccessOtherCertTestCases[secondary_user]', '--include-filter', 'CtsSyncContentHostTestCases', '--include-filter', 'CtsSyncContentHostTestCases[secondary_user]', '--include-filter', 'CtsSyncManagerTestsCases', '--include-filter', 'CtsSyncManagerTestsCases[secondary_user]', '--include-filter', 'CtsSystemApiAnnotationTestCases', '--include-filter', 'CtsSystemApiAnnotationTestCases[secondary_user]', '--include-filter', 'CtsSystemApiSignatureTestCases', '--include-filter', 'CtsSystemApiSignatureTestCases[secondary_user]', '--include-filter', 'CtsSystemIntentTestCases', '--include-filter', 'CtsSystemIntentTestCases[secondary_user]', '--include-filter', 'CtsSystemUiHostTestCases', '--include-filter', 'CtsSystemUiHostTestCases[instant]', '--include-filter', 'CtsSystemUiHostTestCases[secondary_user]', '--include-filter', 'CtsSystemUiTestCases', '--include-filter', 'CtsSystemUiTestCases[instant]', '--include-filter', 'CtsSystemUiTestCases[secondary_user]', '--include-filter', 'CtsTaggingHostTestCases', '--include-filter', 'CtsTaggingHostTestCases[instant]', '--include-filter', 'CtsTaggingHostTestCases[secondary_user]', '--include-filter', 'CtsTaskFpsCallbackTestCases', '--include-filter', 'CtsTaskFpsCallbackTestCases[instant]', '--include-filter', 'CtsTaskFpsCallbackTestCases[secondary_user]', '--include-filter', 'CtsTelecomTestCases', '--include-filter', 'CtsTelecomTestCases2', '--include-filter', 'CtsTelecomTestCases2[secondary_user]', '--include-filter', 'CtsTelecomTestCases3', '--include-filter', 'CtsTelecomTestCases3[secondary_user]', '--include-filter', 'CtsTelecomTestCases[secondary_user]', '--include-filter', 'CtsTelephony2TestCases', '--include-filter', 'CtsTelephony2TestCases[instant]', '--include-filter', 'CtsTelephony3TestCases', '--include-filter', 'CtsTelephony3TestCases[secondary_user]', '--include-filter', 'CtsTelephony5TestCases', '--include-filter', 'CtsTelephony5TestCases[secondary_user]', '--include-filter', 'CtsTelephonyHostCases', '--include-filter', 'CtsTelephonyHostCases[secondary_user]', '--include-filter', 'CtsTelephonyProviderHostCases', '--include-filter', 'CtsTelephonyProviderHostCases[secondary_user]', '--include-filter', 'CtsTelephonyProviderTestCases', '--include-filter', 'CtsTelephonyTestCases', '--include-filter', 'CtsTestHarnessModeTestCases', '--include-filter', 'CtsTestHarnessModeTestCases[secondary_user]', '--include-filter', 'CtsTetheringTest', '--include-filter', 'CtsTetheringTest[secondary_user]', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='all.CtsSyncAccountAccessOtherCertTestCases_-_CtsTetheringTest',
        target_plan=None,
        bundle='x86',
        uri='LATEST',
        timeout=172800)

parallel_simple(run_TS, machines)
