# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

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

AUTHOR = 'ARC++ Team'
NAME = 'cheets_CTS_P.9.0_r9.x86.all.CtsDeviceIdleHostTestCases_-_CtsExternalSourcesTestCases'
ATTRIBUTES = 'suite:arc-cts-qual'
DEPENDENCIES = 'arc, cts_abi_x86'
JOB_RETRIES = 1
TEST_TYPE = 'server'
TIME = 'MEDIUM'
MAX_RESULT_SIZE_KB = 512000
DOC = 'Run module CtsDeviceIdleHostTestCases, CtsDevicePolicyManagerTestCases, CtsDexMetadataHostTestCases, CtsDisplayTestCases, CtsDpiTestCases, CtsDpiTestCases2, CtsDreamsTestCases, CtsDrmTestCases, CtsDumpsysHostTestCases, CtsDynamicLinkerTestCases, CtsEdiHostTestCases, CtsEffectTestCases, CtsExternalServiceTestCases, CtsExternalSourcesTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'

def run_CTS(machine):
    host_list = [hosts.create_host(machine)]
    job.run_test(
        'cheets_CTS_P',
        hosts=host_list,
        iterations=1,
        max_retry=9,
        needs_push_media=False,
        tag='9.0_r9.x86.all.CtsDeviceIdleHostTestCases_-_CtsExternalSourcesTestCases',
        test_name='cheets_CTS_P.9.0_r9.x86.all.CtsDeviceIdleHostTestCases_-_CtsExternalSourcesTestCases',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsDeviceIdleHostTestCases', '--include-filter', 'CtsDevicePolicyManagerTestCases', '--include-filter', 'CtsDexMetadataHostTestCases', '--include-filter', 'CtsDisplayTestCases', '--include-filter', 'CtsDpiTestCases', '--include-filter', 'CtsDpiTestCases2', '--include-filter', 'CtsDreamsTestCases', '--include-filter', 'CtsDrmTestCases', '--include-filter', 'CtsDumpsysHostTestCases', '--include-filter', 'CtsDynamicLinkerTestCases', '--include-filter', 'CtsEdiHostTestCases', '--include-filter', 'CtsEffectTestCases', '--include-filter', 'CtsExternalServiceTestCases', '--include-filter', 'CtsExternalSourcesTestCases', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='all.CtsDeviceIdleHostTestCases_-_CtsExternalSourcesTestCases',
        target_plan=None,
        bundle='x86',
        uri='gs://chromeos-arc-images/cts/bundle/P/android-cts-9.0_r9-linux_x86-x86.zip',
        timeout=172800)

parallel_simple(run_CTS, machines)
