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

AUTHOR = 'Chrome OS Team'
NAME = 'tast.pvs-graphics'
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:pvs-graphics'
MAX_RESULT_SIZE_KB = 1024 * 1024
PY_VERSION = 3

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

DOC = '''
This test suite is part of the Platform Validation Suite (go/cros-pvs)
and includes a collection of tast.gaphics tests that require no
special hardware to run.
'''
def run(machine):
    job.run_test('tast',
                 host=hosts.create_host(machine),
                 test_exprs=['tast.graphics.Connector',
                            'tast.graphics.DEQP',
                            'tast.graphics.FPS',
                            'tast.graphics.GLBench.hasty',
                            'tast.graphics.ScreenshotCLI',
                            'tast.graphics.ScreenshotChrome',
                            'tast.graphics.Smoke.chrome',
                            'tast.graphics.Smoke.platform'],
                 ignore_test_failures=False, max_run_sec=3600,
                 command_args=args,
                 clear_tmp=True)
parallel_simple(run, machines)
