# Copyright 2016 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.

# TODO Integrate these changes back into cts_N as soon as partners have a
# chance to configure their DUT's correctly and documentation is complete.

AUTHOR = 'ARC++ Team'
NAME = 'cheets_CTS_N.arm.CtsMediaTestCasesPreconditions'
ATTRIBUTES = 'suite:cts_N_Pre'
DEPENDENCIES = 'arc, noloopback'
JOB_RETRIES = 2
TEST_TYPE = 'server'
TIME = 'LENGTHY'

DOC = ('Run module CtsMediaTestCases of the '
       'Android 7.1_r6 Compatibility Test Suite (CTS), build 4009365,'
       'using arm ABI in the ARC++ container.')

def run_CTS(machine):
    host = hosts.create_host(machine)
    job.run_test(
        'cheets_CTS_N',
        host=host,
        iterations=1,
        max_retry=3,
        needs_push_media=False,
        tag='CtsMediaTestCases',
        target_module='CtsMediaTestCases',
        bundle='arm',
        timeout=21600)

parallel_simple(run_CTS, machines)
