# Copyright 2021 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 = 'Chrome OS Team'
NAME = 'tast.pvs-tast-cq'
TIME = 'MEDIUM'
TEST_TYPE = 'Server'
ATTRIBUTES = 'suite:pvs-tast-cq'
MAX_RESULT_SIZE_KB = 1024 * 1024
PY_VERSION = 3

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

DOC = '''
This test suite is part of the Platform Validation Suite and contains all
critical (CQ-blocking) tast tests that can run on Moblab with no special
test bed requirements. It is intended to mirror the bvt-tast-cq test suite as
closely as possible.
For more info on PVS, please check out go/cros-pvs
For partner-facing docs, see https://chromeos.google.com/partner/dlm/docs/PVS/pvs_partner_documentation.html
'''
def run(machine):
    job.run_test('tast',
                 host=hosts.create_host(machine),
                 test_exprs=['('
                             '"group:mainline" && '
                             '!informational && '
                             '!"name:printer.AddBrotherPrinter" && '     # b/192458034
                             '!"name:printer.ResolutionBrother.*" && '   # b/192458034
                             '!"name:typec.Basic"' # typec.Basic requires a servo, which may not be available for PVS testing.
                             ')'],
                 ignore_test_failures=False, max_run_sec=3600,
                 command_args=args,
		 clear_tmp=True)
parallel_simple(run, machines)
