# 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_VTS_R.11_r2.arm64.binderDriverInterfaceTest'
ATTRIBUTES = 'suite:arc-cts-r'
DEPENDENCIES = 'arc, cts_abi_arm'
JOB_RETRIES = 1
TEST_TYPE = 'server'
TIME = 'MEDIUM'
MAX_RESULT_SIZE_KB = 512000
DOC = 'Run module binderDriverInterfaceTest, binderDriverInterfaceTest_IPC_32 of the Vendor Test Suite (VTS) using arm64 ABI in the ARC++ container.'

def run_TS(machine):
    host_list = [hosts.create_host(machine)]
    job.run_test(
        'cheets_VTS_R',
        hosts=host_list,
        iterations=1,
        tag='11_r2.arm64.binderDriverInterfaceTest',
        test_name='cheets_VTS_R.11_r2.arm64.binderDriverInterfaceTest',
        run_template=['run', 'commandAndExit', 'vts', '--include-filter', 'binderDriverInterfaceTest', '--include-filter', 'binderDriverInterfaceTest_IPC_32', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='binderDriverInterfaceTest',
        target_plan=None,
        bundle='arm64',
        uri='LATEST',
        use_jdk9=True,
        timeout=5400)

parallel_simple(run_TS, machines)
