# Copyright 2018 The ChromiumOS Authors
# 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 = 'n/a'
NAME = 'cheets_CTS_Instant.internal.x86.all.CtsAccessibilityServiceTestCases_-_CtsAutoFillServiceTestCases'
METADATA = {
    "contacts": ["arc-cts-eng@google.com"],
    "bug_component": "b:183644",
    "criteria": "A part of Android CTS",
}
ATTRIBUTES = 'suite:arc-cts, suite:arc-cts-long, suite:arc-cts-qual, suite:arc-cts-qual-long'
DEPENDENCIES = 'arc, cts_cpu_x86'
HW_DEPS = ['android-container-pi']
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_Instant',
        hosts=host_list,
        iterations=1,
        max_retry=9,
        tag='internal.x86.all.CtsAccessibilityServiceTestCases_-_CtsAutoFillServiceTestCases',
        test_name='cheets_CTS_Instant.internal.x86.all.CtsAccessibilityServiceTestCases_-_CtsAutoFillServiceTestCases',
        run_template=['run', 'commandAndExit', 'cts-instant', '--exclude-filter', 'CtsBackgroundRestrictionsTestCases', '--exclude-filter', 'CtsCameraTestCases', '--exclude-filter', 'CtsColorModeTestCases', '--exclude-filter', 'CtsDatabaseTestCases', '--exclude-filter', 'CtsDisplayTestCases', '--exclude-filter', 'CtsDpiTestCases', '--exclude-filter', 'CtsDreamsTestCases', '--exclude-filter', 'CtsEdiHostTestCases', '--exclude-filter', 'CtsExternalSourcesTestCases', '--exclude-filter', 'CtsFileSystemTestCases', '--exclude-filter', 'CtsFragmentTestCases', '--exclude-filter', 'CtsFragmentTestCasesSdk26', '--exclude-filter', 'CtsGestureTestCases', '--exclude-filter', 'CtsHostsideWebViewTests', '--exclude-filter', 'CtsInputMethodServiceHostTestCases', '--exclude-filter', 'CtsInputMethodTestCases', '--exclude-filter', 'CtsLocation2TestCases', '--exclude-filter', 'CtsLocationTestCases', '--exclude-filter', 'CtsMediaHostTestCases', '--exclude-filter', 'CtsMediaTestCases', '--exclude-filter', 'CtsMultiUserTestCases', '--exclude-filter', 'CtsOsHostTestCases', '--exclude-filter', 'CtsPdfTestCases', '--exclude-filter', 'CtsPermission2TestCases', '--exclude-filter', 'CtsPermissionTestCases', '--exclude-filter', 'CtsPreference2TestCases', '--exclude-filter', 'CtsPreferenceTestCases', '--exclude-filter', 'CtsPrintTestCases', '--exclude-filter', 'CtsSampleDeviceTestCases', '--exclude-filter', 'CtsSampleHostTestCases', '--exclude-filter', 'CtsSystemUiTestCases', '--exclude-filter', 'CtsTextTestCases', '--exclude-filter', 'CtsToastTestCases', '--exclude-filter', 'CtsUiAutomationTestCases', '--exclude-filter', 'CtsUiDeviceTestCases', '--exclude-filter', 'CtsUidIsolationTestCases', '--exclude-filter', 'CtsUsageStatsTestCases', '--exclude-filter', 'CtsUsbTests', '--exclude-filter', 'CtsViewTestCases', '--exclude-filter', 'CtsWidgetTestCases', '--exclude-filter', 'CtsWindowManagerDeviceTestCases', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='all.CtsAccessibilityServiceTestCases_-_CtsAutoFillServiceTestCases',
        target_plan=None,
        bundle='x86',
        uri='LATEST',
        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
        timeout=18000)

parallel_simple(run_TS, machines)
