1# Copyright 2018 The Chromium OS Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5from autotest_lib.client.common_lib import utils 6 7AUTHOR = 'Chromium OS team' 8NAME = 'tast.informational' 9TIME = 'MEDIUM' 10TEST_TYPE = 'Server' 11DEPENDENCIES = 'servo_state:WORKING' 12ATTRIBUTES = 'suite:bvt-tast-informational' 13MAX_RESULT_SIZE_KB = 1024 * 1024 14PY_VERSION = 3 15JOB_RETRIES = 0 # Do not retry informational tests. 16 17# tast.py uses binaries installed from autotest_server_package.tar.bz2. 18REQUIRE_SSP = True 19 20DOC = ''' 21Run the Tast informational test suite. 22 23Tast is an integration-testing framework analagous to the test-running portion 24of Autotest. See https://chromium.googlesource.com/chromiumos/platform/tast/ for 25more information. 26 27This test runs non-Chrome-dependent and non-Android-dependent Tast-based 28informational tests against a remote DUT. It only reports failure if the tast 29process itself (rather than individual Tast tests) fails. 30 31Tast tests that soft-clear the TPM require encstateful to be in a reasonable 32state beforehand. This test clears the TPM and reboots the remote DUT before 33running the Tast tests, in case the encstateful encryption key is messed up 34before this test. 35 36See http://go/tast-failures for information about investigating failures. 37''' 38 39args_dict = utils.args_to_dict(args) 40assert 'servo_state:WORKING' in DEPENDENCIES 41servo_args = hosts.CrosHost.get_servo_arguments(args_dict) 42 43def run(machine): 44 job.run_test('tast', 45 host=hosts.create_host(machine, servo_args=servo_args), 46 test_exprs=['(' 47 '"group:mainline" && ' 48 'informational && ' 49 '!"name:crostini.*" && ' 50 '!"dep:plugin_vm" && ' 51 '!"dep:chrome" && ' 52 '!"dep:android*"' 53 ')'], 54 ignore_test_failures=True, 55 max_run_sec=3*60*60, 56 command_args=args, 57 clear_tpm=True) 58 59parallel_simple(run, machines) 60