xref: /aosp_15_r20/external/autotest/server/cros/tradefed/generate_controlfiles_CTS_Instant.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1#!/usr/bin/env python3
2# Lint as: python2, python3
3# Copyright 2016 The Chromium OS Authors. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7import collections
8
9from generate_controlfiles_common import main
10
11
12_ALL = 'all'
13
14CONFIG = {}
15
16CONFIG['TEST_NAME'] = 'cheets_CTS_Instant'
17CONFIG['DOC_TITLE'] = \
18    'Android Compatibility Test Suite for Instant Apps (CTS Instant)'
19CONFIG['MOBLAB_SUITE_NAME'] = 'suite:cts_P, suite:cts'
20CONFIG['COPYRIGHT_YEAR'] = 2018
21CONFIG['AUTHKEY'] = ''
22
23CONFIG['LARGE_MAX_RESULT_SIZE'] = 1000 * 1024
24CONFIG['NORMAL_MAX_RESULT_SIZE'] = 500 * 1024
25
26CONFIG['TRADEFED_CTS_COMMAND'] = 'cts-instant'
27CONFIG['TRADEFED_RETRY_COMMAND'] = 'retry'
28CONFIG['TRADEFED_DISABLE_REBOOT'] = False
29CONFIG['TRADEFED_DISABLE_REBOOT_ON_COLLECTION'] = True
30CONFIG['TRADEFED_MAY_SKIP_DEVICE_INFO'] = False
31CONFIG['TRADEFED_EXECUTABLE_PATH'] = \
32    'android-cts_instant/tools/cts-instant-tradefed'
33CONFIG['TRADEFED_IGNORE_BUSINESS_LOGIC_FAILURE'] = False
34
35CONFIG['INTERNAL_SUITE_NAMES'] = ['suite:arc-cts']
36CONFIG['QUAL_SUITE_NAMES'] = ['suite:arc-cts-qual']
37
38# CTS Instant is relatively small (= shorter turnaround time), and very
39# unlikely to fail alone (= regression almost always caught by the
40# corresponding CTS module.) For now we don't generate this type of control
41# files.
42CONFIG['CONTROLFILE_TEST_FUNCTION_NAME'] = 'run_TS'
43CONFIG['CONTROLFILE_WRITE_SIMPLE_QUAL_AND_REGRESS'] = True
44CONFIG['CONTROLFILE_WRITE_CAMERA'] = False
45CONFIG['CONTROLFILE_WRITE_EXTRA'] = False
46
47# The dashboard suppresses upload to APFE for GS directories (based on autotest
48# tag) that contain 'tradefed-run-collect-tests'. b/119640440
49# Do not change the name/tag without adjusting the dashboard.
50_COLLECT = 'tradefed-run-collect-tests-only-internal'
51_PUBLIC_COLLECT = 'tradefed-run-collect-tests-only'
52
53# Unlike regular CTS we have to target the primary ABI only.
54CONFIG['LAB_DEPENDENCY'] = {
55    'x86': ['cts_cpu_x86'],
56    'arm': ['cts_cpu_arm']
57}
58
59CONFIG['CTS_JOB_RETRIES_IN_PUBLIC'] = 1
60CONFIG['CTS_QUAL_RETRIES'] = 9
61CONFIG['CTS_MAX_RETRIES'] = {}
62
63# TODO(ihf): Update timeouts once P is more stable.
64# Timeout in hours.
65CONFIG['CTS_TIMEOUT_DEFAULT'] = 1.0
66CONFIG['CTS_TIMEOUT'] = {
67    _ALL: 5.0,
68    _COLLECT: 2.0,
69    _PUBLIC_COLLECT: 2.0,
70    'CtsFileSystemTestCases': 2.5,
71}
72
73# Any test that runs as part as blocking BVT needs to be stable and fast. For
74# this reason we enforce a tight timeout on these modules/jobs.
75# Timeout in hours. (0.1h = 6 minutes)
76CONFIG['BVT_TIMEOUT'] = 0.1
77
78CONFIG['QUAL_TIMEOUT'] = 5
79
80# Split tests so that large and flaky tests are distributed evenly.
81CONFIG['QUAL_BOOKMARKS'] = [
82        'A',  # A bookend to simplify partition algorithm.
83        # CtsAccessibility, CtsAutoFill
84        'CtsBackgroundRestrictionsTestCases',
85        # CtsMedia, CtsPrint
86        'CtsSampleDeviceTestCases',
87        # CtsView, CtsWidget
88        'zzzzz'  # A bookend to simplify algorithm.
89]
90
91CONFIG['SMOKE'] = [
92    # TODO(b/113641546): add to CQ/PFQ when it's ready.
93    # 'CtsAccountManagerTestCases',
94]
95
96CONFIG['BVT_ARC'] = [
97    # TODO(b/113641546): add to CQ/PFQ when it's ready.
98    # 'CtsPermission2TestCases',
99]
100
101CONFIG['BVT_PERBUILD'] = [
102    'CtsAccountManagerTestCases',
103    'CtsPermission2TestCases',
104    'CtsUiAutomationTestCases',
105    'CtsUsbTests',
106]
107
108CONFIG['NEEDS_POWER_CYCLE'] = [
109]
110
111CONFIG['HARDWARE_DEPENDENT_MODULES'] = [
112]
113
114# The suite is divided based on the run-time hint in the *.config file.
115CONFIG['VMTEST_INFO_SUITES'] = collections.OrderedDict()
116
117# Modules that are known to download and/or push media file assets.
118CONFIG['MEDIA_MODULES'] = []
119CONFIG['NEEDS_PUSH_MEDIA'] = []
120
121CONFIG['ENABLE_DEFAULT_APPS'] = []
122
123# Run `eject` for (and only for) each device with RM=1 in lsblk output.
124_EJECT_REMOVABLE_DISK_COMMAND = (
125    "\'lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject\'")
126
127# Preconditions applicable to public and internal tests.
128CONFIG['PRECONDITION'] = {}
129CONFIG['LOGIN_PRECONDITION'] = {
130    'CtsAppSecurityHostTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
131    'CtsJobSchedulerTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
132    'CtsOsTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
133    'CtsProviderTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
134    _ALL: [_EJECT_REMOVABLE_DISK_COMMAND],
135}
136
137# Preconditions applicable to public tests.
138CONFIG['PUBLIC_PRECONDITION'] = {}
139
140CONFIG['PUBLIC_DEPENDENCIES'] = {
141    'CtsCameraTestCases': ['lighting'],
142    'CtsMediaTestCases': ['noloopback'],
143}
144
145# This information is changed based on regular analysis of the failure rate on
146# partner moblabs.
147CONFIG['PUBLIC_MODULE_RETRY_COUNT'] = {
148    'CtsNetTestCases': 10,
149    'CtsSecurityHostTestCases': 10,
150    'CtsUsageStatsTestCases': 10,
151    'CtsFileSystemTestCases': 10,
152    'CtsBluetoothTestCases': 10,
153    _PUBLIC_COLLECT: 0,
154}
155
156CONFIG['PUBLIC_OVERRIDE_TEST_PRIORITY'] = {
157    _PUBLIC_COLLECT: 70,
158}
159
160# This information is changed based on regular analysis of the job run time on
161# partner moblabs.
162
163CONFIG['OVERRIDE_TEST_LENGTH'] = {
164    'CtsDeqpTestCases': 4,  # LONG
165    'CtsMediaTestCases': 4,
166    'CtsMediaStressTestCases': 4,
167    'CtsSecurityTestCases': 4,
168    'CtsCameraTestCases': 4,
169    _ALL: 4,
170    # Even though collect tests doesn't run very long, it must be the very first
171    # job executed inside of the suite. Hence it is the only 'LENGTHY' test.
172    _COLLECT: 5,  # LENGTHY
173}
174
175CONFIG['DISABLE_LOGCAT_ON_FAILURE'] = set()
176CONFIG['EXTRA_MODULES'] = {}
177CONFIG['PUBLIC_EXTRA_MODULES'] = {}
178CONFIG['EXTRA_SUBMODULE_OVERRIDE'] = {}
179
180CONFIG['EXTRA_COMMANDLINE'] = {}
181
182CONFIG['EXTRA_ATTRIBUTES'] = {
183    'tradefed-run-collect-tests-only-internal': ['suite:arc-cts'],
184}
185
186CONFIG['EXTRA_ARTIFACTS'] = {}
187
188CONFIG['PREREQUISITES'] = {}
189
190if __name__ == '__main__':
191    main(CONFIG)
192