# 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_r13.arm.all.CtsSecurityTestCases_-_CtsSelinuxTargetSdkCurrentTestCases'
ATTRIBUTES = 'suite:arc-cts-qual'
DEPENDENCIES = 'arc'
JOB_RETRIES = 1
TEST_TYPE = 'server'
TIME = 'LONG'
MAX_RESULT_SIZE_KB = 512000
DOC = 'Run module CtsSecurityTestCases, CtsSelinuxTargetSdk25TestCases, CtsSelinuxTargetSdk27TestCases, CtsSelinuxTargetSdkCurrentTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'

def run_TS(machine):
    host_list = [hosts.create_host(machine)]
    job.run_test(
        'cheets_CTS_P',
        hosts=host_list,
        iterations=1,
        max_retry=9,
        tag='9.0_r13.arm.all.CtsSecurityTestCases_-_CtsSelinuxTargetSdkCurrentTestCases',
        test_name='cheets_CTS_P.9.0_r13.arm.all.CtsSecurityTestCases_-_CtsSelinuxTargetSdkCurrentTestCases',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsSecurityTestCases', '--include-filter', 'CtsSelinuxTargetSdk25TestCases', '--include-filter', 'CtsSelinuxTargetSdk27TestCases', '--include-filter', 'CtsSelinuxTargetSdkCurrentTestCases', '--logcat-on-failure', '--dynamic-config-url='],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}', '--dynamic-config-url='],
        target_module='all.CtsSecurityTestCases_-_CtsSelinuxTargetSdkCurrentTestCases',
        target_plan=None,
        bundle='arm',
        uri='gs://chromeos-arc-images/cts/bundle/P/android-cts-9.0_r13-linux_x86-arm.zip',
        timeout=14400)

parallel_simple(run_TS, machines)
