1 # Copyright 2018, The Android Open Source Project 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with the License. 5 # You may obtain a copy of the License at 6 # 7 # http://www.apache.org/licenses/LICENSE-2.0 8 # 9 # Unless required by applicable law or agreed to in writing, software 10 # distributed under the License is distributed on an "AS IS" BASIS, 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 # See the License for the specific language governing permissions and 13 # limitations under the License. 14 15 """ 16 Unittest constants. 17 18 Unittest constants get their own file since they're used purely for testing and 19 should not be combined with constants_defaults as part of normal atest 20 operation. These constants are used commonly as test data so when updating a 21 constant, do so with care and run all unittests to make sure nothing breaks. 22 """ 23 24 import os 25 26 import constants 27 from test_finders import test_info 28 from test_runners import atest_tf_test_runner as atf_tr 29 30 ROOT = '/' 31 MODULE_DIR = 'foo/bar/jank' 32 MODULE2_DIR = 'foo/bar/hello' 33 MODULE_NAME = 'CtsJankDeviceTestCases' 34 MODULE2_NAME = 'HelloWorldTests' 35 CLASS_NAME = 'CtsDeviceJankUi' 36 FULL_CLASS_NAME = 'android.jank.cts.ui.CtsDeviceJankUi' 37 PACKAGE = 'android.jank.cts.ui' 38 FIND_ONE = ROOT + 'foo/bar/jank/src/android/jank/cts/ui/CtsDeviceJankUi.java\n' 39 FIND_TWO = ROOT + 'other/dir/test.java\n' + FIND_ONE 40 FIND_PKG = ROOT + 'foo/bar/jank/src/android/jank/cts/ui\n' 41 INT_NAME = 'example/reboot' 42 GTF_INT_NAME = 'some/gtf_int_test' 43 TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), 'unittest_data') 44 RELATIVE_TEST_DATA_DIR = 'relative_test_data_dir' 45 46 INT_DIR = 'tf/contrib/res/config' 47 GTF_INT_DIR = 'gtf/core/res/config' 48 49 CONFIG_FILE = os.path.join(MODULE_DIR, constants.MODULE_CONFIG) 50 CONFIG2_FILE = os.path.join(MODULE2_DIR, constants.MODULE_CONFIG) 51 JSON_FILE = 'module-info.json' 52 MODULE_INFO_TARGET = '/out/%s' % JSON_FILE 53 MODULE_BUILD_TARGETS = {'tradefed-core', MODULE_INFO_TARGET, 54 'MODULES-IN-%s' % MODULE_DIR.replace('/', '-'), 55 'module-specific-target'} 56 MODULE_DATA = {constants.TI_REL_CONFIG: CONFIG_FILE, 57 constants.TI_FILTER: frozenset()} 58 MODULE_INFO = test_info.TestInfo(MODULE_NAME, 59 atf_tr.AtestTradefedTestRunner.NAME, 60 MODULE_BUILD_TARGETS, 61 MODULE_DATA) 62 CLASS_FILTER = test_info.TestFilter(FULL_CLASS_NAME, frozenset()) 63 CLASS_DATA = {constants.TI_REL_CONFIG: CONFIG_FILE, 64 constants.TI_FILTER: frozenset([CLASS_FILTER])} 65 PACKAGE_FILTER = test_info.TestFilter(PACKAGE, frozenset()) 66 PACKAGE_DATA = {constants.TI_REL_CONFIG: CONFIG_FILE, 67 constants.TI_FILTER: frozenset([PACKAGE_FILTER])} 68 TEST_DATA_CONFIG = os.path.relpath(os.path.join(TEST_DATA_DIR, 69 constants.MODULE_CONFIG), ROOT) 70 PATH_DATA = { 71 constants.TI_REL_CONFIG: TEST_DATA_CONFIG, 72 constants.TI_FILTER: frozenset([PACKAGE_FILTER])} 73 EMPTY_PATH_DATA = { 74 constants.TI_REL_CONFIG: TEST_DATA_CONFIG, 75 constants.TI_FILTER: frozenset()} 76 77 CLASS_BUILD_TARGETS = {'class-specific-target'} 78 CLASS_INFO = test_info.TestInfo(MODULE_NAME, 79 atf_tr.AtestTradefedTestRunner.NAME, 80 CLASS_BUILD_TARGETS, 81 CLASS_DATA) 82 PACKAGE_INFO = test_info.TestInfo(MODULE_NAME, 83 atf_tr.AtestTradefedTestRunner.NAME, 84 CLASS_BUILD_TARGETS, 85 PACKAGE_DATA) 86 PATH_INFO = test_info.TestInfo(MODULE_NAME, 87 atf_tr.AtestTradefedTestRunner.NAME, 88 MODULE_BUILD_TARGETS, 89 PATH_DATA) 90 EMPTY_PATH_INFO = test_info.TestInfo(MODULE_NAME, 91 atf_tr.AtestTradefedTestRunner.NAME, 92 MODULE_BUILD_TARGETS, 93 EMPTY_PATH_DATA) 94 MODULE_CLASS_COMBINED_BUILD_TARGETS = MODULE_BUILD_TARGETS | CLASS_BUILD_TARGETS 95 INT_CONFIG = os.path.join(INT_DIR, INT_NAME + '.xml') 96 GTF_INT_CONFIG = os.path.join(GTF_INT_DIR, GTF_INT_NAME + '.xml') 97 METHOD_NAME = 'method1' 98 METHOD_FILTER = test_info.TestFilter(FULL_CLASS_NAME, frozenset([METHOD_NAME])) 99 METHOD_INFO = test_info.TestInfo( 100 MODULE_NAME, 101 atf_tr.AtestTradefedTestRunner.NAME, 102 MODULE_BUILD_TARGETS, 103 data={constants.TI_FILTER: frozenset([METHOD_FILTER]), 104 constants.TI_REL_CONFIG: CONFIG_FILE}) 105 METHOD2_NAME = 'method2' 106 FLAT_METHOD_FILTER = test_info.TestFilter( 107 FULL_CLASS_NAME, frozenset([METHOD_NAME, METHOD2_NAME])) 108 INT_INFO = test_info.TestInfo(INT_NAME, 109 atf_tr.AtestTradefedTestRunner.NAME, 110 set(), 111 data={constants.TI_REL_CONFIG: INT_CONFIG, 112 constants.TI_FILTER: frozenset()}) 113 GTF_INT_INFO = test_info.TestInfo( 114 GTF_INT_NAME, 115 atf_tr.AtestTradefedTestRunner.NAME, 116 set(), 117 data={constants.TI_FILTER: frozenset(), 118 constants.TI_REL_CONFIG: GTF_INT_CONFIG}) 119 120 # Sample test configurations in TEST_MAPPING file. 121 TEST_MAPPING_TEST = {'name': MODULE_NAME} 122 TEST_MAPPING_TEST_WITH_OPTION = { 123 'name': CLASS_NAME, 124 'options': [ 125 { 126 'arg1': 'val1' 127 }, 128 { 129 'arg2': '' 130 } 131 ] 132 } 133 TEST_MAPPING_TEST_WITH_OPTION_STR = '%s (arg1: val1, arg2:)' % CLASS_NAME 134 TEST_MAPPING_TEST_WITH_BAD_OPTION = { 135 'name': CLASS_NAME, 136 'options': [ 137 { 138 'arg1': 'val1', 139 'arg2': '' 140 } 141 ] 142 } 143