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""" 16Unittest constants. 17 18Unittest constants get their own file since they're used purely for testing and 19should not be combined with constants_defaults as part of normal atest 20operation. These constants are used commonly as test data so when updating a 21constant, do so with care and run all unittests to make sure nothing breaks. 22""" 23 24# pylint: disable=line-too-long 25 26import os 27 28from atest import constants 29 30from atest.test_finders import test_info 31from atest.test_runners import atest_tf_test_runner as atf_tr 32 33ROOT = '/' 34MODULE_DIR = 'foo/bar/jank' 35MODULE2_DIR = 'foo/bar/hello' 36MODULE_NAME = 'CtsJankDeviceTestCases' 37MODULE_CONFIG_NAME = 'CtsJankDeviceTestCases2' 38HOST_UNIT_TEST_NAME_1 = 'host_unit_test1' 39HOST_UNIT_TEST_NAME_2 = 'host_unit_test2' 40TYPO_MODULE_NAME = 'CtsJankDeviceTestCase' 41MODULE2_NAME = 'HelloWorldTests' 42CLASS_NAME = 'CtsDeviceJankUi' 43FULL_CLASS_NAME = 'android.jank.cts.ui.CtsDeviceJankUi' 44PACKAGE = 'android.jank.cts.ui' 45FIND_ONE = ROOT + 'foo/bar/jank/src/android/jank/cts/ui/CtsDeviceJankUi.java\n' 46FIND_TWO = ROOT + 'other/dir/test.java\n' + FIND_ONE 47FIND_PKG = ROOT + 'foo/bar/jank/src/android/jank/cts/ui\n' 48INT_NAME = 'example/reboot' 49GTF_INT_NAME = 'some/gtf_int_test' 50TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), 'unittest_data') 51TEST_CONFIG_DATA_DIR = os.path.join(TEST_DATA_DIR, 'test_config') 52 53INT_DIR = 'tf/contrib/res/config' 54GTF_INT_DIR = 'gtf/core/res/config' 55 56CONFIG_FILE = os.path.join(MODULE_DIR, constants.MODULE_CONFIG) 57EXTRA_CONFIG_FILE = os.path.join(MODULE_DIR, MODULE_CONFIG_NAME + '.xml') 58CONFIG2_FILE = os.path.join(MODULE2_DIR, constants.MODULE_CONFIG) 59JSON_FILE = 'module-info.json' 60MODULE_INFO_TARGET = '/out/%s' % JSON_FILE 61CC_DEP_FILE = 'module_bp_cc_deps.json' 62JAVA_DEP_FILE = 'module_bp_java_deps.json' 63MERGED_DEP_FILE = 'atest_merged_dep.json' 64MODULE_BUILD_TARGETS = {'tradefed-core', MODULE_INFO_TARGET, 65 'MODULES-IN-%s' % MODULE_DIR.replace('/', '-'), 66 'module-specific-target'} 67MODULE_BUILD_TARGETS_W_DALVIK = (MODULE_BUILD_TARGETS | 68 {'cts-dalvik-device-test-runner', 69 'cts-dalvik-host-test-runner', 70 'cts-tradefed'}) 71MODULE_BUILD_TARGETS2 = {'build-target2'} 72MODULE_DATA = {constants.TI_REL_CONFIG: CONFIG_FILE, 73 constants.TI_FILTER: frozenset()} 74MODULE_DATA2 = {constants.TI_REL_CONFIG: CONFIG_FILE, 75 constants.TI_FILTER: frozenset()} 76MODULE_DATA_W_CONFIG = {constants.TI_REL_CONFIG: EXTRA_CONFIG_FILE, 77 constants.TI_FILTER: frozenset()} 78MODULE_INFO = test_info.TestInfo(MODULE_NAME, 79 atf_tr.AtestTradefedTestRunner.NAME, 80 MODULE_BUILD_TARGETS, 81 MODULE_DATA) 82MODULE_INFO_W_DALVIK = test_info.TestInfo( 83 MODULE_NAME, 84 atf_tr.AtestTradefedTestRunner.NAME, 85 MODULE_BUILD_TARGETS_W_DALVIK, 86 MODULE_DATA, 87 module_class=[constants.MODULE_CLASS_JAVA_LIBRARIES]) 88MODULE_INFO_W_CONFIG = test_info.TestInfo(MODULE_CONFIG_NAME, 89 atf_tr.AtestTradefedTestRunner.NAME, 90 MODULE_BUILD_TARGETS, 91 MODULE_DATA_W_CONFIG) 92MODULE_INFO2 = test_info.TestInfo(MODULE2_NAME, 93 atf_tr.AtestTradefedTestRunner.NAME, 94 MODULE_BUILD_TARGETS2, 95 MODULE_DATA2) 96TEST_CONFIG_MODULE_INFO = test_info.TestInfo( 97 MODULE_CONFIG_NAME, 98 atf_tr.AtestTradefedTestRunner.NAME, 99 MODULE_BUILD_TARGETS, 100 MODULE_DATA_W_CONFIG) 101MODULE_INFO_HOST_1 = test_info.TestInfo(HOST_UNIT_TEST_NAME_1, 102 atf_tr.AtestTradefedTestRunner.NAME, 103 MODULE_BUILD_TARGETS, 104 MODULE_DATA) 105MODULE_INFO_HOST_2 = test_info.TestInfo(HOST_UNIT_TEST_NAME_2, 106 atf_tr.AtestTradefedTestRunner.NAME, 107 MODULE_BUILD_TARGETS, 108 MODULE_DATA) 109MODULE_INFOS = [MODULE_INFO] 110MODULE_INFOS2 = [MODULE_INFO, MODULE_INFO2] 111CLASS_FILTER = test_info.TestFilter(FULL_CLASS_NAME, frozenset()) 112CLASS_DATA = {constants.TI_REL_CONFIG: CONFIG_FILE, 113 constants.TI_FILTER: frozenset([CLASS_FILTER])} 114PACKAGE_FILTER = test_info.TestFilter(PACKAGE, frozenset()) 115PACKAGE_DATA = {constants.TI_REL_CONFIG: CONFIG_FILE, 116 constants.TI_FILTER: frozenset([PACKAGE_FILTER])} 117TEST_DATA_CONFIG = os.path.relpath(os.path.join(TEST_DATA_DIR, 118 constants.MODULE_CONFIG), ROOT) 119PATH_DATA = { 120 constants.TI_REL_CONFIG: TEST_DATA_CONFIG, 121 constants.TI_FILTER: frozenset([PACKAGE_FILTER])} 122EMPTY_PATH_DATA = { 123 constants.TI_REL_CONFIG: TEST_DATA_CONFIG, 124 constants.TI_FILTER: frozenset()} 125 126CLASS_BUILD_TARGETS = {'class-specific-target'} 127CLASS_INFO = test_info.TestInfo(MODULE_NAME, 128 atf_tr.AtestTradefedTestRunner.NAME, 129 CLASS_BUILD_TARGETS, 130 CLASS_DATA) 131CLASS_INFOS = [CLASS_INFO] 132 133CLASS_BUILD_TARGETS2 = {'class-specific-target2'} 134CLASS_DATA2 = {constants.TI_REL_CONFIG: CONFIG_FILE, 135 constants.TI_FILTER: frozenset([CLASS_FILTER])} 136CLASS_INFO2 = test_info.TestInfo(MODULE2_NAME, 137 atf_tr.AtestTradefedTestRunner.NAME, 138 CLASS_BUILD_TARGETS2, 139 CLASS_DATA2) 140CLASS_INFOS = [CLASS_INFO] 141CLASS_INFOS2 = [CLASS_INFO, CLASS_INFO2] 142PACKAGE_INFO = test_info.TestInfo(MODULE_NAME, 143 atf_tr.AtestTradefedTestRunner.NAME, 144 CLASS_BUILD_TARGETS, 145 PACKAGE_DATA) 146PATH_INFO = test_info.TestInfo(MODULE_NAME, 147 atf_tr.AtestTradefedTestRunner.NAME, 148 MODULE_BUILD_TARGETS, 149 PATH_DATA) 150EMPTY_PATH_INFO = test_info.TestInfo(MODULE_NAME, 151 atf_tr.AtestTradefedTestRunner.NAME, 152 MODULE_BUILD_TARGETS, 153 EMPTY_PATH_DATA) 154MODULE_CLASS_COMBINED_BUILD_TARGETS = MODULE_BUILD_TARGETS | CLASS_BUILD_TARGETS 155INT_CONFIG = os.path.join(INT_DIR, INT_NAME + '.xml') 156GTF_INT_CONFIG = os.path.join(GTF_INT_DIR, GTF_INT_NAME + '.xml') 157METHOD_NAME = 'method1' 158METHOD_FILTER = test_info.TestFilter(FULL_CLASS_NAME, frozenset([METHOD_NAME])) 159METHOD_INFO = test_info.TestInfo( 160 MODULE_NAME, 161 atf_tr.AtestTradefedTestRunner.NAME, 162 MODULE_BUILD_TARGETS, 163 data={constants.TI_FILTER: frozenset([METHOD_FILTER]), 164 constants.TI_REL_CONFIG: CONFIG_FILE}) 165METHOD2_NAME = 'method2' 166FLAT_METHOD_FILTER = test_info.TestFilter( 167 FULL_CLASS_NAME, frozenset([METHOD_NAME, METHOD2_NAME])) 168INT_INFO = test_info.TestInfo(INT_NAME, 169 atf_tr.AtestTradefedTestRunner.NAME, 170 set(), 171 data={constants.TI_REL_CONFIG: INT_CONFIG, 172 constants.TI_FILTER: frozenset()}) 173# Golden sample test filter for method under parameterized java. 174PARAMETERIZED_METHOD_FILTER = test_info.TestFilter( 175 FULL_CLASS_NAME, frozenset([METHOD_NAME + '*'])) 176PARAMETERIZED_METHOD_INFO = test_info.TestInfo( 177 MODULE_NAME, 178 atf_tr.AtestTradefedTestRunner.NAME, 179 MODULE_BUILD_TARGETS, 180 data={constants.TI_FILTER: frozenset([PARAMETERIZED_METHOD_FILTER]), 181 constants.TI_REL_CONFIG: CONFIG_FILE}) 182PARAMETERIZED_FLAT_METHOD_FILTER = test_info.TestFilter( 183 FULL_CLASS_NAME, frozenset([METHOD_NAME + '*', METHOD2_NAME + '*'])) 184PARAMETERIZED_FLAT_METHOD_INFO = test_info.TestInfo( 185 MODULE_NAME, 186 atf_tr.AtestTradefedTestRunner.NAME, 187 MODULE_BUILD_TARGETS, 188 data={constants.TI_FILTER: frozenset([PARAMETERIZED_FLAT_METHOD_FILTER]), 189 constants.TI_REL_CONFIG: CONFIG_FILE}) 190GTF_INT_INFO = test_info.TestInfo( 191 GTF_INT_NAME, 192 atf_tr.AtestTradefedTestRunner.NAME, 193 set(), 194 data={constants.TI_FILTER: frozenset(), 195 constants.TI_REL_CONFIG: GTF_INT_CONFIG}) 196 197# Sample test configurations in TEST_MAPPING file. 198TEST_MAPPING_TEST = {'name': MODULE_NAME, 'host': True} 199TEST_MAPPING_TEST_WITH_OPTION = { 200 'name': CLASS_NAME, 201 'options': [ 202 { 203 'arg1': 'val1' 204 }, 205 { 206 'arg2': '' 207 } 208 ] 209} 210TEST_MAPPING_TEST_WITH_OPTION_STR = '%s (arg1: val1, arg2:)' % CLASS_NAME 211TEST_MAPPING_TEST_WITH_BAD_OPTION = { 212 'name': CLASS_NAME, 213 'options': [ 214 { 215 'arg1': 'val1', 216 'arg2': '' 217 } 218 ] 219} 220TEST_MAPPING_TEST_WITH_BAD_HOST_VALUE = { 221 'name': CLASS_NAME, 222 'host': 'true' 223} 224# Constrants of cc test unittest 225FIND_CC_ONE = ROOT + 'foo/bt/hci/test/pf_test.cc\n' 226CC_MODULE_NAME = 'net_test_hci' 227CC_CLASS_NAME = 'PFTest' 228CC_MODULE_DIR = 'system/bt/hci' 229CC_CLASS_FILTER = test_info.TestFilter(CC_CLASS_NAME, frozenset()) 230CC_CONFIG_FILE = os.path.join(CC_MODULE_DIR, constants.MODULE_CONFIG) 231CC_MODULE_CLASS_DATA = {constants.TI_REL_CONFIG: CC_CONFIG_FILE, 232 constants.TI_FILTER: frozenset([CC_CLASS_FILTER])} 233CC_MODULE_CLASS_INFO = test_info.TestInfo(CC_MODULE_NAME, 234 atf_tr.AtestTradefedTestRunner.NAME, 235 CLASS_BUILD_TARGETS, CC_MODULE_CLASS_DATA) 236CC_MODULE2_DIR = 'foo/bar/hello' 237CC_MODULE2_NAME = 'hello_world_test' 238CC_PATH = 'pf_test.cc' 239CC_FIND_ONE = ROOT + 'system/bt/hci/test/pf_test.cc:TEST_F(PFTest, test1) {\n' + \ 240 ROOT + 'system/bt/hci/test/pf_test.cc:TEST_F(PFTest, test2) {\n' 241CC_FIND_TWO = ROOT + 'other/dir/test.cpp:TEST(PFTest, test_f) {\n' + \ 242 ROOT + 'other/dir/test.cpp:TEST(PFTest, test_p) {\n' 243CC_CONFIG2_FILE = os.path.join(CC_MODULE2_DIR, constants.MODULE_CONFIG) 244CC_CLASS_FILTER = test_info.TestFilter(CC_CLASS_NAME+".*", frozenset()) 245CC_CLASS_DATA = {constants.TI_REL_CONFIG: CC_CONFIG_FILE, 246 constants.TI_FILTER: frozenset([CC_CLASS_FILTER])} 247CC_CLASS_INFO = test_info.TestInfo(CC_MODULE_NAME, 248 atf_tr.AtestTradefedTestRunner.NAME, 249 CLASS_BUILD_TARGETS, CC_CLASS_DATA) 250CC_METHOD_NAME = 'test1' 251CC_METHOD2_NAME = 'test2' 252CC_METHOD_FILTER = test_info.TestFilter(CC_CLASS_NAME+"."+CC_METHOD_NAME, 253 frozenset()) 254CC_METHOD2_FILTER = test_info.TestFilter(CC_CLASS_NAME+"."+CC_METHOD_NAME+ \ 255 ":"+CC_CLASS_NAME+"."+CC_METHOD2_NAME, 256 frozenset()) 257CC_METHOD3_FILTER = test_info.TestFilter(CC_CLASS_NAME, 258 frozenset([CC_METHOD_NAME])) 259CC_METHOD_INFO = test_info.TestInfo( 260 CC_MODULE_NAME, 261 atf_tr.AtestTradefedTestRunner.NAME, 262 MODULE_BUILD_TARGETS, 263 data={constants.TI_REL_CONFIG: CC_CONFIG_FILE, 264 constants.TI_FILTER: frozenset([CC_METHOD_FILTER])}) 265CC_METHOD2_INFO = test_info.TestInfo( 266 CC_MODULE_NAME, 267 atf_tr.AtestTradefedTestRunner.NAME, 268 MODULE_BUILD_TARGETS, 269 data={constants.TI_REL_CONFIG: CC_CONFIG_FILE, 270 constants.TI_FILTER: frozenset([CC_METHOD2_FILTER])}) 271CC_METHOD3_INFO = test_info.TestInfo( 272 CC_MODULE_NAME, 273 atf_tr.AtestTradefedTestRunner.NAME, 274 MODULE_BUILD_TARGETS, 275 data={constants.TI_REL_CONFIG: CC_CONFIG_FILE, 276 constants.TI_FILTER: frozenset([CC_METHOD3_FILTER])}) 277CC_PATH_DATA = { 278 constants.TI_REL_CONFIG: TEST_DATA_CONFIG, 279 constants.TI_FILTER: frozenset()} 280CC_PATH_INFO = test_info.TestInfo(CC_MODULE_NAME, 281 atf_tr.AtestTradefedTestRunner.NAME, 282 MODULE_BUILD_TARGETS, 283 CC_PATH_DATA) 284CC_PATH_DATA2 = {constants.TI_REL_CONFIG: CC_CONFIG_FILE, 285 constants.TI_FILTER: frozenset()} 286CC_PATH_INFO2 = test_info.TestInfo(CC_MODULE_NAME, 287 atf_tr.AtestTradefedTestRunner.NAME, 288 CLASS_BUILD_TARGETS, CC_PATH_DATA2) 289CTS_INT_DIR = 'test/suite_harness/tools/cts-tradefed/res/config' 290# Constrants of java, kt, cc, cpp test_find_class_file() unittest 291FIND_PATH_TESTCASE_JAVA = 'hello_world_test' 292FIND_PATH_FILENAME_CC = 'hello_world_test' 293FIND_PATH_TESTCASE_CC = 'HelloWorldTest' 294FIND_PATH_FOLDER = 'class_file_path_testing' 295FIND_PATH = os.path.join(TEST_DATA_DIR, FIND_PATH_FOLDER) 296 297DEFAULT_INSTALL_PATH = ['/path/to/install'] 298# Module names 299MOD1 = 'mod1' 300MOD2 = 'mod2' 301MOD3 = 'mod3' 302FUZZY_MOD1 = 'Mod1' 303FUZZY_MOD2 = 'nod2' 304FUZZY_MOD3 = 'mod3mod3' 305 306INDEX_DIR = os.path.join('/tmp', 'indexes') 307LOCATE_CACHE = os.path.join(INDEX_DIR, 'plocate.db') 308LOCATE_CACHE_MD5 = os.path.join(INDEX_DIR, 'plocate.md5') 309CLASS_INDEX = os.path.join(INDEX_DIR, 'classes.idx') 310QCLASS_INDEX = os.path.join(INDEX_DIR, 'fqcn.idx') 311CC_CLASS_INDEX = os.path.join(INDEX_DIR, 'cc_classes.idx') 312PACKAGE_INDEX = os.path.join(INDEX_DIR, 'packages.idx') 313MODULE_INFO_MD5 = os.path.join(INDEX_DIR, 'module-info.md5') 314 315# TF's log dir 316TEST_INFO_DIR = '/tmp/atest_run_1510085893_pi_Nbi' 317 318# Constants for get_test_config unit tests. 319ANDTEST_CONFIG_PATH = 'my/android/config/path' 320SINGLE_CONFIG_PATH = 'my/single/config/path' 321MULTIPLE_CONFIG_PATH = 'my/multiple/config/path' 322MAIN_CONFIG_NAME = 'main_test_config.xml' 323SINGLE_CONFIG_NAME = 'test_config.xml' 324SUB_CONFIG_NAME_2 = 'Multiple2.xml' 325