# 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.CtsShortcutHostTestCases_-_CtsVideoTestCases'
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 CtsShortcutHostTestCases, CtsShortcutManagerTestCases, CtsSimRestrictedApisTestCases, CtsSimpleCpuTestCases, CtsSimpleperfTestCases, CtsSkQPTestCases, CtsSliceTestCases, CtsSpeechTestCases, CtsStatsdHostTestCases, CtsSustainedPerformanceHostTestCases, CtsSyncAccountAccessOtherCertTestCases, CtsSyncContentHostTestCases, CtsSyncManagerTestsCases, CtsSystemApiAnnotationTestCases, CtsSystemApiSignatureTestCases, CtsSystemIntentTestCases, CtsSystemUiHostTestCases, CtsSystemUiTestCases, CtsTelecomTestCases, CtsTelecomTestCases2, CtsTelecomTestCases3, CtsTelephony2TestCases, CtsTelephonyTestCases, CtsTextTestCases, CtsThemeDeviceTestCases, CtsThemeHostTestCases, CtsToastLegacyTestCases, CtsToastTestCases, CtsTransitionTestCases, CtsTrustedVoiceHostTestCases, CtsTvProviderTestCases, CtsTvTestCases, CtsUiAutomationTestCases, CtsUiDeviceTestCases, CtsUiRenderingTestCases, CtsUidIsolationTestCases, CtsUsageStatsTestCases, CtsUsbTests, CtsUtilTestCases, CtsVideoTestCases 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.CtsShortcutHostTestCases_-_CtsVideoTestCases',
        test_name='cheets_CTS_P.9.0_r9.x86.all.CtsShortcutHostTestCases_-_CtsVideoTestCases',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsShortcutHostTestCases', '--include-filter', 'CtsShortcutManagerTestCases', '--include-filter', 'CtsSimRestrictedApisTestCases', '--include-filter', 'CtsSimpleCpuTestCases', '--include-filter', 'CtsSimpleperfTestCases', '--include-filter', 'CtsSkQPTestCases', '--include-filter', 'CtsSliceTestCases', '--include-filter', 'CtsSpeechTestCases', '--include-filter', 'CtsStatsdHostTestCases', '--include-filter', 'CtsSustainedPerformanceHostTestCases', '--include-filter', 'CtsSyncAccountAccessOtherCertTestCases', '--include-filter', 'CtsSyncContentHostTestCases', '--include-filter', 'CtsSyncManagerTestsCases', '--include-filter', 'CtsSystemApiAnnotationTestCases', '--include-filter', 'CtsSystemApiSignatureTestCases', '--include-filter', 'CtsSystemIntentTestCases', '--include-filter', 'CtsSystemUiHostTestCases', '--include-filter', 'CtsSystemUiTestCases', '--include-filter', 'CtsTelecomTestCases', '--include-filter', 'CtsTelecomTestCases2', '--include-filter', 'CtsTelecomTestCases3', '--include-filter', 'CtsTelephony2TestCases', '--include-filter', 'CtsTelephonyTestCases', '--include-filter', 'CtsTextTestCases', '--include-filter', 'CtsThemeDeviceTestCases', '--include-filter', 'CtsThemeHostTestCases', '--include-filter', 'CtsToastLegacyTestCases', '--include-filter', 'CtsToastTestCases', '--include-filter', 'CtsTransitionTestCases', '--include-filter', 'CtsTrustedVoiceHostTestCases', '--include-filter', 'CtsTvProviderTestCases', '--include-filter', 'CtsTvTestCases', '--include-filter', 'CtsUiAutomationTestCases', '--include-filter', 'CtsUiDeviceTestCases', '--include-filter', 'CtsUiRenderingTestCases', '--include-filter', 'CtsUidIsolationTestCases', '--include-filter', 'CtsUsageStatsTestCases', '--include-filter', 'CtsUsbTests', '--include-filter', 'CtsUtilTestCases', '--include-filter', 'CtsVideoTestCases', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='all.CtsShortcutHostTestCases_-_CtsVideoTestCases',
        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)
