xref: /aosp_15_r20/external/autotest/server/cros/tradefed/generate_controlfiles_CTS_R.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1#!/usr/bin/env python3
2# Lint as: python2, python3
3# Copyright 2020 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
9CONFIG = {}
10
11CONFIG['TEST_NAME'] = 'cheets_CTS_R'
12CONFIG['DOC_TITLE'] = 'Android Compatibility Test Suite (CTS)'
13CONFIG['MOBLAB_SUITE_NAME'] = 'suite:cts'
14CONFIG['MOBLAB_HARDWARE_SUITE_NAME'] = 'suite:cts-hardware'
15CONFIG['COPYRIGHT_YEAR'] = 2020
16CONFIG['AUTHKEY'] = ''
17
18# Both arm, x86 tests results normally is below 200MB.
19# 1000MB should be sufficient for CTS tests and dump logs for android-cts.
20CONFIG['LARGE_MAX_RESULT_SIZE'] = 1000 * 1024
21
22# Individual module normal produces less results than all modules, which is
23# ranging from 4MB to 50MB. 500MB should be sufficient to handle all the cases.
24CONFIG['NORMAL_MAX_RESULT_SIZE'] = 500 * 1024
25
26CONFIG['TRADEFED_CTS_COMMAND'] = 'cts'
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'] = 'android-cts/tools/cts-tradefed'
32CONFIG['TRADEFED_IGNORE_BUSINESS_LOGIC_FAILURE'] = False
33
34# On moblab everything runs in the same suite.
35CONFIG['INTERNAL_SUITE_NAMES'] = [
36        'suite:arc-cts-r', 'suite:arc-cts', 'suite:arc-cts-unibuild'
37]
38CONFIG['QUAL_SUITE_NAMES'] = ['suite:arc-cts-qual']
39CONFIG['HARDWARE_SUITE_NAME'] = 'suite:arc-cts-hardware'
40
41CONFIG['CONTROLFILE_TEST_FUNCTION_NAME'] = 'run_TS'
42CONFIG['CONTROLFILE_WRITE_SIMPLE_QUAL_AND_REGRESS'] = False
43CONFIG['CONTROLFILE_WRITE_CAMERA'] = True
44CONFIG['CONTROLFILE_WRITE_EXTRA'] = True
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
52CONFIG['LAB_DEPENDENCY'] = {'x86': ['cts_abi_x86']}
53
54CONFIG['CTS_JOB_RETRIES_IN_PUBLIC'] = 1
55CONFIG['CTS_QUAL_RETRIES'] = 9
56CONFIG['CTS_MAX_RETRIES'] = {
57        # TODO(b/183196062): Remove once the flakiness is fixed.
58        'CtsHardwareTestCases': 30,
59        # TODO(b/168262403): Remove once the flakiness is fixed.
60        'CtsIncidentHostTestCases': 10,
61        # TODO(b/181543065): Remove once the flakiness is fixed.
62        'CtsWindowManagerDeviceTestCases': 10,
63}
64
65# Timeout in hours.
66CONFIG['CTS_TIMEOUT_DEFAULT'] = 1.0
67CONFIG['CTS_TIMEOUT'] = {
68        'CtsAppSecurityHostTestCases': 2.0,
69        'CtsAutoFillServiceTestCases': 2.5,  # TODO(b/134662826)
70        'CtsCameraTestCases': 1.5,
71        'CtsDeqpTestCases': 30.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        'CtsHardwareTestCases': 2.0,
79        'CtsIcuTestCases': 2.0,
80        'CtsKeystoreTestCases': 2.0,
81        'CtsLibcoreOjTestCases': 2.0,
82        'CtsMediaStressTestCases': 5.0,
83        'CtsMediaTestCases': 10.0,
84        'CtsMediaTestCases.video': 10.0,
85        'CtsNNAPIBenchmarkTestCases': 2.0,
86        'CtsPrintTestCases': 1.5,
87        'CtsSecurityTestCases': 20.0,
88        'CtsSecurityTestCases[instant]': 20.0,
89        'CtsSensorTestCases': 2.0,
90        'CtsStatsdHostTestCases': 2.0,
91        'CtsVideoTestCases': 1.5,
92        'CtsViewTestCases': 2.5,
93        'CtsWidgetTestCases': 2.0,
94        _COLLECT: 2.5,
95        _PUBLIC_COLLECT: 2.5,
96}
97
98# Any test that runs as part as blocking BVT needs to be stable and fast. For
99# this reason we enforce a tight timeout on these modules/jobs.
100# Timeout in hours. (0.1h = 6 minutes)
101CONFIG['BVT_TIMEOUT'] = 0.1
102# We allow a very long runtime for qualification (2 days).
103CONFIG['QUAL_TIMEOUT'] = 48
104
105CONFIG['QUAL_BOOKMARKS'] = sorted([
106        'A',  # A bookend to simplify partition algorithm.
107        'CtsAccessibilityServiceTestCases',  # TODO(ihf) remove when b/121291711 fixed. This module causes problems. Put it into its own control file.
108        'CtsAccessibilityServiceTestCasesz',
109        'CtsCameraTestCases',  # Flaky
110        'CtsCameraTestCasesz',
111        'CtsDeqpTestCases',
112        'CtsDeqpTestCasesz',  # Put Deqp in one control file. Long enough, fairly stable.
113        'CtsFileSystemTestCases',  # Runs long enough. (3h)
114        'CtsFileSystemTestCasesz',
115        'CtsMediaStressTestCases',  # Put heavy  Media module in its own control file. Long enough.
116        'CtsMediaTestCases',
117        'CtsMediaTestCasesz',
118        'CtsJvmti',
119        'CtsProvider',  # TODO(b/184680306): Remove once the USB stick issue is resolved.
120        'CtsSecurityHostTestCases',  # TODO(ihf): remove when passing cleanly.
121        'CtsSecurityHostTestCasesz',
122        'CtsSensorTestCases',  # TODO(ihf): Remove when not needing 30 retries.
123        'CtsSensorTestCasesz',
124        'CtsSystem',  # TODO(b/183170604): Remove when flakiness is fixed.
125        'CtsViewTestCases',  # TODO(b/126741318): Fix performance regression and remove this.
126        'CtsViewTestCasesz',
127        'zzzzz'  # A bookend to simplify algorithm.
128])
129
130CONFIG['SMOKE'] = []
131
132CONFIG['BVT_ARC'] = []
133
134CONFIG['BVT_PERBUILD'] = [
135        'CtsAccelerationTestCases',
136        'CtsMidiTestCases',
137]
138
139CONFIG['NEEDS_POWER_CYCLE'] = [
140        'CtsAppTestCases',
141        'CtsSensorTestCases',
142]
143
144CONFIG['HARDWARE_DEPENDENT_MODULES'] = [
145        'CtsSensorTestCases',
146        'CtsCameraTestCases',
147        'CtsBluetoothTestCases',
148]
149
150# The suite is divided based on the run-time hint in the *.config file.
151CONFIG['VMTEST_INFO_SUITES'] = collections.OrderedDict()
152
153# Modules that are known to download and/or push media file assets.
154CONFIG['MEDIA_MODULES'] = [
155        'CtsMediaTestCases',
156        'CtsMediaStressTestCases',
157        'CtsMediaBitstreamsTestCases',
158]
159
160CONFIG['NEEDS_PUSH_MEDIA'] = CONFIG['MEDIA_MODULES'] + [
161        'CtsMediaStressTestCases.camera',
162        'CtsMediaTestCases.audio',
163        'CtsMediaTestCases.perf',
164        'CtsMediaTestCases.video',
165]
166
167CONFIG['NEEDS_CTS_HELPERS'] = [
168        'CtsPrintTestCases',
169]
170
171CONFIG['SPLIT_BY_BITS_MODULES'] = [
172        'CtsDeqpTestCases',
173        'CtsDeqpTestCases.dEQP-VK',
174        'CtsMediaTestCases',
175]
176
177CONFIG['PUBLIC_SPLIT_BY_BITS_MODULES'] = [
178        'CtsDeqpTestCases',
179]
180
181CONFIG['USE_OLD_ADB'] = [
182        'CtsStatsdHostTestCases',
183]
184
185# Modules that are known to need the default apps of Chrome (eg. Files.app).
186CONFIG['ENABLE_DEFAULT_APPS'] = [
187        'CtsAppSecurityHostTestCases',
188        'CtsContentTestCases',
189]
190
191# Run `eject` for (and only for) each device with RM=1 in lsblk output.
192_EJECT_REMOVABLE_DISK_COMMAND = (
193        "\'lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject\'")
194
195_WIFI_CONNECT_COMMANDS = [
196        # These needs to be in order.
197        "'/usr/local/autotest/cros/scripts/wifi connect %s %s\' % (ssid, wifipass)",
198        "'android-sh -c \\'dumpsys wifi transports -eth\\''"
199]
200
201_WIFI_CONNECT_COMMANDS_V2 = [
202        # These needs to be in order.
203        "'adb shell cmd wifi add-network %s %s %s' % (pipes.quote(ssid), 'open' if wifipass == '' else 'wpa', pipes.quote(wifipass))",
204        "'adb shell cmd wifi connect-network %s' % pipes.quote(ssid)",
205        "'adb shell dumpsys wifi transports -eth'",
206]
207
208_DISPLAY_REFRESH_COMMANDS = [
209        "'sleep 20'",  # Wait for the intent helper mojo connection established
210        "'android-sh -c \\'am start -a android.intent.action.VIEW -d https://webglsamples.org/electricflower/electricflower.html\\''"
211]
212
213# Preconditions applicable to public and internal tests.
214CONFIG['PRECONDITION'] = {
215        'CtsCameraTestCases.NativeCameraDeviceTest': _DISPLAY_REFRESH_COMMANDS,
216}
217
218CONFIG['LOGIN_PRECONDITION'] = {
219        'CtsAppSecurityHostTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
220        'CtsJobSchedulerTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
221        'CtsMediaTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
222        'CtsOsTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
223        'CtsProviderTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
224}
225
226# Preconditions applicable to public tests.
227CONFIG['PUBLIC_PRECONDITION'] = {
228        'CtsCameraTestCases.NativeCameraDeviceTest': _DISPLAY_REFRESH_COMMANDS,
229        'CtsHostsideNetworkTests': _WIFI_CONNECT_COMMANDS,
230        'CtsLibcoreTestCases': _WIFI_CONNECT_COMMANDS,
231        'CtsNetApi23TestCases': _WIFI_CONNECT_COMMANDS,
232        'CtsNetTestCases': _WIFI_CONNECT_COMMANDS,
233        'CtsJobSchedulerTestCases': _WIFI_CONNECT_COMMANDS,
234        'CtsUsageStatsTestCases': _WIFI_CONNECT_COMMANDS,
235        'CtsStatsdHostTestCases': _WIFI_CONNECT_COMMANDS,
236        'CtsWifiTestCases': _WIFI_CONNECT_COMMANDS,
237}
238
239CONFIG['PUBLIC_DEPENDENCIES'] = {
240        'CtsCameraTestCases': ['lighting'],
241        'CtsMediaTestCases': ['noloopback'],
242}
243
244CONFIG['PUBLIC_OVERRIDE_TEST_PRIORITY'] = {
245        _PUBLIC_COLLECT: 70,
246        'CtsDeqpTestCases': 70,
247        'CtsDeqpTestCases': 70,
248        'CtsMediaTestCases': 70,
249        'CtsMediaStressTestCases': 70,
250        'CtsSecurityTestCases': 70,
251        'CtsCameraTestCases': 70
252}
253
254# This information is changed based on regular analysis of the failure rate on
255# partner moblabs.
256CONFIG['PUBLIC_MODULE_RETRY_COUNT'] = {
257        # TODO(b/183196062): Remove once the flakiness is fixed.
258        'CtsHardwareTestCases': 30,
259        # TODO(b/168262403): Remove once the flakiness is fixed.
260        'CtsIncidentHostTestCases': 10,
261        # TODO(b/181543065): Remove once the flakiness is fixed.
262        'CtsWindowManagerDeviceTestCases': 10,
263}
264
265# This information is changed based on regular analysis of the job run time on
266# partner moblabs.
267
268CONFIG['OVERRIDE_TEST_LENGTH'] = {
269        'CtsDeqpTestCases': 4,  # LONG
270        'CtsMediaTestCases': 4,
271        'CtsMediaStressTestCases': 4,
272        'CtsSecurityTestCases': 4,
273        'CtsCameraTestCases': 4,
274        # Even though collect tests doesn't run very long, it must be the very first
275        # job executed inside of the suite. Hence it is the only 'LENGTHY' test.
276        _COLLECT: 5,  # LENGTHY
277        _PUBLIC_COLLECT: 5,  # LENGTHY
278}
279
280# Enabling --logcat-on-failure can extend total run time significantly if
281# individual tests finish in the order of 10ms or less (b/118836700). Specify
282# modules here to not enable the flag.
283CONFIG['DISABLE_LOGCAT_ON_FAILURE'] = set([
284        'all',
285        'CtsDeqpTestCases',
286        'CtsDeqpTestCases.dEQP-EGL',
287        'CtsDeqpTestCases.dEQP-GLES2',
288        'CtsDeqpTestCases.dEQP-GLES3',
289        'CtsDeqpTestCases.dEQP-GLES31',
290        'CtsDeqpTestCases.dEQP-VK',
291        'CtsLibcoreTestCases',
292])
293
294# This list of modules will be used for reduced set of testing for build
295# variant process. Suites: cts_hardware & arc-cts-hardware.
296CONFIG['HARDWARE_MODULES'] = [
297        'CtsPerfettoTestCases',
298        'CtsSustainedPerformanceHostTestCases',
299        'CtsCameraTestCases',
300        'CtsViewTestCases',
301        'CtsMediaTestCases',
302        'CtsNativeMediaAAudioTestCases',
303        'CtsNetTestCases',
304        'CtsWifiTestCases',
305        'CtsUsageStatsTestCases',
306        'CtsSensorTestCases',
307]
308
309SUITE_ARC_CTS_R = ['suite:arc-cts-r']
310R_QUAL_SUITES = ['suite:arc-cts-r', 'suite:arc-cts-qual']
311R_REGRESSION_SUITES = ['suite:arc-cts-r', 'suite:arc-cts']
312R_REGRESSION_AND_QUAL_SUITES = CONFIG['QUAL_SUITE_NAMES'] + R_REGRESSION_SUITES
313
314CONFIG['EXTRA_MODULES'] = {
315    'CtsCameraTestCases': {
316        'CtsCameraTestCases.NativeCameraDeviceTest': R_REGRESSION_AND_QUAL_SUITES,
317    },
318    'CtsDeqpTestCases': {
319        'CtsDeqpTestCases.dEQP-EGL': R_QUAL_SUITES,
320        'CtsDeqpTestCases.dEQP-GLES2': R_QUAL_SUITES,
321        'CtsDeqpTestCases.dEQP-GLES3': R_QUAL_SUITES,
322        'CtsDeqpTestCases.dEQP-GLES31': R_QUAL_SUITES,
323        'CtsDeqpTestCases.dEQP-VK': R_QUAL_SUITES,
324    },
325    'CtsMediaTestCases': {
326        'CtsMediaTestCases.audio': R_REGRESSION_AND_QUAL_SUITES,
327        'CtsMediaTestCases.perf': R_REGRESSION_AND_QUAL_SUITES,
328        'CtsMediaTestCases.video': R_REGRESSION_AND_QUAL_SUITES,
329    },
330    'CtsWindowManagerDeviceTestCases': {
331        'CtsWindowManager.A': R_REGRESSION_SUITES,
332        'CtsWindowManager.C': R_REGRESSION_SUITES,
333        'CtsWindowManager.D': R_REGRESSION_SUITES,
334        'CtsWindowManager.F': R_REGRESSION_SUITES,
335        'CtsWindowManager.L': R_REGRESSION_SUITES,
336        'CtsWindowManager.M': R_REGRESSION_SUITES,
337        'CtsWindowManager.Override': R_REGRESSION_SUITES,
338        'CtsWindowManager.P': R_REGRESSION_SUITES,
339        'CtsWindowManager.R': R_REGRESSION_SUITES,
340        'CtsWindowManager.S': R_REGRESSION_SUITES,
341        'CtsWindowManager.T': R_REGRESSION_SUITES,
342        'CtsWindowManager.Window': R_REGRESSION_SUITES,
343        'CtsWindowManager.intent': R_REGRESSION_SUITES,
344        'CtsWindowManager.lifecycle': R_REGRESSION_SUITES,
345    },
346}
347
348# In addition to EXTRA_MODULES, these modules do require separate control files
349# for internal and moblab.
350CONFIG['HARDWAREONLY_EXTRA_MODULES'] = {
351        'CtsAppTestCases': {
352                'CtsAppTestCases.feature': [],
353        },
354        'CtsCameraTestCases': {
355                'CtsCameraTestCases.NativeCameraDeviceTest': [],
356        },
357        'CtsDeqpTestCases': {
358                'CtsDeqpTestCases.dEQP-GLES3.functional.prerequisite': [],
359        },
360        'CtsMediaStressTestCases': {
361                'CtsMediaStressTestCases.camera': [],
362        },
363        'CtsPermissionTestCases': {
364                'CtsPermissionTestCases.camera': [],
365        },
366}
367
368# Moblab optionally can reshard modules, this was originally used
369# for deqp but it is no longer required for that module.  Retaining
370# feature in case future slower module needs to be sharded.
371CONFIG['PUBLIC_EXTRA_MODULES'] = {
372        'CtsCameraTestCases': {
373             'CtsCameraTestCases.NativeCameraDeviceTest':
374                [CONFIG['MOBLAB_SUITE_NAME']],
375        },
376}
377
378CONFIG['EXTRA_SUBMODULE_OVERRIDE'] = {
379}
380
381CONFIG['EXTRA_COMMANDLINE'] = {
382        'CtsAppTestCases.feature': [
383                '--module', 'CtsAppTestCases', '--test',
384                'android.app.cts.SystemFeaturesTest'
385        ],
386        'CtsCameraTestCases.NativeCameraDeviceTest': [
387                '--include-filter',
388                'CtsCameraTestCases android.hardware.camera2.cts.NativeCameraDeviceTest',
389                '--include-filter',
390                'CtsCameraTestCases[instant] android.hardware.camera2.cts.NativeCameraDeviceTest',
391                '--include-filter',
392                'CtsCameraTestCases android.hardware.camera2.cts.RecordingTest#testVideoPreviewSurfaceSharing[1]',
393                '--include-filter',
394                'CtsCameraTestCases[instant] android.hardware.camera2.cts.RecordingTest#testVideoPreviewSurfaceSharing[1]',
395        ],
396        'CtsDeqpTestCases.dEQP-EGL': [
397                '--include-filter', 'CtsDeqpTestCases', '--module',
398                'CtsDeqpTestCases', '--test', 'dEQP-EGL.*'
399        ],
400        'CtsDeqpTestCases.dEQP-GLES2': [
401                '--include-filter', 'CtsDeqpTestCases', '--module',
402                'CtsDeqpTestCases', '--test', 'dEQP-GLES2.*'
403        ],
404        'CtsDeqpTestCases.dEQP-GLES3': [
405                '--include-filter', 'CtsDeqpTestCases', '--module',
406                'CtsDeqpTestCases', '--test', 'dEQP-GLES3.*'
407        ],
408        'CtsDeqpTestCases.dEQP-GLES3.functional.prerequisite': [
409                '--module', 'CtsDeqpTestCases', '--test',
410                'dEQP-GLES3.functional.prerequisite#*'
411        ],
412        'CtsDeqpTestCases.dEQP-GLES31': [
413                '--include-filter', 'CtsDeqpTestCases', '--module',
414                'CtsDeqpTestCases', '--test', 'dEQP-GLES31.*'
415        ],
416        'CtsDeqpTestCases.dEQP-VK': [
417                '--include-filter', 'CtsDeqpTestCases', '--module',
418                'CtsDeqpTestCases', '--test', 'dEQP-VK.*'
419        ],
420        'CtsDeqpTestCases.dEQP-VK.api': [
421                '--include-filter', 'CtsDeqpTestCases', '--module',
422                'CtsDeqpTestCases', '--test', 'dEQP-VK.api.*'
423        ],
424        'CtsDeqpTestCases.dEQP-VK.binding_model': [
425                '--include-filter', 'CtsDeqpTestCases', '--module',
426                'CtsDeqpTestCases', '--test', 'dEQP-VK.binding_model.*'
427        ],
428        'CtsDeqpTestCases.dEQP-VK.clipping': [
429                '--include-filter', 'CtsDeqpTestCases', '--module',
430                'CtsDeqpTestCases', '--test', 'dEQP-VK.clipping.*'
431        ],
432        'CtsDeqpTestCases.dEQP-VK.compute': [
433                '--include-filter', 'CtsDeqpTestCases', '--module',
434                'CtsDeqpTestCases', '--test', 'dEQP-VK.compute.*'
435        ],
436        'CtsDeqpTestCases.dEQP-VK.device_group': [
437                '--include-filter',
438                'CtsDeqpTestCases',
439                '--module',
440                'CtsDeqpTestCases',
441                '--test',
442                'dEQP-VK.device_group*'  # Not ending on .* like most others!
443        ],
444        'CtsDeqpTestCases.dEQP-VK.draw': [
445                '--include-filter', 'CtsDeqpTestCases', '--module',
446                'CtsDeqpTestCases', '--test', 'dEQP-VK.draw.*'
447        ],
448        'CtsDeqpTestCases.dEQP-VK.dynamic_state': [
449                '--include-filter', 'CtsDeqpTestCases', '--module',
450                'CtsDeqpTestCases', '--test', 'dEQP-VK.dynamic_state.*'
451        ],
452        'CtsDeqpTestCases.dEQP-VK.fragment_operations': [
453                '--include-filter', 'CtsDeqpTestCases', '--module',
454                'CtsDeqpTestCases', '--test', 'dEQP-VK.fragment_operations.*'
455        ],
456        'CtsDeqpTestCases.dEQP-VK.geometry': [
457                '--include-filter', 'CtsDeqpTestCases', '--module',
458                'CtsDeqpTestCases', '--test', 'dEQP-VK.geometry.*'
459        ],
460        'CtsDeqpTestCases.dEQP-VK.glsl': [
461                '--include-filter', 'CtsDeqpTestCases', '--module',
462                'CtsDeqpTestCases', '--test', 'dEQP-VK.glsl.*'
463        ],
464        'CtsDeqpTestCases.dEQP-VK.image': [
465                '--include-filter', 'CtsDeqpTestCases', '--module',
466                'CtsDeqpTestCases', '--test', 'dEQP-VK.image.*'
467        ],
468        'CtsDeqpTestCases.dEQP-VK.info': [
469                '--include-filter',
470                'CtsDeqpTestCases',
471                '--module',
472                'CtsDeqpTestCases',
473                '--test',
474                'dEQP-VK.info*'  # Not ending on .* like most others!
475        ],
476        'CtsDeqpTestCases.dEQP-VK.memory': [
477                '--include-filter', 'CtsDeqpTestCases', '--module',
478                'CtsDeqpTestCases', '--test', 'dEQP-VK.memory.*'
479        ],
480        'CtsDeqpTestCases.dEQP-VK.multiview': [
481                '--include-filter', 'CtsDeqpTestCases', '--module',
482                'CtsDeqpTestCases', '--test', 'dEQP-VK.multiview.*'
483        ],
484        'CtsDeqpTestCases.dEQP-VK.pipeline': [
485                '--include-filter', 'CtsDeqpTestCases', '--module',
486                'CtsDeqpTestCases', '--test', 'dEQP-VK.pipeline.*'
487        ],
488        'CtsDeqpTestCases.dEQP-VK.protected_memory': [
489                '--include-filter', 'CtsDeqpTestCases', '--module',
490                'CtsDeqpTestCases', '--test', 'dEQP-VK.protected_memory.*'
491        ],
492        'CtsDeqpTestCases.dEQP-VK.query_pool': [
493                '--include-filter', 'CtsDeqpTestCases', '--module',
494                'CtsDeqpTestCases', '--test', 'dEQP-VK.query_pool.*'
495        ],
496        'CtsDeqpTestCases.dEQP-VK.rasterization': [
497                '--include-filter', 'CtsDeqpTestCases', '--module',
498                'CtsDeqpTestCases', '--test', 'dEQP-VK.rasterization.*'
499        ],
500        'CtsDeqpTestCases.dEQP-VK.renderpass': [
501                '--include-filter', 'CtsDeqpTestCases', '--module',
502                'CtsDeqpTestCases', '--test', 'dEQP-VK.renderpass.*'
503        ],
504        'CtsDeqpTestCases.dEQP-VK.renderpass2': [
505                '--include-filter', 'CtsDeqpTestCases', '--module',
506                'CtsDeqpTestCases', '--test', 'dEQP-VK.renderpass2.*'
507        ],
508        'CtsDeqpTestCases.dEQP-VK.robustness': [
509                '--include-filter', 'CtsDeqpTestCases', '--module',
510                'CtsDeqpTestCases', '--test', 'dEQP-VK.robustness.*'
511        ],
512        'CtsDeqpTestCases.dEQP-VK.sparse_resources': [
513                '--include-filter', 'CtsDeqpTestCases', '--module',
514                'CtsDeqpTestCases', '--test', 'dEQP-VK.sparse_resources.*'
515        ],
516        'CtsDeqpTestCases.dEQP-VK.spirv_assembly': [
517                '--include-filter', 'CtsDeqpTestCases', '--module',
518                'CtsDeqpTestCases', '--test', 'dEQP-VK.spirv_assembly.*'
519        ],
520        'CtsDeqpTestCases.dEQP-VK.ssbo': [
521                '--include-filter', 'CtsDeqpTestCases', '--module',
522                'CtsDeqpTestCases', '--test', 'dEQP-VK.ssbo.*'
523        ],
524        'CtsDeqpTestCases.dEQP-VK.subgroups': [
525                '--include-filter', 'CtsDeqpTestCases', '--module',
526                'CtsDeqpTestCases', '--test', 'dEQP-VK.subgroups.*'
527        ],
528        # Splitting VK.subgroups to smaller pieces to workaround b/138622686.
529        # TODO(kinaba,haddowk): remove them once the root cause is fixed, or
530        # reconsider the sharding strategy.
531        'CtsDeqpTestCases.dEQP-VK.subgroups.b': [
532                '--include-filter', 'CtsDeqpTestCases', '--module',
533                'CtsDeqpTestCases', '--test', 'dEQP-VK.subgroups.b*'
534        ],
535        'CtsDeqpTestCases.dEQP-VK.subgroups.s': [
536                '--include-filter', 'CtsDeqpTestCases', '--module',
537                'CtsDeqpTestCases', '--test', 'dEQP-VK.subgroups.s*'
538        ],
539        'CtsDeqpTestCases.dEQP-VK.subgroups.vote': [
540                '--include-filter', 'CtsDeqpTestCases', '--module',
541                'CtsDeqpTestCases', '--test', 'dEQP-VK.subgroups.vote#*'
542        ],
543        'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic': [
544                '--include-filter', 'CtsDeqpTestCases', '--module',
545                'CtsDeqpTestCases', '--test', 'dEQP-VK.subgroups.arithmetic#*'
546        ],
547        # TODO(haddowk,kinaba): Hack for b/138622686. Clean up later.
548        'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic.32': [
549                '--include-filter', 'CtsDeqpTestCases', '--module',
550                'CtsDeqpTestCases', '--test', 'dEQP-VK.subgroups.arithmetic#*',
551                '--abi', 'x86'
552        ],
553        # TODO(haddowk,kinaba): Hack for b/138622686. Clean up later.
554        'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic.64': [
555                '--include-filter', 'CtsDeqpTestCases', '--module',
556                'CtsDeqpTestCases', '--test', 'dEQP-VK.subgroups.arithmetic#*',
557                '--abi', 'x86_64'
558        ],
559        'CtsDeqpTestCases.dEQP-VK.subgroups.clustered': [
560                '--include-filter', 'CtsDeqpTestCases', '--module',
561                'CtsDeqpTestCases', '--test', 'dEQP-VK.subgroups.clustered#*'
562        ],
563        'CtsDeqpTestCases.dEQP-VK.subgroups.quad': [
564                '--include-filter', 'CtsDeqpTestCases', '--module',
565                'CtsDeqpTestCases', '--test', 'dEQP-VK.subgroups.quad#*'
566        ],
567        'CtsDeqpTestCases.dEQP-VK.synchronization': [
568                '--include-filter', 'CtsDeqpTestCases', '--module',
569                'CtsDeqpTestCases', '--test', 'dEQP-VK.synchronization.*'
570        ],
571        'CtsDeqpTestCases.dEQP-VK.tessellation': [
572                '--include-filter', 'CtsDeqpTestCases', '--module',
573                'CtsDeqpTestCases', '--test', 'dEQP-VK.tessellation.*'
574        ],
575        'CtsDeqpTestCases.dEQP-VK.texture': [
576                '--include-filter', 'CtsDeqpTestCases', '--module',
577                'CtsDeqpTestCases', '--test', 'dEQP-VK.texture.*'
578        ],
579        'CtsDeqpTestCases.dEQP-VK.ubo': [
580                '--include-filter', 'CtsDeqpTestCases', '--module',
581                'CtsDeqpTestCases', '--test', 'dEQP-VK.ubo.*'
582        ],
583        'CtsDeqpTestCases.dEQP-VK.wsi': [
584                '--include-filter', 'CtsDeqpTestCases', '--module',
585                'CtsDeqpTestCases', '--test', 'dEQP-VK.wsi.*'
586        ],
587        'CtsDeqpTestCases.dEQP-VK.ycbcr': [
588                '--include-filter', 'CtsDeqpTestCases', '--module',
589                'CtsDeqpTestCases', '--test', 'dEQP-VK.ycbcr.*'
590        ],
591        'CtsMediaStressTestCases.camera': [
592                '--module',
593                'CtsMediaStressTestCases',
594                '--test',
595                'android.mediastress.cts.MediaRecorderStressTest',
596        ],
597        'CtsMediaTestCases.audio': [
598                '--include-filter',
599                'CtsMediaTestCases android.media.cts.AudioAttributesTest',
600                '--include-filter',
601                'CtsMediaTestCases android.media.cts.AudioEffectTest',
602                '--include-filter',
603                'CtsMediaTestCases android.media.cts.AudioAttributesTest',
604                '--include-filter',
605                'CtsMediaTestCases android.media.cts.AudioEffectTest',
606                '--include-filter',
607                'CtsMediaTestCases android.media.cts.AudioFocusTest',
608                '--include-filter',
609                'CtsMediaTestCases android.media.cts.AudioFormatTest',
610                '--include-filter',
611                'CtsMediaTestCases android.media.cts.AudioManagerTest',
612                '--include-filter',
613                'CtsMediaTestCases android.media.cts.AudioMetadataTest',
614                '--include-filter',
615                'CtsMediaTestCases android.media.cts.AudioNativeTest',
616                '--include-filter',
617                'CtsMediaTestCases android.media.cts.AudioPlayRoutingNative',
618                '--include-filter',
619                'CtsMediaTestCases android.media.cts.AudioPlaybackCaptureTest',
620                '--include-filter',
621                'CtsMediaTestCases android.media.cts.AudioPlaybackConfigurationTest',
622                '--include-filter',
623                'CtsMediaTestCases android.media.cts.AudioPreProcessingTest',
624                '--include-filter',
625                'CtsMediaTestCases android.media.cts.AudioPresentationTest',
626                '--include-filter',
627                'CtsMediaTestCases android.media.cts.AudioRecordAppOpTest',
628                '--include-filter',
629                'CtsMediaTestCases android.media.cts.AudioRecordRoutingNative',
630                '--include-filter',
631                'CtsMediaTestCases android.media.cts.AudioRecordTest',
632                '--include-filter',
633                'CtsMediaTestCases android.media.cts.AudioRecord_BufferSizeTest',
634                '--include-filter',
635                'CtsMediaTestCases android.media.cts.AudioRecordingConfigurationTest',
636                '--include-filter',
637                'CtsMediaTestCases android.media.cts.AudioSystemTest',
638                '--include-filter',
639                'CtsMediaTestCases android.media.cts.AudioSystemUsageTest',
640                '--include-filter',
641                'CtsMediaTestCases android.media.cts.AudioTrackLatencyTest',
642                '--include-filter',
643                'CtsMediaTestCases android.media.cts.AudioTrackOffloadTest',
644                '--include-filter',
645                'CtsMediaTestCases android.media.cts.AudioTrackSurroundTest',
646                '--include-filter',
647                'CtsMediaTestCases android.media.cts.AudioTrackTest',
648                '--include-filter',
649                'CtsMediaTestCases android.media.cts.AudioTrack_ListenerTest',
650                '--include-filter',
651                'CtsMediaTestCases android.media.cts.SoundPoolAacTest',
652                '--include-filter',
653                'CtsMediaTestCases android.media.cts.SoundPoolHapticTest',
654                '--include-filter',
655                'CtsMediaTestCases android.media.cts.SoundPoolMidiTest',
656                '--include-filter',
657                'CtsMediaTestCases android.media.cts.SoundPoolOggTest',
658                '--include-filter',
659                'CtsMediaTestCases android.media.cts.VolumeShaperTest',
660        ],
661        'CtsMediaTestCases.perf': [
662                '--include-filter',
663                'CtsMediaTestCases android.media.cts.VideoDecoderPerfTest',
664        ],
665        'CtsMediaTestCases.video': [
666                '--include-filter',
667                'CtsMediaTestCases android.media.cts.AdaptivePlaybackTest',
668                '--include-filter',
669                'CtsMediaTestCases android.media.cts.DecodeAccuracyTest',
670                '--include-filter',
671                'CtsMediaTestCases android.media.cts.DecodeEditEncodeTest',
672                '--include-filter',
673                'CtsMediaTestCases android.media.cts.DecoderConformanceTest',
674                '--include-filter',
675                'CtsMediaTestCases android.media.cts.EncodeDecodeTest',
676                '--include-filter',
677                'CtsMediaTestCases android.media.cts.ExtractDecodeEditEncodeMuxTest',
678                '--include-filter',
679                'CtsMediaTestCases android.media.cts.MediaCodecPlayerTest',
680                '--include-filter',
681                'CtsMediaTestCases android.media.cts.MediaCodecPlayerTest',
682                '--include-filter',
683                'CtsMediaTestCases android.media.cts.MediaDrmClearkeyTest',
684                '--include-filter',
685                'CtsMediaTestCases android.media.cts.MediaRecorderTest',
686                '--include-filter',
687                'CtsMediaTestCases android.media.cts.MediaSynctest#testPlayVideo',
688                '--include-filter',
689                'CtsMediaTestCases android.media.cts.VideoCodecTest',
690                '--include-filter',
691                'CtsMediaTestCases android.media.cts.VideoEncoderTest',
692        ],
693        'CtsPermissionTestCases.camera': [
694                '--include-filter',
695                'CtsPermissionTestCases android.permission.cts.CameraPermissionTest',
696                '--include-filter',
697                'CtsPermissionTestCases android.permission.cts.Camera2PermissionTest',
698        ],
699        'CtsWindowManager.A': [
700                '--include-filter',
701                'CtsWindowManagerDeviceTestCases android.server.wm.ActivityManagerGetConfigTests',
702                '--include-filter',
703                'CtsWindowManagerDeviceTestCases android.server.wm.ActivityMetricsLoggerTests',
704                '--include-filter',
705                'CtsWindowManagerDeviceTestCases android.server.wm.ActivityTaskAffinityTests',
706                '--include-filter',
707                'CtsWindowManagerDeviceTestCases android.server.wm.ActivityTransitionTests',
708                '--include-filter',
709                'CtsWindowManagerDeviceTestCases android.server.wm.ActivityViewTest',
710                '--include-filter',
711                'CtsWindowManagerDeviceTestCases android.server.wm.ActivityVisibilityTests',
712                '--include-filter',
713                'CtsWindowManagerDeviceTestCases android.server.wm.AddWindowAsUserTest',
714                '--include-filter',
715                'CtsWindowManagerDeviceTestCases android.server.wm.AlertWindowsAppOpsTests',
716                '--include-filter',
717                'CtsWindowManagerDeviceTestCases android.server.wm.AlertWindowsImportanceTests',
718                '--include-filter',
719                'CtsWindowManagerDeviceTestCases android.server.wm.AlertWindowsTests',
720                '--include-filter',
721                'CtsWindowManagerDeviceTestCases android.server.wm.AmProfileTests',
722                '--include-filter',
723                'CtsWindowManagerDeviceTestCases android.server.wm.AmStartOptionsTests',
724                '--include-filter',
725                'CtsWindowManagerDeviceTestCases android.server.wm.AnrTests',
726                '--include-filter',
727                'CtsWindowManagerDeviceTestCases android.server.wm.AppConfigurationTests',
728                '--include-filter',
729                'CtsWindowManagerDeviceTestCases android.server.wm.AspectRatioTests',
730                '--include-filter',
731                'CtsWindowManagerDeviceTestCases android.server.wm.AssistantStackTests',
732        ],
733        'CtsWindowManager.C': [
734                '--include-filter',
735                'CtsWindowManagerDeviceTestCases android.server.wm.CloseOnOutsideTests',
736                '--include-filter',
737                'CtsWindowManagerDeviceTestCases android.server.wm.ConfigChangeTests',
738                '--include-filter',
739                'CtsWindowManagerDeviceTestCases android.server.wm.CrossAppDragAndDropTests',
740        ],
741        'CtsWindowManager.D': [
742                '--include-filter',
743                'CtsWindowManagerDeviceTestCases android.server.wm.DecorInsetTests',
744                '--include-filter',
745                'CtsWindowManagerDeviceTestCases android.server.wm.DeprecatedTargetSdkTest',
746                '--include-filter',
747                'CtsWindowManagerDeviceTestCases android.server.wm.DialogFrameTests',
748                '--include-filter',
749                'CtsWindowManagerDeviceTestCases android.server.wm.DisplayCutoutTests',
750                '--include-filter',
751                'CtsWindowManagerDeviceTestCases android.server.wm.DisplaySizeTest',
752                '--include-filter',
753                'CtsWindowManagerDeviceTestCases android.server.wm.DisplayTests',
754                '--include-filter',
755                'CtsWindowManagerDeviceTestCases android.server.wm.DragDropTest',
756                '--include-filter',
757                'CtsWindowManagerDeviceTestCases android.server.wm.DreamManagerServiceTests',
758        ],
759        'CtsWindowManager.F': [
760                '--include-filter',
761                'CtsWindowManagerDeviceTestCases android.server.wm.ForceRelayoutTest',
762                '--include-filter',
763                'CtsWindowManagerDeviceTestCases android.server.wm.FreeformWindowingModeTests',
764        ],
765        'CtsWindowManager.L': [
766                '--include-filter',
767                'CtsWindowManagerDeviceTestCases android.server.wm.LayoutTests',
768                '--include-filter',
769                'CtsWindowManagerDeviceTestCases android.server.wm.LocationInWindowTests',
770                '--include-filter',
771                'CtsWindowManagerDeviceTestCases android.server.wm.LocationOnScreenTests',
772        ],
773        'CtsWindowManager.M': [
774                '--include-filter',
775                'CtsWindowManagerDeviceTestCases android.server.wm.ManifestLayoutTests',
776                '--include-filter',
777                'CtsWindowManagerDeviceTestCases android.server.wm.MinimalPostProcessingTests',
778                '--include-filter',
779                'CtsWindowManagerDeviceTestCases android.server.wm.MultiDisplayActivityLaunchTests',
780                '--include-filter',
781                'CtsWindowManagerDeviceTestCases android.server.wm.MultiDisplayClientTests',
782                '--include-filter',
783                'CtsWindowManagerDeviceTestCases android.server.wm.MultiDisplayKeyguardTests',
784                '--include-filter',
785                'CtsWindowManagerDeviceTestCases android.server.wm.MultiDisplayLockedKeyguardTests',
786                '--include-filter',
787                'CtsWindowManagerDeviceTestCases android.server.wm.MultiDisplayPolicyTests',
788                '--include-filter',
789                'CtsWindowManagerDeviceTestCases android.server.wm.MultiDisplayPrivateDisplayTests',
790                '--include-filter',
791                'CtsWindowManagerDeviceTestCases android.server.wm.MultiDisplaySecurityTests',
792                '--include-filter',
793                'CtsWindowManagerDeviceTestCases android.server.wm.MultiDisplaySystemDecorationTests',
794        ],
795        'CtsWindowManager.Override': [
796                '--include-filter',
797                'CtsWindowManagerDeviceTestCases android.server.wm.OverrideConfigTests',
798        ],
799        'CtsWindowManager.P': [
800                '--include-filter',
801                'CtsWindowManagerDeviceTestCases android.server.wm.PinnedStackTests',
802                '--include-filter',
803                'CtsWindowManagerDeviceTestCases android.server.wm.PrereleaseSdkTest',
804                '--include-filter',
805                'CtsWindowManagerDeviceTestCases android.server.wm.PresentationTest',
806        ],
807        'CtsWindowManager.R': [
808                '--include-filter',
809                'CtsWindowManagerDeviceTestCases android.server.wm.ReplaceWindowTests',
810                '--include-filter',
811                'CtsWindowManagerDeviceTestCases android.server.wm.RobustnessTests',
812        ],
813        'CtsWindowManager.S': [
814                '--include-filter',
815                'CtsWindowManagerDeviceTestCases android.server.wm.SplashscreenTests',
816                '--include-filter',
817                'CtsWindowManagerDeviceTestCases android.server.wm.SplitScreenTests',
818                '--include-filter',
819                'CtsWindowManagerDeviceTestCases android.server.wm.StartActivityAsUserTests',
820                '--include-filter',
821                'CtsWindowManagerDeviceTestCases android.server.wm.StartActivityTests',
822                '--include-filter',
823                'CtsWindowManagerDeviceTestCases android.server.wm.SurfaceControlTest',
824                '--include-filter',
825                'CtsWindowManagerDeviceTestCases android.server.wm.SurfaceControlViewHostTests',
826                '--include-filter',
827                'CtsWindowManagerDeviceTestCases android.server.wm.SurfaceViewSurfaceValidatorTest',
828                '--include-filter',
829                'CtsWindowManagerDeviceTestCases android.server.wm.SurfaceViewTest',
830        ],
831        'CtsWindowManager.T': [
832                '--include-filter',
833                'CtsWindowManagerDeviceTestCases android.server.wm.ToastWindowTest',
834                '--include-filter',
835                'CtsWindowManagerDeviceTestCases android.server.wm.TransitionSelectionTests',
836        ],
837        'CtsWindowManager.Window': [
838                '--include-filter',
839                'CtsWindowManagerDeviceTestCases android.server.wm.WindowContextPolicyTests',
840                '--include-filter',
841                'CtsWindowManagerDeviceTestCases android.server.wm.WindowContextTests',
842                '--include-filter',
843                'CtsWindowManagerDeviceTestCases android.server.wm.WindowFocusTests',
844                '--include-filter',
845                'CtsWindowManagerDeviceTestCases android.server.wm.WindowInputTests',
846                '--include-filter',
847                'CtsWindowManagerDeviceTestCases android.server.wm.WindowInsetsAnimationCallbackTests',
848                '--include-filter',
849                'CtsWindowManagerDeviceTestCases android.server.wm.WindowInsetsAnimationControllerTests',
850                '--include-filter',
851                'CtsWindowManagerDeviceTestCases android.server.wm.WindowInsetsAnimationImeTests',
852                '--include-filter',
853                'CtsWindowManagerDeviceTestCases android.server.wm.WindowInsetsAnimationSynchronicityTests',
854                '--include-filter',
855                'CtsWindowManagerDeviceTestCases android.server.wm.WindowInsetsAnimationTests',
856                '--include-filter',
857                'CtsWindowManagerDeviceTestCases android.server.wm.WindowInsetsControllerTests',
858                '--include-filter',
859                'CtsWindowManagerDeviceTestCases android.server.wm.WindowInsetsLayoutTests',
860                '--include-filter',
861                'CtsWindowManagerDeviceTestCases android.server.wm.WindowInsetsPolicyTest',
862                '--include-filter',
863                'CtsWindowManagerDeviceTestCases android.server.wm.WindowInsetsTest',
864                '--include-filter',
865                'CtsWindowManagerDeviceTestCases android.server.wm.WindowManager_BadTokenExceptionTest',
866                '--include-filter',
867                'CtsWindowManagerDeviceTestCases android.server.wm.WindowManager_LayoutParamsTest',
868                '--include-filter',
869                'CtsWindowManagerDeviceTestCases android.server.wm.WindowMetricsTests',
870                '--include-filter',
871                'CtsWindowManagerDeviceTestCases android.server.wm.WindowTest',
872        ],
873        'CtsWindowManager.intent': [
874                '--include-filter',
875                'CtsWindowManagerDeviceTestCases android.server.wm.intent.IntentGenerationTests',
876                '--include-filter',
877                'CtsWindowManagerDeviceTestCases android.server.wm.intent.IntentTests',
878        ],
879        'CtsWindowManager.lifecycle': [
880                '--include-filter',
881                'CtsWindowManagerDeviceTestCases android.server.wm.lifecycle.ActivityLifecycleFreeformTests',
882                '--include-filter',
883                'CtsWindowManagerDeviceTestCases android.server.wm.lifecycle.ActivityLifecycleKeyguardTests',
884                '--include-filter',
885                'CtsWindowManagerDeviceTestCases android.server.wm.lifecycle.ActivityLifecyclePipTests',
886                '--include-filter',
887                'CtsWindowManagerDeviceTestCases android.server.wm.lifecycle.ActivityLifecycleSplitScreenTests',
888                '--include-filter',
889                'CtsWindowManagerDeviceTestCases android.server.wm.lifecycle.ActivityLifecycleTests',
890                '--include-filter',
891                'CtsWindowManagerDeviceTestCases android.server.wm.lifecycle.ActivityLifecycleTopResumedStateTests',
892                '--include-filter',
893                'CtsWindowManagerDeviceTestCases android.server.wm.lifecycle.ActivityStarterTests',
894                '--include-filter',
895                'CtsWindowManagerDeviceTestCases android.server.wm.lifecycle.ActivityTests',
896        ],
897}
898
899CONFIG['EXTRA_ATTRIBUTES'] = {}
900
901CONFIG['EXTRA_ARTIFACTS'] = {}
902CONFIG['PREREQUISITES'] = {}
903
904CONFIG['USE_JDK9'] = True
905
906from generate_controlfiles_common import main
907
908if __name__ == '__main__':
909    main(CONFIG)
910