# 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 is not auto-generated. Don't delete it.

AUTHOR = 'ARC++ Team'
NAME = 'cheets_CTS_P.x86.waivers-collect-tests-only'
ATTRIBUTES = 'suite:cts_P'
DEPENDENCIES = 'arc, cts_abi_x86'
JOB_RETRIES = 1
TEST_TYPE = 'server'
TIME = 'MEDIUM'
MAX_RESULT_SIZE_KB = 1024000
PRIORITY = 70
DOC = 'Run waived tests of the Android Compatibility Test Suite (CTS) using x86 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=0,
        tag='x86.waivers-collect-tests-only',
        test_name='cheets_CTS_P.x86.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',
        load_waivers=False,
        bundle='x86',
        retry_manual_tests=True,
        warn_on_test_retry=False,
        uri='gs://chromeos-partner-gts/android-cts-6369187-linux_x86-x86.zip',
        timeout=360)

parallel_simple(run_TS, machines)
