• 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
8
9CONFIG = {}
10
11CONFIG['TEST_NAME'] = 'cheets_CTS_P'
12CONFIG['DOC_TITLE'] = 'Android Compatibility Test Suite (CTS)'
13CONFIG['MOBLAB_SUITE_NAME'] = 'suite:cts_P, suite:cts'
14CONFIG['COPYRIGHT_YEAR'] = 2018
15CONFIG['AUTHKEY'] = ''
16
17# Both arm, x86 tests results normally is below 200MB.
18# 1000MB should be sufficient for CTS tests and dump logs for android-cts.
19CONFIG['LARGE_MAX_RESULT_SIZE'] = 1000 * 1024
20
21# Individual module normal produces less results than all modules, which is
22# ranging from 4MB to 50MB. 500MB should be sufficient to handle all the cases.
23CONFIG['NORMAL_MAX_RESULT_SIZE'] = 500 * 1024
24
25CONFIG['TRADEFED_CTS_COMMAND'] = 'cts'
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'] = 'android-cts/tools/cts-tradefed'
31CONFIG['TRADEFED_IGNORE_BUSINESS_LOGIC_FAILURE'] = False
32
33# module runs in suite:arc-cts on boards, and each module runs in
34# suite:arc-cts-unibuild on selected models.
35CONFIG['INTERNAL_SUITE_NAMES'] = ['suite:arc-cts', 'suite:arc-cts-unibuild']
36CONFIG['QUAL_SUITE_NAMES'] = ['suite:arc-cts-qual']
37
38CONFIG['CONTROLFILE_TEST_FUNCTION_NAME'] = 'run_TS'
39CONFIG['CONTROLFILE_WRITE_SIMPLE_QUAL_AND_REGRESS'] = False
40CONFIG['CONTROLFILE_WRITE_CAMERA'] = True
41CONFIG['CONTROLFILE_WRITE_EXTRA'] = True
42
43# The dashboard suppresses upload to APFE for GS directories (based on autotest
44# tag) that contain 'tradefed-run-collect-tests'. b/119640440
45# Do not change the name/tag without adjusting the dashboard.
46_COLLECT = 'tradefed-run-collect-tests-only-internal'
47_PUBLIC_COLLECT = 'tradefed-run-collect-tests-only'
48
49# Test module name for WM presubmit tests.
50_WM_PRESUBMIT = 'wm-presubmit'
51
52CONFIG['LAB_DEPENDENCY'] = {
53    'x86': ['cts_abi_x86']
54}
55
56CONFIG['CTS_JOB_RETRIES_IN_PUBLIC'] = 1
57CONFIG['CTS_QUAL_RETRIES'] = 9
58CONFIG['CTS_MAX_RETRIES'] = {
59    'CtsDeqpTestCases':         15,  # TODO(b/126787654)
60    'CtsGraphicsTestCases':      5,  # TODO(b/155056869)
61    'CtsSensorTestCases':       30,  # TODO(b/124528412)
62}
63
64# Timeout in hours.
65CONFIG['CTS_TIMEOUT_DEFAULT'] = 1.0
66CONFIG['CTS_TIMEOUT'] = {
67        'CtsActivityManagerDeviceTestCases': 2.0,
68        'CtsAppSecurityHostTestCases': 4.0,  # TODO(b/172409836)
69        'CtsAutoFillServiceTestCases': 6.0,  # TODO(b/145092442)
70        'CtsCameraTestCases': 2.0,  # TODO(b/150657700)
71        'CtsDeqpTestCases': 20.0,
72        'CtsDeqpTestCases.dEQP-EGL': 2.0,
73        'CtsDeqpTestCases.dEQP-GLES2': 2.0,
74        'CtsDeqpTestCases.dEQP-GLES3': 6.0,
75        'CtsDeqpTestCases.dEQP-GLES31': 6.0,
76        'CtsDeqpTestCases.dEQP-VK': 15.0,
77        'CtsFileSystemTestCases': 3.0,
78        'CtsIcuTestCases': 2.0,
79        'CtsLibcoreOjTestCases': 2.0,
80        'CtsMediaStressTestCases': 5.0,
81        'CtsMediaTestCases': 10.0,
82        'CtsPrintTestCases': 1.5,
83        'CtsSecurityTestCases': 2.0,
84        'CtsVideoTestCases': 1.5,
85        _COLLECT: 2.5,
86        _PUBLIC_COLLECT: 2.5,
87        _WM_PRESUBMIT: 0.2,
88}
89
90# Any test that runs as part as blocking BVT needs to be stable and fast. For
91# this reason we enforce a tight timeout on these modules/jobs.
92# Timeout in hours. (0.2h = 12 minutes)
93#
94# For the test content 5 minutes are more than enough, but when some component
95# (typically camera) is stuck, the CTS precondition step hits 5 minute abort.
96# Since this abort doesn't affect too much for the main CTS runs (with longer
97# timeouts), it's ok to let them go in. Bad state of camre should be caught by
98# camera tests, not by this general test harness health check for CTS.
99CONFIG['BVT_TIMEOUT'] = 0.2
100
101CONFIG['QUAL_BOOKMARKS'] = sorted([
102    'A',  # A bookend to simplify partition algorithm.
103    'CtsAccessibilityServiceTestCases',  # TODO(ihf) remove when b/121291711 fixed. This module causes problems. Put it into its own control file.
104    'CtsAccessibilityServiceTestCasesz',
105    'CtsActivityManagerDevice',  # Runs long enough. (3h)
106    'CtsActivityManagerDevicez',
107    'CtsDeqpTestCases',
108    'CtsDeqpTestCasesz',  # Put Deqp in one control file. Long enough, fairly stable.
109    'CtsFileSystemTestCases',  # Runs long enough. (3h)
110    'CtsFileSystemTestCasesz',
111    'CtsMediaBitstreamsTestCases',  # Put each Media module in its own control file. Long enough.
112    'CtsMediaHostTestCases',
113    'CtsMediaStressTestCases',
114    'CtsMediaTestCases',
115    'CtsMediaTestCasesz',
116    'CtsJvmti',
117    'CtsSecurityHostTestCases',  # TODO(ihf): remove when passing cleanly.
118    'CtsSecurityHostTestCasesz',
119    'CtsSensorTestCases',  # TODO(ihf): Remove when not needing 30 retries.
120    'CtsSensorTestCasesz',
121    'CtsViewTestCases',  # TODO(b/126741318): Fix performance regression and remove this.
122    'CtsViewTestCasesz',
123    'zzzzz'  # A bookend to simplify algorithm.
124])
125
126CONFIG['SMOKE'] = [
127    _WM_PRESUBMIT,
128]
129
130CONFIG['BVT_ARC'] = [
131    'CtsAccelerationTestCases',
132]
133
134CONFIG['BVT_PERBUILD'] = [
135    'CtsAccountManagerTestCases',
136    'CtsGraphicsTestCases',
137    'CtsJankDeviceTestCases',
138    'CtsOpenGLTestCases',
139    'CtsOpenGlPerf2TestCases',
140    'CtsPermission2TestCases',
141    'CtsSimpleperfTestCases',
142    'CtsSpeechTestCases',
143    'CtsTelecomTestCases',
144    'CtsTelephonyTestCases',
145    'CtsThemeDeviceTestCases',
146    'CtsTransitionTestCases',
147    'CtsTvTestCases',
148    'CtsUsbTests',
149    'CtsVoiceSettingsTestCases',
150]
151
152CONFIG['NEEDS_POWER_CYCLE'] = [
153    'CtsBluetoothTestCases',
154]
155
156CONFIG['HARDWARE_DEPENDENT_MODULES'] = [
157    'CtsSensorTestCases',
158    'CtsCameraTestCases',
159    'CtsBluetoothTestCases',
160]
161
162# The suite is divided based on the run-time hint in the *.config file.
163CONFIG['VMTEST_INFO_SUITES'] = collections.OrderedDict()
164# This is the default suite for all the modules that are not specified below.
165CONFIG['VMTEST_INFO_SUITES']['vmtest-informational1'] = []
166CONFIG['VMTEST_INFO_SUITES']['vmtest-informational2'] = [
167    'CtsMediaTestCases', 'CtsMediaStressTestCases', 'CtsHardwareTestCases'
168]
169CONFIG['VMTEST_INFO_SUITES']['vmtest-informational3'] = [
170    'CtsThemeHostTestCases', 'CtsHardwareTestCases', 'CtsLibcoreTestCases'
171]
172CONFIG['VMTEST_INFO_SUITES']['vmtest-informational4'] = ['']
173
174# Modules that are known to download and/or push media file assets.
175CONFIG['MEDIA_MODULES'] = [
176    'CtsMediaTestCases',
177    'CtsMediaStressTestCases',
178    'CtsMediaBitstreamsTestCases',
179]
180
181CONFIG['NEEDS_PUSH_MEDIA'] = CONFIG['MEDIA_MODULES'] + [
182    'CtsMediaTestCases.audio',
183]
184
185# See b/149889853. Non-media test basically does not require dynamic
186# config. To reduce the flakiness, let us suppress the config.
187CONFIG['NEEDS_DYNAMIC_CONFIG_ON_COLLECTION'] = False
188CONFIG['NEEDS_DYNAMIC_CONFIG'] = CONFIG['MEDIA_MODULES'] + [
189    'CtsIntentSignatureTestCases'
190]
191
192# Modules that are known to need the default apps of Chrome (eg. Files.app).
193CONFIG['ENABLE_DEFAULT_APPS'] = [
194    'CtsAppSecurityHostTestCases',
195    'CtsContentTestCases',
196]
197
198# Run `eject` for (and only for) each device with RM=1 in lsblk output.
199_EJECT_REMOVABLE_DISK_COMMAND = (
200    "\'lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject\'")
201# Behave more like in the verififed mode.
202_SECURITY_PARANOID_COMMAND = (
203    "\'echo 3 > /proc/sys/kernel/perf_event_paranoid\'")
204# TODO(kinaba): Come up with a less hacky way to handle the situation.
205# {0} is replaced with the retry count. Writes either 1 (required by
206# CtsSimpleperfTestCases) or 3 (CtsSecurityHostTestCases).
207_ALTERNATING_PARANOID_COMMAND = (
208    "\'echo $(({0} % 2 * 2 + 1)) > /proc/sys/kernel/perf_event_paranoid\'")
209# Expose /proc/config.gz
210_CONFIG_MODULE_COMMAND = "\'modprobe configs\'"
211
212# TODO(b/126741318): Fix performance regression and remove this.
213_SLEEP_60_COMMAND = "\'sleep 60\'"
214
215# Preconditions applicable to public and internal tests.
216CONFIG['PRECONDITION'] = {
217    'CtsSecurityHostTestCases': [
218        _SECURITY_PARANOID_COMMAND, _CONFIG_MODULE_COMMAND
219    ],
220    # Tests are performance-sensitive, workaround to avoid CPU load on login.
221    # TODO(b/126741318): Fix performance regression and remove this.
222    'CtsViewTestCases': [_SLEEP_60_COMMAND],
223}
224CONFIG['LOGIN_PRECONDITION'] = {
225    'CtsAppSecurityHostTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
226    'CtsJobSchedulerTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
227    'CtsMediaTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
228    'CtsOsTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
229    'CtsProviderTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
230}
231
232_WIFI_CONNECT_COMMANDS = [
233    # These needs to be in order.
234    "'/usr/local/autotest/cros/scripts/wifi connect %s %s\' % (ssid, wifipass)",
235    "'/usr/local/autotest/cros/scripts/reorder-services-moblab.sh wifi'"
236]
237
238# Preconditions applicable to public tests.
239CONFIG['PUBLIC_PRECONDITION'] = {
240    'CtsSecurityHostTestCases': [
241        _SECURITY_PARANOID_COMMAND, _CONFIG_MODULE_COMMAND
242    ],
243    'CtsUsageStatsTestCases': _WIFI_CONNECT_COMMANDS,
244    'CtsNetTestCases': _WIFI_CONNECT_COMMANDS,
245    'CtsLibcoreTestCases': _WIFI_CONNECT_COMMANDS,
246}
247
248CONFIG['PUBLIC_DEPENDENCIES'] = {
249    'CtsCameraTestCases': ['lighting'],
250    'CtsMediaTestCases': ['noloopback'],
251}
252
253# This information is changed based on regular analysis of the failure rate on
254# partner moblabs.
255CONFIG['PUBLIC_MODULE_RETRY_COUNT'] = {
256    'CtsAccessibilityServiceTestCases':  12,
257    'CtsActivityManagerDeviceTestCases': 12,
258    'CtsBluetoothTestCases':             10,
259    'CtsDeqpTestCases':                  15,
260    'CtsFileSystemTestCases':            10,
261    'CtsGraphicsTestCases':              12,
262    'CtsIncidentHostTestCases':          12,
263    'CtsNetTestCases':                   10,
264    'CtsSecurityHostTestCases':          10,
265    'CtsSensorTestCases':                12,
266    'CtsUsageStatsTestCases':            10,
267    _PUBLIC_COLLECT: 0,
268}
269
270CONFIG['PUBLIC_OVERRIDE_TEST_PRIORITY'] = {
271    _PUBLIC_COLLECT: 70,
272    'CtsDeqpTestCases': 70,
273}
274
275# This information is changed based on regular analysis of the job run time on
276# partner moblabs.
277
278CONFIG['OVERRIDE_TEST_LENGTH'] = {
279    'CtsDeqpTestCases': 4,  # LONG
280    'CtsMediaTestCases': 4,
281    'CtsMediaStressTestCases': 4,
282    'CtsSecurityTestCases': 4,
283    'CtsCameraTestCases': 4,
284    # Even though collect tests doesn't run very long, it must be the very first
285    # job executed inside of the suite. Hence it is the only 'LENGTHY' test.
286    _COLLECT: 5,  # LENGTHY
287}
288
289# Enabling --logcat-on-failure can extend total run time significantly if
290# individual tests finish in the order of 10ms or less (b/118836700). Specify
291# modules here to not enable the flag.
292CONFIG['DISABLE_LOGCAT_ON_FAILURE'] = set([
293    'all',
294    'CtsDeqpTestCases',
295    'CtsDeqpTestCases.dEQP-EGL',
296    'CtsDeqpTestCases.dEQP-GLES2',
297    'CtsDeqpTestCases.dEQP-GLES3',
298    'CtsDeqpTestCases.dEQP-GLES31',
299    'CtsDeqpTestCases.dEQP-VK',
300    'CtsLibcoreTestCases',
301])
302
303CONFIG['EXTRA_MODULES'] = {
304    'CtsDeqpTestCases': {
305        'SUBMODULES': set([
306            'CtsDeqpTestCases.dEQP-EGL',
307            'CtsDeqpTestCases.dEQP-GLES2',
308            'CtsDeqpTestCases.dEQP-GLES3',
309            'CtsDeqpTestCases.dEQP-GLES31',
310            'CtsDeqpTestCases.dEQP-VK'
311        ]),
312        'SUITES': ['suite:arc-cts-deqp', 'suite:graphics_per-week'],
313    },
314    'CtsMediaTestCases': {
315        'SUBMODULES': set([
316            'CtsMediaTestCases.audio',
317        ]),
318        'SUITES': ['suite:arc-cts'],
319    },
320    _WM_PRESUBMIT: {
321        'SUBMODULES': set([_WM_PRESUBMIT]),
322        'SUITES': [],
323    },
324}
325
326# Moblab wants to shard dEQP really finely. This isn't needed anymore as it got
327# faster, but I guess better safe than sorry.
328CONFIG['PUBLIC_EXTRA_MODULES'] = {
329    'CtsDeqpTestCases' : [
330        'CtsDeqpTestCases.dEQP-EGL',
331        'CtsDeqpTestCases.dEQP-GLES2',
332        'CtsDeqpTestCases.dEQP-GLES3',
333        'CtsDeqpTestCases.dEQP-GLES31',
334        'CtsDeqpTestCases.dEQP-VK.api',
335        'CtsDeqpTestCases.dEQP-VK.binding_model',
336        'CtsDeqpTestCases.dEQP-VK.clipping',
337        'CtsDeqpTestCases.dEQP-VK.compute',
338        'CtsDeqpTestCases.dEQP-VK.device_group',
339        'CtsDeqpTestCases.dEQP-VK.draw',
340        'CtsDeqpTestCases.dEQP-VK.dynamic_state',
341        'CtsDeqpTestCases.dEQP-VK.fragment_operations',
342        'CtsDeqpTestCases.dEQP-VK.geometry',
343        'CtsDeqpTestCases.dEQP-VK.glsl',
344        'CtsDeqpTestCases.dEQP-VK.image',
345        'CtsDeqpTestCases.dEQP-VK.info',
346        'CtsDeqpTestCases.dEQP-VK.memory',
347        'CtsDeqpTestCases.dEQP-VK.multiview',
348        'CtsDeqpTestCases.dEQP-VK.pipeline',
349        'CtsDeqpTestCases.dEQP-VK.protected_memory',
350        'CtsDeqpTestCases.dEQP-VK.query_pool',
351        'CtsDeqpTestCases.dEQP-VK.rasterization',
352        'CtsDeqpTestCases.dEQP-VK.renderpass',
353        'CtsDeqpTestCases.dEQP-VK.renderpass2',
354        'CtsDeqpTestCases.dEQP-VK.robustness',
355        'CtsDeqpTestCases.dEQP-VK.sparse_resources',
356        'CtsDeqpTestCases.dEQP-VK.spirv_assembly',
357        'CtsDeqpTestCases.dEQP-VK.ssbo',
358        'CtsDeqpTestCases.dEQP-VK.subgroups',
359        'CtsDeqpTestCases.dEQP-VK.subgroups.b',
360        'CtsDeqpTestCases.dEQP-VK.subgroups.s',
361        'CtsDeqpTestCases.dEQP-VK.subgroups.vote',
362        'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic',
363        'CtsDeqpTestCases.dEQP-VK.subgroups.clustered',
364        'CtsDeqpTestCases.dEQP-VK.subgroups.quad',
365        'CtsDeqpTestCases.dEQP-VK.synchronization',
366        'CtsDeqpTestCases.dEQP-VK.tessellation',
367        'CtsDeqpTestCases.dEQP-VK.texture',
368        'CtsDeqpTestCases.dEQP-VK.ubo',
369        'CtsDeqpTestCases.dEQP-VK.wsi',
370        'CtsDeqpTestCases.dEQP-VK.ycbcr'
371    ]
372}
373# TODO(haddowk,kinaba): Hack for b/138622686. Clean up later.
374CONFIG['EXTRA_SUBMODULE_OVERRIDE'] = {
375    'x86': {
376         'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic': [
377             'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic.32',
378             'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic.64',
379         ]
380    }
381}
382
383CONFIG['EXTRA_COMMANDLINE'] = {
384    'CtsDeqpTestCases.dEQP-EGL': [
385        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
386        '--test', 'dEQP-EGL.*'
387    ],
388    'CtsDeqpTestCases.dEQP-GLES2': [
389        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
390        '--test', 'dEQP-GLES2.*'
391    ],
392    'CtsDeqpTestCases.dEQP-GLES3': [
393        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
394        '--test', 'dEQP-GLES3.*'
395    ],
396    'CtsDeqpTestCases.dEQP-GLES31': [
397        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
398        '--test', 'dEQP-GLES31.*'
399    ],
400    'CtsDeqpTestCases.dEQP-VK': [
401        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
402        '--test', 'dEQP-VK.*'
403    ],
404    'CtsDeqpTestCases.dEQP-VK.api': [
405        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
406        '--test', 'dEQP-VK.api.*'
407    ],
408    'CtsDeqpTestCases.dEQP-VK.binding_model': [
409        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
410        '--test', 'dEQP-VK.binding_model.*'
411    ],
412    'CtsDeqpTestCases.dEQP-VK.clipping': [
413        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
414        '--test', 'dEQP-VK.clipping.*'
415    ],
416    'CtsDeqpTestCases.dEQP-VK.compute': [
417        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
418        '--test', 'dEQP-VK.compute.*'
419    ],
420    'CtsDeqpTestCases.dEQP-VK.device_group': [
421        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
422        '--test', 'dEQP-VK.device_group*'  # Not ending on .* like most others!
423    ],
424    'CtsDeqpTestCases.dEQP-VK.draw': [
425        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
426        '--test', 'dEQP-VK.draw.*'
427    ],
428    'CtsDeqpTestCases.dEQP-VK.dynamic_state': [
429        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
430        '--test', 'dEQP-VK.dynamic_state.*'
431    ],
432    'CtsDeqpTestCases.dEQP-VK.fragment_operations': [
433        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
434        '--test', 'dEQP-VK.fragment_operations.*'
435    ],
436    'CtsDeqpTestCases.dEQP-VK.geometry': [
437        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
438        '--test', 'dEQP-VK.geometry.*'
439    ],
440    'CtsDeqpTestCases.dEQP-VK.glsl': [
441        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
442        '--test', 'dEQP-VK.glsl.*'
443    ],
444    'CtsDeqpTestCases.dEQP-VK.image': [
445        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
446        '--test', 'dEQP-VK.image.*'
447    ],
448    'CtsDeqpTestCases.dEQP-VK.info': [
449        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
450        '--test', 'dEQP-VK.info*'  # Not ending on .* like most others!
451    ],
452    'CtsDeqpTestCases.dEQP-VK.memory': [
453        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
454        '--test', 'dEQP-VK.memory.*'
455    ],
456    'CtsDeqpTestCases.dEQP-VK.multiview': [
457        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
458        '--test', 'dEQP-VK.multiview.*'
459    ],
460    'CtsDeqpTestCases.dEQP-VK.pipeline': [
461        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
462        '--test', 'dEQP-VK.pipeline.*'
463    ],
464    'CtsDeqpTestCases.dEQP-VK.protected_memory': [
465        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
466        '--test', 'dEQP-VK.protected_memory.*'
467    ],
468    'CtsDeqpTestCases.dEQP-VK.query_pool': [
469        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
470        '--test', 'dEQP-VK.query_pool.*'
471    ],
472    'CtsDeqpTestCases.dEQP-VK.rasterization': [
473        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
474        '--test', 'dEQP-VK.rasterization.*'
475    ],
476    'CtsDeqpTestCases.dEQP-VK.renderpass': [
477        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
478        '--test', 'dEQP-VK.renderpass.*'
479    ],
480    'CtsDeqpTestCases.dEQP-VK.renderpass2': [
481        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
482        '--test', 'dEQP-VK.renderpass2.*'
483    ],
484    'CtsDeqpTestCases.dEQP-VK.robustness': [
485        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
486        '--test', 'dEQP-VK.robustness.*'
487    ],
488    'CtsDeqpTestCases.dEQP-VK.sparse_resources': [
489        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
490        '--test', 'dEQP-VK.sparse_resources.*'
491    ],
492    'CtsDeqpTestCases.dEQP-VK.spirv_assembly': [
493        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
494        '--test', 'dEQP-VK.spirv_assembly.*'
495    ],
496    'CtsDeqpTestCases.dEQP-VK.ssbo': [
497        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
498        '--test', 'dEQP-VK.ssbo.*'
499    ],
500    'CtsDeqpTestCases.dEQP-VK.subgroups': [
501        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
502        '--test', 'dEQP-VK.subgroups.*'
503    ],
504    # Splitting VK.subgroups to smaller pieces to workaround b/138622686.
505    # TODO(kinaba,haddowk): remove them once the root cause is fixed, or
506    # reconsider the sharding strategy.
507    'CtsDeqpTestCases.dEQP-VK.subgroups.b': [
508        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
509        '--test', 'dEQP-VK.subgroups.b*'
510    ],
511    'CtsDeqpTestCases.dEQP-VK.subgroups.s': [
512        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
513        '--test', 'dEQP-VK.subgroups.s*'
514    ],
515    'CtsDeqpTestCases.dEQP-VK.subgroups.vote': [
516        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
517        '--test', 'dEQP-VK.subgroups.vote#*'
518    ],
519    'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic': [
520        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
521        '--test', 'dEQP-VK.subgroups.arithmetic#*'
522    ],
523    # TODO(haddowk,kinaba): Hack for b/138622686. Clean up later.
524    'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic.32': [
525        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
526        '--test', 'dEQP-VK.subgroups.arithmetic#*', '--abi', 'x86'
527    ],
528    # TODO(haddowk,kinaba): Hack for b/138622686. Clean up later.
529    'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic.64': [
530        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
531        '--test', 'dEQP-VK.subgroups.arithmetic#*', '--abi', 'x86_64'
532    ],
533    'CtsDeqpTestCases.dEQP-VK.subgroups.clustered': [
534        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
535        '--test', 'dEQP-VK.subgroups.clustered#*'
536    ],
537    'CtsDeqpTestCases.dEQP-VK.subgroups.quad': [
538        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
539        '--test', 'dEQP-VK.subgroups.quad#*'
540    ],
541    'CtsDeqpTestCases.dEQP-VK.synchronization': [
542        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
543        '--test', 'dEQP-VK.synchronization.*'
544    ],
545    'CtsDeqpTestCases.dEQP-VK.tessellation': [
546        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
547        '--test', 'dEQP-VK.tessellation.*'
548    ],
549    'CtsDeqpTestCases.dEQP-VK.texture': [
550        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
551        '--test', 'dEQP-VK.texture.*'
552    ],
553    'CtsDeqpTestCases.dEQP-VK.ubo': [
554        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
555        '--test', 'dEQP-VK.ubo.*'
556    ],
557    'CtsDeqpTestCases.dEQP-VK.wsi': [
558        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
559        '--test', 'dEQP-VK.wsi.*'
560    ],
561    'CtsDeqpTestCases.dEQP-VK.ycbcr': [
562        '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases',
563        '--test', 'dEQP-VK.ycbcr.*'
564    ],
565    'CtsMediaTestCases.audio': [
566        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioAttributesTest',
567        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioEffectTest',
568        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioFocusTest',
569        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioFormatTest',
570        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioManagerTest',
571        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioNativeTest',
572        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioPlayRoutingNative',
573        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioPlaybackConfigurationTest',
574        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioPreProcessingTest',
575        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioPresentationTest',
576        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioRecordAppOpTest',
577        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioRecordRoutingNative',
578        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioRecordTest',
579        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioRecord_BufferSizeTest',
580        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioRecordingConfigurationTest',
581        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioTrackLatencyTest',
582        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioTrackSurroundTest',
583        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioTrackTest',
584        '--include-filter', 'CtsMediaTestCases android.media.cts.AudioTrack_ListenerTest',
585        '--include-filter', 'CtsMediaTestCases android.media.cts.SoundPoolAacTest',
586        '--include-filter', 'CtsMediaTestCases android.media.cts.SoundPoolMidiTest',
587        '--include-filter', 'CtsMediaTestCases android.media.cts.SoundPoolOggTest',
588        '--include-filter', 'CtsMediaTestCases android.media.cts.VolumeShaperTest',
589    ],
590    _WM_PRESUBMIT: [
591        '--include-filter', 'CtsActivityManagerDeviceSdk25TestCases',
592        '--include-filter', 'CtsActivityManagerDeviceTestCases',
593        '--include-filter',
594        'CtsAppTestCases android.app.cts.TaskDescriptionTest',
595        '--include-filter', 'CtsWindowManagerDeviceTestCases',
596        '--test-arg', (
597            'com.android.compatibility.common.tradefed.testtype.JarHostTest:'
598            'include-annotation:android.platform.test.annotations.Presubmit'
599        ),
600        '--test-arg', (
601            'com.android.tradefed.testtype.AndroidJUnitTest:'
602            'include-annotation:android.platform.test.annotations.Presubmit'
603        ),
604        '--test-arg', (
605            'com.android.tradefed.testtype.HostTest:'
606            'include-annotation:android.platform.test.annotations.Presubmit'
607        ),
608        '--test-arg', (
609            'com.android.tradefed.testtype.AndroidJUnitTest:'
610            'exclude-annotation:androidx.test.filters.FlakyTest'
611        ),
612    ],
613}
614
615CONFIG['EXTRA_ATTRIBUTES'] = {
616    'CtsDeqpTestCases': ['suite:arc-cts', 'suite:arc-cts-deqp'],
617    'CtsDeqpTestCases.dEQP-EGL': [
618        'suite:arc-cts-deqp', 'suite:graphics_per-week'
619    ],
620    'CtsDeqpTestCases.dEQP-GLES2': [
621        'suite:arc-cts-deqp', 'suite:graphics_per-week'
622    ],
623    'CtsDeqpTestCases.dEQP-GLES3': [
624        'suite:arc-cts-deqp', 'suite:graphics_per-week'
625    ],
626    'CtsDeqpTestCases.dEQP-GLES31': [
627        'suite:arc-cts-deqp', 'suite:graphics_per-week'
628    ],
629    'CtsDeqpTestCases.dEQP-VK': [
630        'suite:arc-cts-deqp', 'suite:graphics_per-week'
631    ],
632    _COLLECT: ['suite:arc-cts-qual', 'suite:arc-cts'],
633}
634
635CONFIG['EXTRA_ARTIFACTS'] = {
636    'CtsViewTestCases': ["/storage/emulated/0/SurfaceViewSyncTest/"],
637}
638
639CONFIG['EXTRA_ARTIFACTS_HOST'] = {
640    # For fixing flakiness b/143049967.
641    'CtsThemeHostTestCases': ["/tmp/diff_*.png"],
642}
643
644_PREREQUISITE_BLUETOOTH = 'bluetooth'
645_PREREQUISITE_REGION_US = 'region_us'
646
647CONFIG['PREREQUISITES'] = {
648    'CtsBluetoothTestCases': [_PREREQUISITE_BLUETOOTH],
649    'CtsStatsdHostTestCases': [_PREREQUISITE_BLUETOOTH],
650    'CtsWebkitTestCases': [_PREREQUISITE_REGION_US],
651    'CtsContentTestCases': [_PREREQUISITE_REGION_US],
652    'CtsAppSecurityTestCases': [_PREREQUISITE_REGION_US],
653    'CtsThemeHostTestCases': [_PREREQUISITE_REGION_US],
654}
655
656from generate_controlfiles_common import main
657
658if __name__ == '__main__':
659    main(CONFIG)
660