1 target_config = { 2 3 # Configuration syntax: 4 # 5 # Required keys: (Use one or more of these) 6 # * golem - specify a golem machine-type to build, e.g. android-armv8 7 # (uses art/tools/golem/build-target.sh) 8 # * make - specify a make target to build, e.g. build-art-host 9 # * run-test - runs the tests in art/test/ directory with testrunner.py, 10 # specify a list of arguments to pass to testrunner.py 11 # 12 # Optional keys: (Use any of these) 13 # * env - Add additional environment variable to the current environment. 14 # 15 # *** IMPORTANT ***: 16 # This configuration is used by the android build server. Targets must not be renamed 17 # or removed. 18 # 19 20 ########################################## 21 22 # General ART configurations. 23 # Calls make and testrunner both. 24 25 'art-test' : { 26 'make' : 'test-art-host-gtest', 27 'run-test' : [], 28 'env' : { 29 'ART_USE_READ_BARRIER' : 'true' 30 } 31 }, 32 33 'art-test-javac' : { 34 'run-test' : ['--jvm'] 35 }, 36 37 # ART run-test configurations 38 # (calls testrunner which builds and then runs the test targets) 39 40 'art-ndebug' : { 41 'run-test' : ['--ndebug'], 42 'env' : { 43 'ART_USE_READ_BARRIER' : 'true' 44 } 45 }, 46 'art-interpreter' : { 47 'run-test' : ['--interpreter'], 48 'env' : { 49 'ART_USE_READ_BARRIER' : 'true' 50 } 51 }, 52 'art-interpreter-access-checks' : { 53 'run-test' : ['--interp-ac'], 54 'env' : { 55 'ART_USE_READ_BARRIER' : 'true' 56 } 57 }, 58 'art-jit' : { 59 'run-test' : ['--jit'], 60 'env' : { 61 'ART_USE_READ_BARRIER' : 'true' 62 } 63 }, 64 'art-pictest' : { 65 'run-test' : ['--pictest', 66 '--optimizing'], 67 'env' : { 68 'ART_USE_READ_BARRIER' : 'true' 69 } 70 }, 71 'art-gcstress-gcverify': { 72 'run-test': ['--gcstress', 73 '--gcverify'], 74 'env' : { 75 'ART_USE_READ_BARRIER' : 'false', 76 'ART_DEFAULT_GC_TYPE' : 'SS' 77 } 78 }, 79 'art-interpreter-gcstress' : { 80 'run-test' : ['--interpreter', 81 '--gcstress'], 82 'env' : { 83 'ART_USE_READ_BARRIER' : 'false', 84 'ART_DEFAULT_GC_TYPE' : 'SS' 85 } 86 }, 87 'art-optimizing-gcstress' : { 88 'run-test' : ['--gcstress', 89 '--optimizing'], 90 'env' : { 91 'ART_USE_READ_BARRIER' : 'false', 92 'ART_DEFAULT_GC_TYPE' : 'SS' 93 } 94 }, 95 'art-jit-gcstress' : { 96 'run-test' : ['--jit', 97 '--gcstress'], 98 'env' : { 99 'ART_USE_READ_BARRIER' : 'false', 100 'ART_DEFAULT_GC_TYPE' : 'SS' 101 } 102 }, 103 'art-read-barrier' : { 104 'run-test': ['--interpreter', 105 '--optimizing'], 106 'env' : { 107 'ART_USE_READ_BARRIER' : 'true', 108 'ART_HEAP_POISONING' : 'true' 109 } 110 }, 111 'art-read-barrier-gcstress' : { 112 'run-test' : ['--interpreter', 113 '--optimizing', 114 '--gcstress'], 115 'env' : { 116 'ART_USE_READ_BARRIER' : 'true', 117 'ART_HEAP_POISONING' : 'true' 118 } 119 }, 120 'art-read-barrier-table-lookup' : { 121 'run-test' : ['--interpreter', 122 '--optimizing'], 123 'env' : { 124 'ART_USE_READ_BARRIER' : 'true', 125 'ART_READ_BARRIER_TYPE' : 'TABLELOOKUP', 126 'ART_HEAP_POISONING' : 'true' 127 } 128 }, 129 'art-debug-gc' : { 130 'run-test' : ['--interpreter', 131 '--optimizing'], 132 'env' : { 133 'ART_TEST_DEBUG_GC' : 'true', 134 'ART_USE_READ_BARRIER' : 'false' 135 } 136 }, 137 'art-ss-gc' : { 138 'run-test' : ['--interpreter', 139 '--optimizing', 140 '--jit'], 141 'env' : { 142 'ART_DEFAULT_GC_TYPE' : 'SS', 143 'ART_USE_READ_BARRIER' : 'false' 144 } 145 }, 146 'art-gss-gc' : { 147 'run-test' : ['--interpreter', 148 '--optimizing', 149 '--jit'], 150 'env' : { 151 'ART_DEFAULT_GC_TYPE' : 'GSS', 152 'ART_USE_READ_BARRIER' : 'false' 153 } 154 }, 155 'art-ss-gc-tlab' : { 156 'run-test' : ['--interpreter', 157 '--optimizing', 158 '--jit'], 159 'env' : { 160 'ART_DEFAULT_GC_TYPE' : 'SS', 161 'ART_USE_TLAB' : 'true', 162 'ART_USE_READ_BARRIER' : 'false' 163 } 164 }, 165 'art-gss-gc-tlab' : { 166 'run-test' : ['--interpreter', 167 '--optimizing', 168 '--jit'], 169 'env' : { 170 'ART_DEFAULT_GC_TYPE' : 'GSS', 171 'ART_USE_TLAB' : 'true', 172 'ART_USE_READ_BARRIER' : 'false' 173 } 174 }, 175 'art-tracing' : { 176 'run-test' : ['--trace'], 177 'env' : { 178 'ART_USE_READ_BARRIER' : 'true' 179 } 180 }, 181 'art-interpreter-tracing' : { 182 'run-test' : ['--interpreter', 183 '--trace'], 184 'env' : { 185 'ART_USE_READ_BARRIER' : 'true', 186 } 187 }, 188 'art-forcecopy' : { 189 'run-test' : ['--forcecopy'], 190 'env' : { 191 'ART_USE_READ_BARRIER' : 'true', 192 } 193 }, 194 'art-no-prebuild' : { 195 'run-test' : ['--no-prebuild'], 196 'env' : { 197 'ART_USE_READ_BARRIER' : 'true', 198 } 199 }, 200 'art-no-image' : { 201 'run-test' : ['--no-image'], 202 'env' : { 203 'ART_USE_READ_BARRIER' : 'true', 204 } 205 }, 206 'art-interpreter-no-image' : { 207 'run-test' : ['--interpreter', 208 '--no-image'], 209 'env' : { 210 'ART_USE_READ_BARRIER' : 'true', 211 } 212 }, 213 'art-relocate-no-patchoat' : { 214 'run-test' : ['--relocate-npatchoat'], 215 'env' : { 216 'ART_USE_READ_BARRIER' : 'true', 217 } 218 }, 219 'art-no-dex2oat' : { 220 'run-test' : ['--no-dex2oat'], 221 'env' : { 222 'ART_USE_READ_BARRIER' : 'true', 223 } 224 }, 225 'art-heap-poisoning' : { 226 'run-test' : ['--interpreter', 227 '--optimizing', 228 '--cdex-none'], 229 'env' : { 230 'ART_USE_READ_BARRIER' : 'false', 231 'ART_HEAP_POISONING' : 'true', 232 # Disable compact dex to get coverage of standard dex file usage. 233 'ART_DEFAULT_COMPACT_DEX_LEVEL' : 'none' 234 } 235 }, 236 'art-preopt' : { 237 # This test configuration is intended to be representative of the case 238 # of preopted apps, which are precompiled compiled pic against an 239 # unrelocated image, then used with a relocated image. 240 'run-test' : ['--pictest', 241 '--prebuild', 242 '--relocate', 243 '--jit'], 244 'env' : { 245 'ART_USE_READ_BARRIER' : 'true' 246 } 247 }, 248 249 # ART gtest configurations 250 # (calls make 'target' which builds and then runs the gtests). 251 252 'art-gtest' : { 253 'make' : 'test-art-host-gtest', 254 'env' : { 255 'ART_USE_READ_BARRIER' : 'true' 256 } 257 }, 258 'art-gtest-read-barrier': { 259 'make' : 'test-art-host-gtest', 260 'env' : { 261 'ART_USE_READ_BARRIER' : 'true', 262 'ART_HEAP_POISONING' : 'true' 263 } 264 }, 265 'art-gtest-read-barrier-table-lookup': { 266 'make' : 'test-art-host-gtest', 267 'env': { 268 'ART_USE_READ_BARRIER' : 'true', 269 'ART_READ_BARRIER_TYPE' : 'TABLELOOKUP', 270 'ART_HEAP_POISONING' : 'true' 271 } 272 }, 273 'art-gtest-ss-gc': { 274 'make' : 'test-art-host-gtest', 275 'env': { 276 'ART_DEFAULT_GC_TYPE' : 'SS', 277 'ART_USE_READ_BARRIER' : 'false', 278 # Disable compact dex to get coverage of standard dex file usage. 279 'ART_DEFAULT_COMPACT_DEX_LEVEL' : 'none' 280 } 281 }, 282 'art-gtest-gss-gc': { 283 'make' : 'test-art-host-gtest', 284 'env' : { 285 'ART_DEFAULT_GC_TYPE' : 'GSS', 286 'ART_USE_READ_BARRIER' : 'false' 287 } 288 }, 289 'art-gtest-ss-gc-tlab': { 290 'make' : 'test-art-host-gtest', 291 'env': { 292 'ART_DEFAULT_GC_TYPE' : 'SS', 293 'ART_USE_TLAB' : 'true', 294 'ART_USE_READ_BARRIER' : 'false', 295 } 296 }, 297 'art-gtest-gss-gc-tlab': { 298 'make' : 'test-art-host-gtest', 299 'env': { 300 'ART_DEFAULT_GC_TYPE' : 'GSS', 301 'ART_USE_TLAB' : 'true', 302 'ART_USE_READ_BARRIER' : 'false' 303 } 304 }, 305 'art-gtest-debug-gc' : { 306 'make' : 'test-art-host-gtest', 307 'env' : { 308 'ART_TEST_DEBUG_GC' : 'true', 309 'ART_USE_READ_BARRIER' : 'false' 310 } 311 }, 312 'art-gtest-valgrind32': { 313 # Disabled: x86 valgrind does not understand SSE4.x 314 # 'make' : 'valgrind-test-art-host32', 315 'env': { 316 'ART_USE_READ_BARRIER' : 'false' 317 } 318 }, 319 'art-gtest-valgrind64': { 320 'make' : 'valgrind-test-art-host64', 321 'env': { 322 'ART_USE_READ_BARRIER' : 'false' 323 } 324 }, 325 326 # ASAN (host) configurations. 327 328 # These configurations need detect_leaks=0 to work in non-setup environments like build bots, 329 # as our build tools leak. b/37751350 330 331 'art-gtest-asan': { 332 'make' : 'test-art-host-gtest', 333 'env': { 334 'SANITIZE_HOST' : 'address', 335 'ASAN_OPTIONS' : 'detect_leaks=0' 336 } 337 }, 338 'art-asan': { 339 'run-test' : ['--interpreter', 340 '--optimizing', 341 '--jit'], 342 'env': { 343 'SANITIZE_HOST' : 'address', 344 'ASAN_OPTIONS' : 'detect_leaks=0' 345 } 346 }, 347 'art-gtest-heap-poisoning': { 348 'make' : 'test-art-host-gtest', 349 'env' : { 350 'ART_HEAP_POISONING' : 'true', 351 'ART_USE_READ_BARRIER' : 'false', 352 'SANITIZE_HOST' : 'address', 353 'ASAN_OPTIONS' : 'detect_leaks=0' 354 } 355 }, 356 357 # ART Golem build targets used by go/lem (continuous ART benchmarking), 358 # (art-opt-cc is used by default since it mimics the default preopt config), 359 # 360 # calls golem/build-target.sh which builds a golem tarball of the target name, 361 # e.g. 'golem: android-armv7' produces an 'android-armv7.tar.gz' upon success. 362 363 'art-golem-android-armv7': { 364 'golem' : 'android-armv7' 365 }, 366 'art-golem-android-armv8': { 367 'golem' : 'android-armv8' 368 }, 369 'art-golem-linux-armv7': { 370 'golem' : 'linux-armv7' 371 }, 372 'art-golem-linux-armv8': { 373 'golem' : 'linux-armv8' 374 }, 375 'art-golem-linux-ia32': { 376 'golem' : 'linux-ia32' 377 }, 378 'art-golem-linux-x64': { 379 'golem' : 'linux-x64' 380 }, 381 } 382