# 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, suite:cts'
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-7104232-linux_x86-x86.zip',
        timeout=360)

parallel_simple(run_TS, machines)
