# Copyright 2020 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# __GENERATED_BY_GENERATE_CONTROLFILES_PY__:DEV

# This file has been automatically generated. Do not edit!

AUTHOR = 'n/a'
NAME = 'cheets_CTS_R.internal.arm.CtsBlobStore'
METADATA = {
    "contacts": ["arc-cts-eng@google.com"],
    "bug_component": "b:183644",
    "criteria": "A part of Android CTS",
}
ATTRIBUTES = 'suite:arc-cts, suite:arc-cts-arm-1, suite:arc-cts-vm'
DEPENDENCIES = 'arc'
HW_DEPS = ['android-container-rvc','android-vm-rvc']
JOB_RETRIES = 1
TEST_TYPE = 'server'
TIME = 'MEDIUM'
MAX_RESULT_SIZE_KB = 512000
DOC = 'n/a'

def run_TS(machine):
    host_list = [hosts.create_host(machine)]
    job.run_test(
        'cheets_CTS_R',
        hosts=host_list,
        iterations=1,
        tag='internal.arm.CtsBlobStore',
        test_name='cheets_CTS_R.internal.arm.CtsBlobStore',
        run_template=['run', 'commandAndExit', 'cts', '--include-filter', 'CtsBlobStoreHostTestCases', '--include-filter', 'CtsBlobStoreHostTestCases[secondary_user]', '--include-filter', 'CtsBlobStoreHostTestHelper', '--include-filter', 'CtsBlobStoreHostTestHelper[secondary_user]', '--include-filter', 'CtsBlobStoreTestCases', '--include-filter', 'CtsBlobStoreTestCases[secondary_user]', '--include-filter', 'CtsBlobStoreTestHelper', '--include-filter', 'CtsBlobStoreTestHelperDiffSig', '--include-filter', 'CtsBlobStoreTestHelperDiffSig2', '--include-filter', 'CtsBlobStoreTestHelperDiffSig2[secondary_user]', '--include-filter', 'CtsBlobStoreTestHelperDiffSig[secondary_user]', '--include-filter', 'CtsBlobStoreTestHelper[secondary_user]', '--logcat-on-failure'],
        retry_template=['run', 'commandAndExit', 'retry', '--retry', '{session_id}'],
        target_module='CtsBlobStore',
        target_plan=None,
        bundle='arm',
        uri='DEV',
        timeout=23400)

parallel_simple(run_TS, machines)
