# Copyright 2022 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
AUTHOR = 'ChromeOS Graphics Team (chromeos-gfx@google.com)'
NAME = 'tast.graphics-satlab-vc-borealis-trace-2'
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:graphics_satlab_vc'

METADATA = {
    "contacts": [
        "chromeos-gfx@google.com"
    ],
    "bug_component": "b:885255",
    "criteria": "Test suite should run regularly"
}

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

DOC = '''
This suite is used to run trace_replay tests against graphics vc satlab.
'''

def run(machine):
    job.run_test('tast',
                 host=hosts.create_host(machine),
                 # This includes borealis.TraceReplay.* and borealis.TraceReplayProton.* minus the problematic graphics_weekly traces.
                 test_exprs=['("group:graphics" && !graphics_weekly && graphics_trace && graphics_av_analysis)'],
                 ignore_test_failures=True,
                 # 3 means reboot at start and between every graphics tests.
                 varslist=["graphics.rebootLevel=3"],
                 totalshards=4,
                 shardindex=2,
                 max_run_sec=21600,  # 6 hours.
                 command_args=args)
parallel_simple(run, machines)
