# 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.bvt'
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:bvt-perbuild'

# The tast executable and server test bundle are currently installed via prod
# pushes rather than SSP, but leaving REQUIRE_SSP enabled at least makes it
# possible to test changes to the tast server test via tryjobs and to deploy
# changes to it without waiting for prod pushes.

DOC = '''
Run the Tast BVT 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 Tast-based BVT tests against a remote DUT and reports failure if
any tests (that haven't been marked flaky) fail.
'''

def run(machine):
    job.run_test('tast',
                 host=hosts.create_host(machine),
                 test_exprs=['(bvt)'])

parallel_simple(run, machines)
