# Copyright 2021 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

AUTHOR = 'ChromeOS Team'
NAME = 'tast.pvs-tast-cq'
METADATA = {
    'contacts': ['tauto-core@google.com'],
    'bug_component': 'b:1034523', # ChromeOS > Test > Harness > Tauto
    'criteria': 'Tauto wrapper for specified tast tests',
}
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.
                             '!"name:hwsec.AttestationNoExternalServer" && ' # b/217752622
                             '!"name:apps.LaunchHelpApp.clamshell_logged_in_stable" && ' #b/218705871
                             '!"name:apps.LaunchHelpApp.clamshell_oobe_stable" && ' #b/218705871
                             '!"name:apps.LaunchHelpApp.tablet_logged_in_stable" && ' #b/218705871
                             '!"name:apps.LaunchHelpApp.tablet_oobe_stable" && ' #b/218705871
                             '!"name:arc.Drivefs" && ' #b/218705871
                             '!"name:arc.Drivefs.vm" && ' #b/218705871
                             '!"name:arc.Optin" && ' #b/218705871
                             '!"name:arc.Optin.vm" && ' #b/218705871
                             '!"name:arc.OptinNetworkError" && ' #b/218705871
                             '!"name:example.SecretVars" && ' #b/218705871
                             '!"name:filemanager.DrivefsUI" && ' #b/218705871
                             '!"name:inputs.VirtualKeyboardOOBE" && ' #b/218705871
                             '!"name:login.AuthError" && ' #b/218705871
                             '!"name:login.ChangePassword" && ' #b/218705871
                             '!"name:login.ChromeGAIA" && ' #b/218705871
                             '!"name:login.ExistingUser" && ' #b/218705871
                             '!"name:login.Offline" && ' #b/218705871
                             '!"name:login.ProfileExtension" && ' #b/218705871
                             '!"name:platform.Drivefs" && ' #b/218705871
                             '!"name:quicksettings.SignInScreen.audio" && ' #b/218705871
                             '!"name:quicksettings.SignInScreen.battery" && ' #b/218705871
                             '!"name:quicksettings.SignInScreen.noaudio_nobattery"' #b/218705871
                             ')'],
                 ignore_test_failures=False, max_run_sec=10800,
                 command_args=args,
		 clear_tmp=True,
         retries=2)
parallel_simple(run, machines)
