xref: /aosp_15_r20/external/autotest/autotest_lib/test_suites/control.faft_bios (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1# Copyright (c) 2012 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
5AUTHOR = "ChromeOS Team"
6NAME = "faft_bios"
7PURPOSE = "Test hard-to-automate firmware scenarios."
8
9TIME = "SHORT"
10TEST_CATEGORY = "General"
11TEST_CLASS = "suite"
12TEST_TYPE = "Server"
13
14DOC = """
15
16This is a faft (FULLY AUTOMATED FIRMWARE TEST) suite.
17The tests verfiy that valid boot scenarios progress properly (with state
18progress checks) and that error scenarios (corrupted blobs) are caught as
19expected. Some of these test failures should close the tree as they may imply
20that the system is unbootable and further tests will only become hung or
21blocked. Other tests verify all of the features (some of them security
22related) are functioning.
23
24@param build: The name of the image to test.
25              Ex: x86-mario-release/R17-1412.33.0-a1-b29
26@param board: The board to test on.  Ex: x86-mario
27@param pool: The pool of machines to utilize for scheduling. If pool=None
28             board is used.
29@param check_hosts: require appropriate live hosts to exist in the lab.
30@param SKIP_IMAGE: (optional) If present and True, don't re-image devices.
31"""
32
33import common
34from autotest_lib.server.cros.dynamic_suite import dynamic_suite
35
36# Values specified in this bug template will override default values when
37# filing bugs on tests that are a part of this suite. If left unspecified
38# the bug filer will fallback to it's defaults.
39_BUG_TEMPLATE = {
40    'labels': ['FW-labblocker', 'Restrict-View-Google'],
41    'owner': '',
42    'status': None,
43    'summary': None,
44    'title': None,
45}
46
47def predicate(test):
48  if not hasattr(test, 'suite') or not hasattr(test, 'name'):
49    return False
50  if not NAME in test.suite.split(','):
51    return False
52  name = test.name
53  if 'tests' in args_dict and name not in args_dict['tests']:
54    return False
55  return True
56
57args_dict['file_bugs'] = False
58args_dict['name'] = 'faft_bios'
59args_dict['job'] = job
60args_dict['add_experimental'] = True
61args_dict['bug_template'] = _BUG_TEMPLATE
62args_dict['predicate'] = predicate
63
64dynamic_suite.reimage_and_run(**args_dict)
65