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

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

AUTHOR = 'n/a'
NAME = 'cheets_CTS_T.internal.arm.CtsDevice'
METADATA = {
    "contacts": ["arc-cts-eng@google.com"],
    "bug_component": "b:183644",
    "criteria": "A part of Android CTS",
}
ATTRIBUTES = 'suite:arc-cts-vm-stable, suite:arc-cts-vm-stable-arm-9'
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,
        tag='internal.arm.CtsDevice',
        test_name='cheets_CTS_T.internal.arm.CtsDevice',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsDeviceConfigTestCases', '--include-filter', 'CtsDeviceConfigTestCases[secondary_user]', '--include-filter', 'CtsDeviceIdleHostTestCases', '--include-filter', 'CtsDeviceIdleHostTestCases[secondary_user]', '--include-filter', 'CtsDevicePolicyManagerTestCases', '--include-filter', 'CtsDevicePolicyTestCases', '--include-filter', 'CtsDevicePolicyTestCases[run-on-clone-profile]', '--include-filter', 'CtsDevicePolicyTestCases[run-on-private-profile]', '--include-filter', 'CtsDevicePolicyTestCases[run-on-secondary-user]', '--include-filter', 'CtsDevicePolicyTestCases[run-on-work-profile]', '--include-filter', 'CtsDevicePolicyTestCases[secondary_user]', '--include-filter', 'CtsDeviceStateManagerTestCases', '--include-filter', 'CtsDeviceStateManagerTestCases[secondary_user]', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='CtsDevice',
        target_plan=None,
        bundle='arm',
        uri='DEV',
        timeout=25200)

parallel_simple(run_TS, machines)
