# Copyright 2020 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_GTS_R.8.0_r4.all.GtsAccountsHostTestCases_-_GtsEdiHostTestCases'
ATTRIBUTES = 'suite:arc-gts-qual'
DEPENDENCIES = 'arc'
JOB_RETRIES = 1
TEST_TYPE = 'server'
TIME = 'MEDIUM'
MAX_RESULT_SIZE_KB = 307200
DOC = 'Run module GtsAccountsHostTestCases, GtsAdminTestCases, GtsAfwTestCases, GtsAndroidAutoDeviceTestCases, GtsAppBlacklistDeviceTestCases, GtsAppTestCases, GtsAppVisibilityDeviceTestCases, GtsArtManagerHostTestCases, GtsAssistIntentTestCases, GtsAssistantHostTestCases, GtsAssistantMicHostTestCases, GtsAssistantWorkProfileHostTestCases, GtsAudioTestCases, GtsBackupHostTestCases, GtsBackupTestCases, GtsBootHealthHostTestCases, GtsBootStatsTestCases, GtsCNGCoreTestCases, GtsCallLogTestCases, GtsCameraTestCases, GtsCastHostTestCases, GtsContactsAppDeviceTestCases, GtsContactsTest, GtsContentHostTestCases, GtsContentTestCases, GtsContextHubPermissionDeviceTestCases, GtsDebugfsMountTestCases, GtsDeviceConfigTestCases, GtsDexModuleRegistrationTestCases, GtsDialerAudioTestCases, GtsDialerDeviceTestCases, GtsDozeDeviceTestCases, GtsDozeHostSideTestCases, GtsDuoReadyTestCases, GtsEdiHostTestCases of the Android Google Test Suite (GTS) in the ARC++ container.'

def run_TS(machine):
    host_list = [hosts.create_host(machine)]
    job.run_test(
        'cheets_GTS_R',
        hosts=host_list,
        iterations=1,
        max_retry=9,
        tag='8.0_r4.all.GtsAccountsHostTestCases_-_GtsEdiHostTestCases',
        test_name='cheets_GTS_R.8.0_r4.all.GtsAccountsHostTestCases_-_GtsEdiHostTestCases',
        authkey='gs://chromeos-arc-images/cts/bundle/gts-arc.json',
        run_template=['run', 'commandAndExit', 'gts', '--include-filter', 'GtsAccountsHostTestCases', '--include-filter', 'GtsAdminTestCases', '--include-filter', 'GtsAfwTestCases', '--include-filter', 'GtsAndroidAutoDeviceTestCases', '--include-filter', 'GtsAppBlacklistDeviceTestCases', '--include-filter', 'GtsAppTestCases', '--include-filter', 'GtsAppVisibilityDeviceTestCases', '--include-filter', 'GtsArtManagerHostTestCases', '--include-filter', 'GtsAssistIntentTestCases', '--include-filter', 'GtsAssistantHostTestCases', '--include-filter', 'GtsAssistantMicHostTestCases', '--include-filter', 'GtsAssistantWorkProfileHostTestCases', '--include-filter', 'GtsAudioTestCases', '--include-filter', 'GtsBackupHostTestCases', '--include-filter', 'GtsBackupTestCases', '--include-filter', 'GtsBootHealthHostTestCases', '--include-filter', 'GtsBootStatsTestCases', '--include-filter', 'GtsCNGCoreTestCases', '--include-filter', 'GtsCallLogTestCases', '--include-filter', 'GtsCameraTestCases', '--include-filter', 'GtsCastHostTestCases', '--include-filter', 'GtsContactsAppDeviceTestCases', '--include-filter', 'GtsContactsTest', '--include-filter', 'GtsContentHostTestCases', '--include-filter', 'GtsContentTestCases', '--include-filter', 'GtsContextHubPermissionDeviceTestCases', '--include-filter', 'GtsDebugfsMountTestCases', '--include-filter', 'GtsDeviceConfigTestCases', '--include-filter', 'GtsDexModuleRegistrationTestCases', '--include-filter', 'GtsDialerAudioTestCases', '--include-filter', 'GtsDialerDeviceTestCases', '--include-filter', 'GtsDozeDeviceTestCases', '--include-filter', 'GtsDozeHostSideTestCases', '--include-filter', 'GtsDuoReadyTestCases', '--include-filter', 'GtsEdiHostTestCases', '--ignore-business-logic-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='all.GtsAccountsHostTestCases_-_GtsEdiHostTestCases',
        target_plan=None,
        uri='LATEST',
        use_jdk9=True,
        timeout=86400)

parallel_simple(run_TS, machines)
