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

AUTHOR = 'ChromiumOS Display team'
NAME = 'tast.graphics-igt-perbuild'
METADATA = {
    'contacts': ['tauto-core@google.com'],
    'bug_component': 'b:1034523', # ChromeOS > Test > Harness > Tauto
    'criteria': 'Tauto wrapper for specified tast tests',
}
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:graphics_per-build'
MAX_RESULT_SIZE_KB = 1024 * 1024
PY_VERSION = 3

# tast.py uses binaries installed from autotest_server_package.tar.bz2.
REQUIRE_SSP = True

DOC = '''
Run the Tast graphics-igt test suite.

Tast is an integration-testing framework analagous to the test-running portion
of Autotest. See https://chromium.googlesource.com/chromiumos/platform/tast/ for
more information.

This test runs igt-gpu-tools against a remote DUT.
Separate control files are needed because Tast doesn't isolate tests from each
other and a clean device state is needed by rebooting before running a
different graphics suite.

See http://go/tast-failures for information about investigating failures.
'''

def run(machine):
    host=hosts.create_host(machine)
    job.run_test('tast',
                 host=host,
                 test_exprs=['("group:graphics" && graphics_perbuild && graphics_igt)'],
                 ignore_test_failures=True, max_run_sec=10500,
                 command_args=args)

parallel_simple(run, machines)
