xref: /aosp_15_r20/external/autotest/autotest_lib/test_suites/control.cts (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1*9c5db199SXin Li# Copyright 2018 The Chromium OS Authors. All rights reserved.
2*9c5db199SXin Li# Use of this source code is governed by a BSD-style license that can be
3*9c5db199SXin Li# found in the LICENSE file.
4*9c5db199SXin Li
5*9c5db199SXin LiAUTHOR = "[email protected]"
6*9c5db199SXin LiNAME = "cts"
7*9c5db199SXin LiPURPOSE = "Special suite for final CTS qualification of ARC++ on stable."
8*9c5db199SXin LiCRITERIA = "All tests with SUITE=cts must pass."
9*9c5db199SXin Li
10*9c5db199SXin LiTIME = "LONG"
11*9c5db199SXin LiTEST_CATEGORY = "General"
12*9c5db199SXin LiTEST_CLASS = "suite"
13*9c5db199SXin LiTEST_TYPE = "Server"
14*9c5db199SXin Li
15*9c5db199SXin LiDOC = """
16*9c5db199SXin LiChromeOS ARC++ tests.
17*9c5db199SXin Li"""
18*9c5db199SXin Li
19*9c5db199SXin Liimport common
20*9c5db199SXin Lifrom autotest_lib.server.cros.dynamic_suite import dynamic_suite
21*9c5db199SXin Li
22*9c5db199SXin Li
23*9c5db199SXin Lidef predicate(test):
24*9c5db199SXin Li  if not hasattr(test, 'suite') or not hasattr(test, 'name'):
25*9c5db199SXin Li    return False
26*9c5db199SXin Li  if not NAME in test.suite.split(','):
27*9c5db199SXin Li    return False
28*9c5db199SXin Li  # Strip off the cheets_CTS. from the test name before comparing to args
29*9c5db199SXin Li  name = test.name[test.name.find('.') + 1:]
30*9c5db199SXin Li  # Typical examples:
31*9c5db199SXin Li  #   name = 'arm.CtsDeqpTestCases.64'
32*9c5db199SXin Li  #     or
33*9c5db199SXin Li  #   name = 'x86.CtsDeqpTestCases.32'
34*9c5db199SXin Li  # and
35*9c5db199SXin Li  #   args_dict['tests'] = ['arm.CtsDeqpTestCases', 'x86.CtsDeqpTestCases']
36*9c5db199SXin Li  # So, we want to includes test with names being subpart of any arg.
37*9c5db199SXin Li  if 'tests' in args_dict and all(arg not in name for arg in args_dict['tests']):
38*9c5db199SXin Li    return False
39*9c5db199SXin Li  return True
40*9c5db199SXin Li
41*9c5db199SXin Liargs_dict['name'] = NAME
42*9c5db199SXin Liargs_dict['job'] = job
43*9c5db199SXin Liargs_dict['file_bugs'] = False
44*9c5db199SXin Liargs_dict['max_runtime_mins'] = 10080
45*9c5db199SXin Liargs_dict['timeout_mins'] = 10080
46*9c5db199SXin Liargs_dict['add_experimental'] = True
47*9c5db199SXin Liargs_dict['predicate'] = predicate
48*9c5db199SXin Lidynamic_suite.reimage_and_run(**args_dict)
49*9c5db199SXin Li
50