# Copyright 2018 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 = 'Chromium OS team'
NAME = 'tast.critical-system'
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
# System tests can't be broken by Android or Chrome changes, so these tests
# don't run in the PFQs.
ATTRIBUTES = 'suite:bvt-tast-cq'
MAX_RESULT_SIZE_KB = 50 * 1024

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

DOC = '''
Run the Tast must-pass system test suite.

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.

This test runs non-Chrome-dependent and non-Android-dependent Tast-based tests
that are required to pass against a remote DUT. It fails if any individual Tast
tests fail.

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

def run(machine):
    job.run_test('tast',
                 host=hosts.create_host(machine),
                 test_exprs=['(!disabled && !"group:*" && !informational && '
                             '!"dep:android" && !"dep:android_all" && '
                             '!"dep:chrome")'],
                 ignore_test_failures=False, max_run_sec=3600,
                 command_args=args)

parallel_simple(run, machines)
