# 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 = 'The ChromiumOS Authors'
NAME = 'tast.input-tools-shard-1'
TIME = 'LONG'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:input-tools'
MAX_RESULT_SIZE_KB = 1024 * 1024
PY_VERSION = 3

METADATA = {
    'contacts': ['essential-inputs-gardener-oncall@google.com','alvinjia@google.com'],
    'bug_component': 'b:95887',
    'criteria': 'Tauto wrapper for specified tast tests',
    'hw_agnostic': False,
}

DOC = '''
Run the Tast tests which run in suite:input-tools.

"group:input-tools" indicates tests that runs on CrOS Essential Inputs.

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.

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

def run(machine):
    job.run_test('tast',
                 host=hosts.create_host(machine),
                 test_exprs=['('
                             '"group:input-tools" && '
                             '!informational'
                             ')'],
                 ignore_test_failures=False, max_run_sec=10800,
                 command_args=args,
                 totalshards=2,
                 shardindex=1,
                 retries=2)

parallel_simple(run, machines)
