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