1#!/usr/bin/env python2 2# Copyright 2019 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_Q' 12CONFIG['DOC_TITLE'] = 'Android Compatibility Test Suite (CTS)' 13CONFIG['MOBLAB_SUITE_NAME'] = 'suite:cts_Q' 14CONFIG['COPYRIGHT_YEAR'] = 2019 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# On moblab everything runs in the same suite. 34CONFIG['INTERNAL_SUITE_NAMES'] = ['suite:arc-cts-q'] 35CONFIG['QUAL_SUITE_NAMES'] = [] 36 37CONFIG['CONTROLFILE_TEST_FUNCTION_NAME'] = 'run_TS' 38CONFIG['CONTROLFILE_WRITE_SIMPLE_QUAL_AND_REGRESS'] = False 39CONFIG['CONTROLFILE_WRITE_CAMERA'] = False 40CONFIG['CONTROLFILE_WRITE_EXTRA'] = True 41 42# The dashboard suppresses upload to APFE for GS directories (based on autotest 43# tag) that contain 'tradefed-run-collect-tests'. b/119640440 44# Do not change the name/tag without adjusting the dashboard. 45_COLLECT = 'tradefed-run-collect-tests-only-internal' 46 47CONFIG['LAB_DEPENDENCY'] = { 48 'x86': ['cts_abi_x86'] 49} 50 51CONFIG['CTS_JOB_RETRIES_IN_PUBLIC'] = 1 52CONFIG['CTS_QUAL_RETRIES'] = 9 53CONFIG['CTS_MAX_RETRIES'] = { 54 'CtsDeqpTestCases': 15, # TODO(b/126787654) 55 'CtsIncidentHostTestCases': 30, # TODO(b/128695132) 56 'CtsSensorTestCases': 30, # TODO(b/124528412) 57} 58 59# Timeout in hours. 60CONFIG['CTS_TIMEOUT_DEFAULT'] = 1.0 61CONFIG['CTS_TIMEOUT'] = { 62 'CtsAutoFillServiceTestCases': 2.5, # TODO(b/134662826) 63 'CtsDeqpTestCases': 30.0, 64 'CtsDeqpTestCases.dEQP-EGL' : 2.0, 65 'CtsDeqpTestCases.dEQP-GLES2': 2.0, 66 'CtsDeqpTestCases.dEQP-GLES3': 6.0, 67 'CtsDeqpTestCases.dEQP-GLES31': 6.0, 68 'CtsDeqpTestCases.dEQP-VK': 15.0, 69 'CtsFileSystemTestCases': 3.0, 70 'CtsHardwareTestCases': 2.0, 71 'CtsIcuTestCases': 2.0, 72 'CtsLibcoreOjTestCases': 2.0, 73 'CtsMediaStressTestCases': 5.0, 74 'CtsMediaTestCases': 10.0, 75 'CtsNNAPIBenchmarkTestCases': 2.0, 76 'CtsPrintTestCases': 1.5, 77 'CtsSecurityTestCases': 2.0, 78 'CtsSensorTestCases': 2.0, 79 'CtsStatsdHostTestCases': 2.0, 80 'CtsVideoTestCases': 1.5, 81 'CtsWidgetTestCases': 2.0, 82 _COLLECT: 2.5, 83} 84 85# Any test that runs as part as blocking BVT needs to be stable and fast. For 86# this reason we enforce a tight timeout on these modules/jobs. 87# Timeout in hours. (0.1h = 6 minutes) 88CONFIG['BVT_TIMEOUT'] = 0.1 89# We allow a very long runtime for qualification (2 days). 90CONFIG['QUAL_TIMEOUT'] = 48 91 92CONFIG['QUAL_BOOKMARKS'] = sorted([]) 93 94CONFIG['SMOKE'] = [] 95 96CONFIG['BVT_ARC'] = [] 97 98CONFIG['BVT_PERBUILD'] = [] 99 100CONFIG['NEEDS_POWER_CYCLE'] = [] 101 102CONFIG['HARDWARE_DEPENDENT_MODULES'] = [] 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'] = [ 109 'CtsMediaTestCases', 110 'CtsMediaStressTestCases', 111 'CtsMediaBitstreamsTestCases', 112] 113 114CONFIG['NEEDS_PUSH_MEDIA'] = CONFIG['MEDIA_MODULES'] 115 116# Modules that are known to need the default apps of Chrome (eg. Files.app). 117CONFIG['ENABLE_DEFAULT_APPS'] = [ 118 'CtsAppSecurityHostTestCases', 119] 120 121# Run `eject` for (and only for) each device with RM=1 in lsblk output. 122_EJECT_REMOVABLE_DISK_COMMAND = ( 123 "\'lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject\'") 124# Behave more like in the verififed mode. 125_SECURITY_PARANOID_COMMAND = ( 126 "\'echo 3 > /proc/sys/kernel/perf_event_paranoid\'") 127# Expose /proc/config.gz 128_CONFIG_MODULE_COMMAND = "\'modprobe configs\'" 129 130# TODO(b/126741318): Fix performance regression and remove this. 131_SLEEP_60_COMMAND = "\'sleep 60\'" 132 133# Preconditions applicable to public and internal tests. 134CONFIG['PRECONDITION'] = { 135 'CtsSecurityHostTestCases': [ 136 _SECURITY_PARANOID_COMMAND, _CONFIG_MODULE_COMMAND 137 ], 138 # Tests are performance-sensitive, workaround to avoid CPU load on login. 139 # TODO(b/126741318): Fix performance regression and remove this. 140 'CtsViewTestCases': [_SLEEP_60_COMMAND], 141} 142CONFIG['LOGIN_PRECONDITION'] = { 143 'CtsAppSecurityHostTestCases': [_EJECT_REMOVABLE_DISK_COMMAND], 144 'CtsJobSchedulerTestCases': [_EJECT_REMOVABLE_DISK_COMMAND], 145 'CtsMediaTestCases': [_EJECT_REMOVABLE_DISK_COMMAND], 146 'CtsOsTestCases': [_EJECT_REMOVABLE_DISK_COMMAND], 147 'CtsProviderTestCases': [_EJECT_REMOVABLE_DISK_COMMAND], 148} 149 150# Preconditions applicable to public tests. 151CONFIG['PUBLIC_PRECONDITION'] = { 152} 153 154CONFIG['PUBLIC_DEPENDENCIES'] = { 155} 156 157# This information is changed based on regular analysis of the failure rate on 158# partner moblabs. 159CONFIG['PUBLIC_MODULE_RETRY_COUNT'] = { 160} 161 162# This information is changed based on regular analysis of the job run time on 163# partner moblabs. 164 165CONFIG['OVERRIDE_TEST_LENGTH'] = { 166 'CtsDeqpTestCases': 4, # LONG 167 'CtsMediaTestCases': 4, 168 'CtsMediaStressTestCases': 4, 169 'CtsSecurityTestCases': 4, 170 'CtsCameraTestCases': 4, 171 # Even though collect tests doesn't run very long, it must be the very first 172 # job executed inside of the suite. Hence it is the only 'LENGTHY' test. 173 _COLLECT: 5, # LENGTHY 174} 175 176# Enabling --logcat-on-failure can extend total run time significantly if 177# individual tests finish in the order of 10ms or less (b/118836700). Specify 178# modules here to not enable the flag. 179CONFIG['DISABLE_LOGCAT_ON_FAILURE'] = set([ 180 'all', 181 'CtsDeqpTestCases', 182 'CtsDeqpTestCases.dEQP-EGL', 183 'CtsDeqpTestCases.dEQP-GLES2', 184 'CtsDeqpTestCases.dEQP-GLES3', 185 'CtsDeqpTestCases.dEQP-GLES31', 186 'CtsDeqpTestCases.dEQP-VK', 187 'CtsLibcoreTestCases', 188]) 189 190CONFIG['EXTRA_MODULES'] = { 191 'CtsDeqpTestCases': { 192 'SUBMODULES': set([ 193 'CtsDeqpTestCases.dEQP-EGL', 194 'CtsDeqpTestCases.dEQP-GLES2', 195 'CtsDeqpTestCases.dEQP-GLES3', 196 'CtsDeqpTestCases.dEQP-GLES31', 197 'CtsDeqpTestCases.dEQP-VK' 198 ]), 199 'SUITES': ['suite:arc-cts-q'], 200 }, 201} 202 203# Moblab wants to shard dEQP really finely. This isn't needed anymore as it got 204# faster, but I guess better safe than sorry. 205CONFIG['PUBLIC_EXTRA_MODULES'] = { 206 'CtsDeqpTestCases' : [ 207 'CtsDeqpTestCases.dEQP-EGL', 208 'CtsDeqpTestCases.dEQP-GLES2', 209 'CtsDeqpTestCases.dEQP-GLES3', 210 'CtsDeqpTestCases.dEQP-GLES31', 211 'CtsDeqpTestCases.dEQP-VK.api', 212 'CtsDeqpTestCases.dEQP-VK.binding_model', 213 'CtsDeqpTestCases.dEQP-VK.clipping', 214 'CtsDeqpTestCases.dEQP-VK.compute', 215 'CtsDeqpTestCases.dEQP-VK.device_group', 216 'CtsDeqpTestCases.dEQP-VK.draw', 217 'CtsDeqpTestCases.dEQP-VK.dynamic_state', 218 'CtsDeqpTestCases.dEQP-VK.fragment_operations', 219 'CtsDeqpTestCases.dEQP-VK.geometry', 220 'CtsDeqpTestCases.dEQP-VK.glsl', 221 'CtsDeqpTestCases.dEQP-VK.image', 222 'CtsDeqpTestCases.dEQP-VK.info', 223 'CtsDeqpTestCases.dEQP-VK.memory', 224 'CtsDeqpTestCases.dEQP-VK.multiview', 225 'CtsDeqpTestCases.dEQP-VK.pipeline', 226 'CtsDeqpTestCases.dEQP-VK.protected_memory', 227 'CtsDeqpTestCases.dEQP-VK.query_pool', 228 'CtsDeqpTestCases.dEQP-VK.rasterization', 229 'CtsDeqpTestCases.dEQP-VK.renderpass', 230 'CtsDeqpTestCases.dEQP-VK.renderpass2', 231 'CtsDeqpTestCases.dEQP-VK.robustness', 232 'CtsDeqpTestCases.dEQP-VK.sparse_resources', 233 'CtsDeqpTestCases.dEQP-VK.spirv_assembly', 234 'CtsDeqpTestCases.dEQP-VK.ssbo', 235 'CtsDeqpTestCases.dEQP-VK.subgroups', 236 'CtsDeqpTestCases.dEQP-VK.subgroups.b', 237 'CtsDeqpTestCases.dEQP-VK.subgroups.s', 238 'CtsDeqpTestCases.dEQP-VK.subgroups.vote', 239 'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic', 240 'CtsDeqpTestCases.dEQP-VK.subgroups.clustered', 241 'CtsDeqpTestCases.dEQP-VK.subgroups.quad', 242 'CtsDeqpTestCases.dEQP-VK.synchronization', 243 'CtsDeqpTestCases.dEQP-VK.tessellation', 244 'CtsDeqpTestCases.dEQP-VK.texture', 245 'CtsDeqpTestCases.dEQP-VK.ubo', 246 'CtsDeqpTestCases.dEQP-VK.wsi', 247 'CtsDeqpTestCases.dEQP-VK.ycbcr' 248 ] 249} 250# TODO(haddowk,kinaba): Hack for b/138622686. Clean up later. 251CONFIG['EXTRA_SUBMODULE_OVERRIDE'] = { 252 'x86': { 253 'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic': [ 254 'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic.32', 255 'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic.64', 256 ] 257 } 258} 259 260CONFIG['EXTRA_COMMANDLINE'] = { 261 'CtsDeqpTestCases.dEQP-EGL': [ 262 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 263 '--test', 'dEQP-EGL.*' 264 ], 265 'CtsDeqpTestCases.dEQP-GLES2': [ 266 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 267 '--test', 'dEQP-GLES2.*' 268 ], 269 'CtsDeqpTestCases.dEQP-GLES3': [ 270 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 271 '--test', 'dEQP-GLES3.*' 272 ], 273 'CtsDeqpTestCases.dEQP-GLES31': [ 274 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 275 '--test', 'dEQP-GLES31.*' 276 ], 277 'CtsDeqpTestCases.dEQP-VK': [ 278 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 279 '--test', 'dEQP-VK.*' 280 ], 281 'CtsDeqpTestCases.dEQP-VK.api': [ 282 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 283 '--test', 'dEQP-VK.api.*' 284 ], 285 'CtsDeqpTestCases.dEQP-VK.binding_model': [ 286 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 287 '--test', 'dEQP-VK.binding_model.*' 288 ], 289 'CtsDeqpTestCases.dEQP-VK.clipping': [ 290 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 291 '--test', 'dEQP-VK.clipping.*' 292 ], 293 'CtsDeqpTestCases.dEQP-VK.compute': [ 294 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 295 '--test', 'dEQP-VK.compute.*' 296 ], 297 'CtsDeqpTestCases.dEQP-VK.device_group': [ 298 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 299 '--test', 'dEQP-VK.device_group*' # Not ending on .* like most others! 300 ], 301 'CtsDeqpTestCases.dEQP-VK.draw': [ 302 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 303 '--test', 'dEQP-VK.draw.*' 304 ], 305 'CtsDeqpTestCases.dEQP-VK.dynamic_state': [ 306 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 307 '--test', 'dEQP-VK.dynamic_state.*' 308 ], 309 'CtsDeqpTestCases.dEQP-VK.fragment_operations': [ 310 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 311 '--test', 'dEQP-VK.fragment_operations.*' 312 ], 313 'CtsDeqpTestCases.dEQP-VK.geometry': [ 314 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 315 '--test', 'dEQP-VK.geometry.*' 316 ], 317 'CtsDeqpTestCases.dEQP-VK.glsl': [ 318 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 319 '--test', 'dEQP-VK.glsl.*' 320 ], 321 'CtsDeqpTestCases.dEQP-VK.image': [ 322 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 323 '--test', 'dEQP-VK.image.*' 324 ], 325 'CtsDeqpTestCases.dEQP-VK.info': [ 326 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 327 '--test', 'dEQP-VK.info*' # Not ending on .* like most others! 328 ], 329 'CtsDeqpTestCases.dEQP-VK.memory': [ 330 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 331 '--test', 'dEQP-VK.memory.*' 332 ], 333 'CtsDeqpTestCases.dEQP-VK.multiview': [ 334 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 335 '--test', 'dEQP-VK.multiview.*' 336 ], 337 'CtsDeqpTestCases.dEQP-VK.pipeline': [ 338 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 339 '--test', 'dEQP-VK.pipeline.*' 340 ], 341 'CtsDeqpTestCases.dEQP-VK.protected_memory': [ 342 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 343 '--test', 'dEQP-VK.protected_memory.*' 344 ], 345 'CtsDeqpTestCases.dEQP-VK.query_pool': [ 346 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 347 '--test', 'dEQP-VK.query_pool.*' 348 ], 349 'CtsDeqpTestCases.dEQP-VK.rasterization': [ 350 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 351 '--test', 'dEQP-VK.rasterization.*' 352 ], 353 'CtsDeqpTestCases.dEQP-VK.renderpass': [ 354 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 355 '--test', 'dEQP-VK.renderpass.*' 356 ], 357 'CtsDeqpTestCases.dEQP-VK.renderpass2': [ 358 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 359 '--test', 'dEQP-VK.renderpass2.*' 360 ], 361 'CtsDeqpTestCases.dEQP-VK.robustness': [ 362 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 363 '--test', 'dEQP-VK.robustness.*' 364 ], 365 'CtsDeqpTestCases.dEQP-VK.sparse_resources': [ 366 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 367 '--test', 'dEQP-VK.sparse_resources.*' 368 ], 369 'CtsDeqpTestCases.dEQP-VK.spirv_assembly': [ 370 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 371 '--test', 'dEQP-VK.spirv_assembly.*' 372 ], 373 'CtsDeqpTestCases.dEQP-VK.ssbo': [ 374 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 375 '--test', 'dEQP-VK.ssbo.*' 376 ], 377 'CtsDeqpTestCases.dEQP-VK.subgroups': [ 378 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 379 '--test', 'dEQP-VK.subgroups.*' 380 ], 381 # Splitting VK.subgroups to smaller pieces to workaround b/138622686. 382 # TODO(kinaba,haddowk): remove them once the root cause is fixed, or 383 # reconsider the sharding strategy. 384 'CtsDeqpTestCases.dEQP-VK.subgroups.b': [ 385 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 386 '--test', 'dEQP-VK.subgroups.b*' 387 ], 388 'CtsDeqpTestCases.dEQP-VK.subgroups.s': [ 389 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 390 '--test', 'dEQP-VK.subgroups.s*' 391 ], 392 'CtsDeqpTestCases.dEQP-VK.subgroups.vote': [ 393 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 394 '--test', 'dEQP-VK.subgroups.vote#*' 395 ], 396 'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic': [ 397 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 398 '--test', 'dEQP-VK.subgroups.arithmetic#*' 399 ], 400 # TODO(haddowk,kinaba): Hack for b/138622686. Clean up later. 401 'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic.32': [ 402 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 403 '--test', 'dEQP-VK.subgroups.arithmetic#*', '--abi', 'x86' 404 ], 405 # TODO(haddowk,kinaba): Hack for b/138622686. Clean up later. 406 'CtsDeqpTestCases.dEQP-VK.subgroups.arithmetic.64': [ 407 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 408 '--test', 'dEQP-VK.subgroups.arithmetic#*', '--abi', 'x86_64' 409 ], 410 'CtsDeqpTestCases.dEQP-VK.subgroups.clustered': [ 411 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 412 '--test', 'dEQP-VK.subgroups.clustered#*' 413 ], 414 'CtsDeqpTestCases.dEQP-VK.subgroups.quad': [ 415 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 416 '--test', 'dEQP-VK.subgroups.quad#*' 417 ], 418 'CtsDeqpTestCases.dEQP-VK.synchronization': [ 419 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 420 '--test', 'dEQP-VK.synchronization.*' 421 ], 422 'CtsDeqpTestCases.dEQP-VK.tessellation': [ 423 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 424 '--test', 'dEQP-VK.tessellation.*' 425 ], 426 'CtsDeqpTestCases.dEQP-VK.texture': [ 427 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 428 '--test', 'dEQP-VK.texture.*' 429 ], 430 'CtsDeqpTestCases.dEQP-VK.ubo': [ 431 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 432 '--test', 'dEQP-VK.ubo.*' 433 ], 434 'CtsDeqpTestCases.dEQP-VK.wsi': [ 435 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 436 '--test', 'dEQP-VK.wsi.*' 437 ], 438 'CtsDeqpTestCases.dEQP-VK.ycbcr': [ 439 '--include-filter', 'CtsDeqpTestCases', '--module', 'CtsDeqpTestCases', 440 '--test', 'dEQP-VK.ycbcr.*' 441 ] 442} 443 444CONFIG['EXTRA_ATTRIBUTES'] = {} 445 446CONFIG['EXTRA_ARTIFACTS'] = {} 447CONFIG['PREREQUISITES'] = {} 448 449from generate_controlfiles_common import main 450 451if __name__ == '__main__': 452 main(CONFIG) 453