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