# 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_CTS_N.7.1_r28.x86.all.CtsDeviceAdminUninstallerTestCases_-_CtsExternalServiceTestCases'
ATTRIBUTES = 'suite:arc-cts-qual'
DEPENDENCIES = 'arc, cts_abi_x86'
JOB_RETRIES = 1
TEST_TYPE = 'server'
TIME = 'MEDIUM'
MAX_RESULT_SIZE_KB = 307200
DOC = 'Run module CtsDeviceAdminUninstallerTestCases, CtsDevicePolicyManagerTestCases, CtsDisplayTestCases, CtsDpiTestCases, CtsDpiTestCases2, CtsDragAndDropHostTestCases, CtsDramTestCases, CtsDreamsTestCases, CtsDrmTestCases, CtsDumpsysHostTestCases, CtsEffectTestCases, CtsExternalServiceTestCases 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_N',
        hosts=host_list,
        iterations=1,
        max_retry=9,
        needs_push_media=False,
        tag='7.1_r28.x86.all.CtsDeviceAdminUninstallerTestCases_-_CtsExternalServiceTestCases',
        test_name='cheets_CTS_N.7.1_r28.x86.all.CtsDeviceAdminUninstallerTestCases_-_CtsExternalServiceTestCases',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsDeviceAdminUninstallerTestCases', '--include-filter', 'CtsDevicePolicyManagerTestCases', '--include-filter', 'CtsDisplayTestCases', '--include-filter', 'CtsDpiTestCases', '--include-filter', 'CtsDpiTestCases2', '--include-filter', 'CtsDragAndDropHostTestCases', '--include-filter', 'CtsDramTestCases', '--include-filter', 'CtsDreamsTestCases', '--include-filter', 'CtsDrmTestCases', '--include-filter', 'CtsDumpsysHostTestCases', '--include-filter', 'CtsEffectTestCases', '--include-filter', 'CtsExternalServiceTestCases', '--disable-reboot', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'cts', '--disable-reboot', '--retry', '{session_id}'],
        target_module='all.CtsDeviceAdminUninstallerTestCases_-_CtsExternalServiceTestCases',
        target_plan=None,
        bundle='x86',
        uri='gs://chromeos-arc-images/cts/bundle/N/android-cts-7.1_r28-linux_x86-x86.zip',
        timeout=172800)

parallel_simple(run_CTS, machines)
