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

# This file is not auto-generated. Don't delete it.

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

def run_TS(machine):
    host_list = [hosts.create_host(machine)]
    job.run_test(
        'cheets_CTS_R',
        hosts=host_list,
        iterations=1,
        max_retry=0,
        tag='arm.waivers-collect-tests-only',
        test_name='cheets_CTS_R.arm.waivers-collect-tests-only',
        run_template=['run', 'commandAndExit', 'collect-tests-only', '--subplan', 'waivers', '--disable-reboot', '--module-arg', 'CtsMediaTestCases:skip-media-download:true', '--module-arg', 'CtsMediaStressTestCases:skip-media-download:true', '--module-arg', 'CtsMediaBitstreamsTestCases:skip-media-download:true'],
        retry_template=None,
        target_module=None,
        target_plan='waivers',
        bundle='arm',
        retry_manual_tests=True,
        warn_on_test_retry=False,
        uri='DEV_MOBLAB',
        timeout=360)

parallel_simple(run_TS, machines)
