# 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.CtsMultiUser'
ATTRIBUTES = 'suite:arc-cts, suite:vmtest-informational1'
DEPENDENCIES = 'arc, cts_abi_x86'
JOB_RETRIES = 1
TEST_TYPE = 'server'
TIME = 'MEDIUM'
MAX_RESULT_SIZE_KB = 307200
DOC = 'Run module CtsMultiUserHostTestCases, CtsMultiUserTestCases 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,
        needs_push_media=False,
        tag='7.1_r28.x86.CtsMultiUser',
        test_name='cheets_CTS_N.7.1_r28.x86.CtsMultiUser',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsMultiUserHostTestCases', '--include-filter', 'CtsMultiUserTestCases', '--disable-reboot', '--logcat-on-failure', '--skip-device-info'],
        retry_template=['run', 'commandAndExit', 'cts', '--disable-reboot', '--skip-device-info', '--retry', '{session_id}'],
        target_module='CtsMultiUser',
        target_plan=None,
        bundle='x86',
        uri='gs://chromeos-arc-images/cts/bundle/N/android-cts-7.1_r28-linux_x86-x86.zip',
        timeout=5400)

parallel_simple(run_CTS, machines)
