# 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.CtsDrmTestCases_-_CtsEdiHostTestCases'
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-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,
        max_retry=9,
        tag='internal.arm.all.CtsDrmTestCases_-_CtsEdiHostTestCases',
        test_name='cheets_CTS_T.internal.arm.all.CtsDrmTestCases_-_CtsEdiHostTestCases',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsDrmTestCases', '--include-filter', 'CtsDrmTestCases[instant]', '--include-filter', 'CtsDrmTestCases[secondary_user]', '--include-filter', 'CtsDropBoxManagerTestCases', '--include-filter', 'CtsDumpsysHostTestCases', '--include-filter', 'CtsDumpsysHostTestCases[secondary_user]', '--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]', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='all.CtsDrmTestCases_-_CtsEdiHostTestCases',
        target_plan=None,
        bundle='arm',
        uri='LATEST',
        timeout=172800)

parallel_simple(run_TS, machines)
