# Copyright 2023 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 SW Performance Team'
NAME = 'tast.cuj-7'
METADATA = {
    "contacts": ["cros-sw-perf@google.com"],
    "bug_component": 'b:1045832',  # ChromeOS > Software > Performance > TPS
    'criteria': 'Tauto wrapper for specified tast tests',
}
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:cuj_7'

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

DOC = "Run the CUJ test suite cuj_7. This suite is used to run CUJ tast tests against a remote DUT."

def run(machine):
    job.run_test('tast',
                 host=hosts.create_host(machine),
                 test_exprs=['("group:cuj" && !cuj_experimental && !cuj_weekly && !cuj_loginperf)'],
                 ignore_test_failures=True,
                 max_run_sec=(3*60-15)*60,  # 2h45m
                 totalshards=13,
                 shardindex=7,
                 command_args=args)
parallel_simple(run, machines)
