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