# 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.arm.all.CtsClasspathDeviceInfoTestCases_-_CtsContactsProviderWipe'
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-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.arm.all.CtsClasspathDeviceInfoTestCases_-_CtsContactsProviderWipe',
        test_name='cheets_CTS_T.internal.arm.all.CtsClasspathDeviceInfoTestCases_-_CtsContactsProviderWipe',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsClasspathDeviceInfoTestCases', '--include-filter', 'CtsClasspathDeviceInfoTestCases[secondary_user]', '--include-filter', 'CtsClasspathsTestCases', '--include-filter', 'CtsClasspathsTestCases[secondary_user]', '--include-filter', 'CtsColorModeTestCases', '--include-filter', 'CtsColorModeTestCases[instant]', '--include-filter', 'CtsColorModeTestCases[secondary_user]', '--include-filter', 'CtsCompanionDeviceManagerCoreTestCases', '--include-filter', 'CtsCompanionDeviceManagerCoreTestCases[secondary_user]', '--include-filter', 'CtsCompanionDeviceManagerNoCompanionServicesTestCases', '--include-filter', 'CtsCompanionDeviceManagerNoCompanionServicesTestCases[secondary_user]', '--include-filter', 'CtsCompanionDeviceManagerUiAutomationTestCases', '--include-filter', 'CtsCompanionDeviceManagerUiAutomationTestCases[secondary_user]', '--include-filter', 'CtsContactsProviderTestCases', '--include-filter', 'CtsContactsProviderTestCases[secondary_user]', '--include-filter', 'CtsContactsProviderWipe', '--include-filter', 'CtsContactsProviderWipe[secondary_user]', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='all.CtsClasspathDeviceInfoTestCases_-_CtsContactsProviderWipe',
        target_plan=None,
        bundle='arm',
        uri='LATEST',
        timeout=172800)

parallel_simple(run_TS, machines)
