# 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.CtsLibcore'
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-long'
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.CtsLibcore',
        test_name='cheets_CTS_R.internal.x86.CtsLibcore',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsLibcoreApiEvolutionTestCases', '--include-filter', 'CtsLibcoreApiEvolutionTestCases[secondary_user]', '--include-filter', 'CtsLibcoreFileIOTestCases', '--include-filter', 'CtsLibcoreFileIOTestCases[secondary_user]', '--include-filter', 'CtsLibcoreJsr166TestCases', '--include-filter', 'CtsLibcoreJsr166TestCases[secondary_user]', '--include-filter', 'CtsLibcoreLegacy22TestCases', '--include-filter', 'CtsLibcoreLegacy22TestCases[secondary_user]', '--include-filter', 'CtsLibcoreOjTestCases', '--include-filter', 'CtsLibcoreOjTestCases[secondary_user]', '--include-filter', 'CtsLibcoreOkHttpTestCases', '--include-filter', 'CtsLibcoreOkHttpTestCases[secondary_user]', '--include-filter', 'CtsLibcoreTestCases', '--include-filter', 'CtsLibcoreTestCases[secondary_user]', '--include-filter', 'CtsLibcoreWycheproofBCTestCases', '--include-filter', 'CtsLibcoreWycheproofBCTestCases[secondary_user]', '--include-filter', 'CtsLibcoreWycheproofConscryptTestCases', '--include-filter', 'CtsLibcoreWycheproofConscryptTestCases[secondary_user]'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='CtsLibcore',
        target_plan=None,
        bundle='x86',
        uri='DEV',
        timeout=39600)

parallel_simple(run_TS, machines)
