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