| #!/usr/bin/env python2 |
| # Copyright 2016 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import collections |
| |
| from generate_controlfiles_common import main |
| |
| |
| _ALL = 'all' |
| |
| CONFIG = {} |
| |
| CONFIG['TEST_NAME'] = 'cheets_CTS_Instant' |
| CONFIG['DOC_TITLE'] = \ |
| 'Android Compatibility Test Suite for Instant Apps (CTS Instant)' |
| CONFIG['MOBLAB_SUITE_NAME'] = 'suite:cts_P, suite:cts' |
| CONFIG['COPYRIGHT_YEAR'] = 2018 |
| CONFIG['AUTHKEY'] = '' |
| |
| CONFIG['LARGE_MAX_RESULT_SIZE'] = 1000 * 1024 |
| CONFIG['NORMAL_MAX_RESULT_SIZE'] = 500 * 1024 |
| |
| CONFIG['TRADEFED_CTS_COMMAND'] = 'cts-instant' |
| CONFIG['TRADEFED_RETRY_COMMAND'] = 'retry' |
| CONFIG['TRADEFED_DISABLE_REBOOT'] = False |
| CONFIG['TRADEFED_DISABLE_REBOOT_ON_COLLECTION'] = True |
| CONFIG['TRADEFED_MAY_SKIP_DEVICE_INFO'] = False |
| CONFIG['TRADEFED_EXECUTABLE_PATH'] = \ |
| 'android-cts_instant/tools/cts-instant-tradefed' |
| CONFIG['TRADEFED_IGNORE_BUSINESS_LOGIC_FAILURE'] = False |
| |
| CONFIG['INTERNAL_SUITE_NAMES'] = ['suite:arc-cts'] |
| CONFIG['QUAL_SUITE_NAMES'] = ['suite:arc-cts-qual'] |
| |
| # CTS Instant is relatively small (= shorter turnaround time), and very |
| # unlikely to fail alone (= regression almost always caught by the |
| # corresponding CTS module.) For now we don't generate this type of control |
| # files. |
| CONFIG['CONTROLFILE_TEST_FUNCTION_NAME'] = 'run_TS' |
| CONFIG['CONTROLFILE_WRITE_SIMPLE_QUAL_AND_REGRESS'] = True |
| CONFIG['CONTROLFILE_WRITE_CAMERA'] = False |
| CONFIG['CONTROLFILE_WRITE_EXTRA'] = False |
| |
| # The dashboard suppresses upload to APFE for GS directories (based on autotest |
| # tag) that contain 'tradefed-run-collect-tests'. b/119640440 |
| # Do not change the name/tag without adjusting the dashboard. |
| _COLLECT = 'tradefed-run-collect-tests-only-internal' |
| _PUBLIC_COLLECT = 'tradefed-run-collect-tests-only' |
| |
| # Unlike regular CTS we have to target the native ABI only. |
| CONFIG['LAB_DEPENDENCY'] = { |
| 'x86': ['cts_cpu_x86'], |
| 'arm': ['cts_cpu_arm'] |
| } |
| |
| CONFIG['CTS_JOB_RETRIES_IN_PUBLIC'] = 1 |
| CONFIG['CTS_QUAL_RETRIES'] = 9 |
| CONFIG['CTS_MAX_RETRIES'] = {} |
| |
| # TODO(ihf): Update timeouts once P is more stable. |
| # Timeout in hours. |
| CONFIG['CTS_TIMEOUT_DEFAULT'] = 1.0 |
| CONFIG['CTS_TIMEOUT'] = { |
| _ALL: 5.0, |
| _COLLECT: 2.0, |
| _PUBLIC_COLLECT: 2.0, |
| 'CtsFileSystemTestCases': 2.5, |
| } |
| |
| # Any test that runs as part as blocking BVT needs to be stable and fast. For |
| # this reason we enforce a tight timeout on these modules/jobs. |
| # Timeout in hours. (0.1h = 6 minutes) |
| CONFIG['BVT_TIMEOUT'] = 0.1 |
| |
| CONFIG['QUAL_TIMEOUT'] = 5 |
| |
| # Split tests so that large and flaky tests are distributed evenly. |
| CONFIG['QUAL_BOOKMARKS'] = [ |
| 'A', # A bookend to simplify partition algorithm. |
| # CtsAccessibility, CtsAutoFill |
| 'CtsBackgroundRestrictionsTestCases', |
| # CtsMedia, CtsPrint |
| 'CtsSampleDeviceTestCases', |
| # CtsView, CtsWidget |
| 'zzzzz' # A bookend to simplify algorithm. |
| ] |
| |
| CONFIG['SMOKE'] = [ |
| # TODO(b/113641546): add to CQ/PFQ when it's ready. |
| # 'CtsAccountManagerTestCases', |
| ] |
| |
| CONFIG['BVT_ARC'] = [ |
| # TODO(b/113641546): add to CQ/PFQ when it's ready. |
| # 'CtsPermission2TestCases', |
| ] |
| |
| CONFIG['BVT_PERBUILD'] = [ |
| 'CtsAccountManagerTestCases', |
| 'CtsPermission2TestCases', |
| 'CtsUiAutomationTestCases', |
| 'CtsUsbTests', |
| ] |
| |
| CONFIG['NEEDS_POWER_CYCLE'] = [ |
| ] |
| |
| CONFIG['HARDWARE_DEPENDENT_MODULES'] = [ |
| ] |
| |
| # The suite is divided based on the run-time hint in the *.config file. |
| CONFIG['VMTEST_INFO_SUITES'] = collections.OrderedDict() |
| |
| # Modules that are known to download and/or push media file assets. |
| CONFIG['MEDIA_MODULES'] = [] |
| CONFIG['NEEDS_PUSH_MEDIA'] = [] |
| |
| CONFIG['ENABLE_DEFAULT_APPS'] = [] |
| |
| # Run `eject` for (and only for) each device with RM=1 in lsblk output. |
| _EJECT_REMOVABLE_DISK_COMMAND = ( |
| "\'lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject\'") |
| |
| # Preconditions applicable to public and internal tests. |
| CONFIG['PRECONDITION'] = {} |
| CONFIG['LOGIN_PRECONDITION'] = { |
| 'CtsAppSecurityHostTestCases': [_EJECT_REMOVABLE_DISK_COMMAND], |
| 'CtsJobSchedulerTestCases': [_EJECT_REMOVABLE_DISK_COMMAND], |
| 'CtsOsTestCases': [_EJECT_REMOVABLE_DISK_COMMAND], |
| 'CtsProviderTestCases': [_EJECT_REMOVABLE_DISK_COMMAND], |
| _ALL: [_EJECT_REMOVABLE_DISK_COMMAND], |
| } |
| |
| # Preconditions applicable to public tests. |
| CONFIG['PUBLIC_PRECONDITION'] = {} |
| |
| CONFIG['PUBLIC_DEPENDENCIES'] = { |
| 'CtsCameraTestCases': ['lighting'], |
| 'CtsMediaTestCases': ['noloopback'], |
| } |
| |
| # This information is changed based on regular analysis of the failure rate on |
| # partner moblabs. |
| CONFIG['PUBLIC_MODULE_RETRY_COUNT'] = { |
| 'CtsNetTestCases': 10, |
| 'CtsSecurityHostTestCases': 10, |
| 'CtsUsageStatsTestCases': 10, |
| 'CtsFileSystemTestCases': 10, |
| 'CtsBluetoothTestCases': 10, |
| _PUBLIC_COLLECT: 0, |
| } |
| |
| CONFIG['PUBLIC_OVERRIDE_TEST_PRIORITY'] = { |
| _PUBLIC_COLLECT: 70, |
| } |
| |
| # This information is changed based on regular analysis of the job run time on |
| # partner moblabs. |
| |
| CONFIG['OVERRIDE_TEST_LENGTH'] = { |
| 'CtsDeqpTestCases': 4, # LONG |
| 'CtsMediaTestCases': 4, |
| 'CtsMediaStressTestCases': 4, |
| 'CtsSecurityTestCases': 4, |
| 'CtsCameraTestCases': 4, |
| _ALL: 4, |
| # Even though collect tests doesn't run very long, it must be the very first |
| # job executed inside of the suite. Hence it is the only 'LENGTHY' test. |
| _COLLECT: 5, # LENGTHY |
| } |
| |
| CONFIG['DISABLE_LOGCAT_ON_FAILURE'] = set() |
| CONFIG['EXTRA_MODULES'] = {} |
| CONFIG['PUBLIC_EXTRA_MODULES'] = {} |
| CONFIG['EXTRA_SUBMODULE_OVERRIDE'] = {} |
| |
| CONFIG['EXTRA_COMMANDLINE'] = {} |
| |
| CONFIG['EXTRA_ATTRIBUTES'] = { |
| 'tradefed-run-collect-tests-only-internal': ['suite:arc-cts'], |
| } |
| |
| CONFIG['EXTRA_ARTIFACTS'] = {} |
| |
| CONFIG['PREREQUISITES'] = {} |
| |
| if __name__ == '__main__': |
| main(CONFIG) |