# 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-experimental-0'
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_experimental_0'

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

DOC = '''
Run the CUJ Experimental test suite cuj_experimental_0.

This test may only be run on a selected subset of models.

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)'],
                 ignore_test_failures=True,
                 max_run_sec=3*60*60,  # 3 hours
                 totalshards=13,
                 shardindex=0,
                 command_args=args)
parallel_simple(run, machines)
