# Copyright 2020 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_R.internal.x86.CtsAndroid'
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-x86-2'
DEPENDENCIES = 'arc, cts_abi_x86'
HW_DEPS = ['android-container-rvc','android-vm-rvc']
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_R',
        hosts=host_list,
        iterations=1,
        tag='internal.x86.CtsAndroid',
        test_name='cheets_CTS_R.internal.x86.CtsAndroid',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsAndroidAppTestCases', '--include-filter', 'CtsAndroidAppTestCases[instant]', '--include-filter', 'CtsAndroidAppTestCases[secondary_user]', '--include-filter', 'CtsAndroidTestBase28ApiSignatureTestCases', '--include-filter', 'CtsAndroidTestBase28ApiSignatureTestCases[instant]', '--include-filter', 'CtsAndroidTestBase28ApiSignatureTestCases[secondary_user]', '--include-filter', 'CtsAndroidTestBaseCurrentApiSignatureTestCases', '--include-filter', 'CtsAndroidTestBaseCurrentApiSignatureTestCases[instant]', '--include-filter', 'CtsAndroidTestBaseCurrentApiSignatureTestCases[secondary_user]', '--include-filter', 'CtsAndroidTestMockCurrentApiSignatureTestCases', '--include-filter', 'CtsAndroidTestMockCurrentApiSignatureTestCases[instant]', '--include-filter', 'CtsAndroidTestMockCurrentApiSignatureTestCases[secondary_user]', '--include-filter', 'CtsAndroidTestRunnerCurrentApiSignatureTestCases', '--include-filter', 'CtsAndroidTestRunnerCurrentApiSignatureTestCases[instant]', '--include-filter', 'CtsAndroidTestRunnerCurrentApiSignatureTestCases[secondary_user]', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='CtsAndroid',
        target_plan=None,
        bundle='x86',
        uri='DEV',
        timeout=28800)

parallel_simple(run_TS, machines)
