# 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.informational'
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:bvt-tast-informational'
MAX_RESULT_SIZE_KB = 50 * 1024

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

DOC = '''
Run the Tast informational 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
informational tests against a remote DUT. It only reports failure if the tast
process itself (rather than individual Tast tests) fails.

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=True, command_args=args)

parallel_simple(run, machines)
