# Copyright 2016 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.8.0_r4.all.GtsExoPlayerTestCases_-_GtsMbaPrivilegedPermissionTestCases'
ATTRIBUTES = 'suite:arc-gts-qual'
DEPENDENCIES = 'arc'
JOB_RETRIES = 1
TEST_TYPE = 'server'
TIME = 'MEDIUM'
MAX_RESULT_SIZE_KB = 307200
DOC = 'Run module GtsExoPlayerTestCases, GtsFeaturesTestCases, GtsGmscoreHostTestCases, GtsGraphicsHostTestCases, GtsHomeHostTestCases, GtsIncidentConfirmationTestCases, GtsIncidentManagerTestCases, GtsIncrementalInstallProxyHostTestCases, GtsIncrementalInstallTestCases, GtsIncrementalInstallTestCases_BackgroundProcess, GtsIncrementalInstallTriggerApp, GtsIncrementalInstallTriggerApp_BackgroundProcess, GtsInstallPackagesWhitelistDeviceTestCases, GtsInstallerV2TestCases, GtsInstallerV2TestCases_BackgroundProcess, GtsInstantAppsHostTestCases, GtsJniUncompressHostTestCases, GtsKidsHomeHostTestCases, GtsLargeApkHostTestCases, GtsLensTestCases, GtsLinkerConfigTestCases, GtsLinkerConfigTestCases[secondary_user], GtsLocationHostTestCases, GtsLocationTestCases, GtsMbaPrivilegedPermissionTestCases 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',
        hosts=host_list,
        iterations=1,
        max_retry=9,
        tag='8.0_r4.all.GtsExoPlayerTestCases_-_GtsMbaPrivilegedPermissionTestCases',
        test_name='cheets_GTS.8.0_r4.all.GtsExoPlayerTestCases_-_GtsMbaPrivilegedPermissionTestCases',
        authkey='gs://chromeos-arc-images/cts/bundle/gts-arc.json',
        run_template=['run', 'commandAndExit', 'gts', '--include-filter', 'GtsExoPlayerTestCases', '--include-filter', 'GtsFeaturesTestCases', '--include-filter', 'GtsGmscoreHostTestCases', '--include-filter', 'GtsGraphicsHostTestCases', '--include-filter', 'GtsHomeHostTestCases', '--include-filter', 'GtsIncidentConfirmationTestCases', '--include-filter', 'GtsIncidentManagerTestCases', '--include-filter', 'GtsIncrementalInstallProxyHostTestCases', '--include-filter', 'GtsIncrementalInstallTestCases', '--include-filter', 'GtsIncrementalInstallTestCases_BackgroundProcess', '--include-filter', 'GtsIncrementalInstallTriggerApp', '--include-filter', 'GtsIncrementalInstallTriggerApp_BackgroundProcess', '--include-filter', 'GtsInstallPackagesWhitelistDeviceTestCases', '--include-filter', 'GtsInstallerV2TestCases', '--include-filter', 'GtsInstallerV2TestCases_BackgroundProcess', '--include-filter', 'GtsInstantAppsHostTestCases', '--include-filter', 'GtsJniUncompressHostTestCases', '--include-filter', 'GtsKidsHomeHostTestCases', '--include-filter', 'GtsLargeApkHostTestCases', '--include-filter', 'GtsLensTestCases', '--include-filter', 'GtsLinkerConfigTestCases', '--include-filter', 'GtsLinkerConfigTestCases[secondary_user]', '--include-filter', 'GtsLocationHostTestCases', '--include-filter', 'GtsLocationTestCases', '--include-filter', 'GtsMbaPrivilegedPermissionTestCases', '--ignore-business-logic-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='all.GtsExoPlayerTestCases_-_GtsMbaPrivilegedPermissionTestCases',
        target_plan=None,
        uri='LATEST',
        prerequisites=['bluetooth'],
        use_jdk9=True,
        timeout=86400)

parallel_simple(run_TS, machines)
