1target_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    },
29
30    'art-test-javac' : {
31        'run-test' : ['--jvm']
32    },
33
34    # ART run-test configurations
35    # (calls testrunner which builds and then runs the test targets)
36
37    'art-ndebug' : {
38        'run-test' : ['--ndebug']
39    },
40    'art-interpreter' : {
41        'run-test' : ['--interpreter']
42    },
43    'art-interpreter-cxx' : {
44        'run-test' : ['--interpreter'],
45        'env' : {
46            'ART_USE_CXX_INTERPRETER' : 'true'
47        }
48    },
49    'art-interpreter-access-checks' : {
50        'run-test' : ['--interp-ac']
51    },
52    'art-jit' : {
53        'run-test' : ['--jit', '--debuggable', '--ndebuggable']
54    },
55    'art-jit-on-first-use' : {
56        'run-test' : ['--jit-on-first-use']
57    },
58    'art-pictest' : {
59        # Deprecated config: All AOT-compiled code is PIC now.
60        'run-test' : ['--optimizing']
61    },
62    'art-gcstress-gcverify': {
63        # Do not exercise '--interpreter', '--optimizing', nor '--jit' in this
64        # configuration, as they are covered by the
65        # 'art-interpreter-gcstress-gcverify',
66        # 'art-optimizing-gcstress-gcverify' and 'art-jit-gcstress-gcverify'
67        # configurations below.
68        'run-test': ['--interp-ac',
69                     '--speed-profile',
70                     '--gcstress',
71                     '--gcverify']
72    },
73    'art-interpreter-gcstress-gcverify' : {
74        'run-test' : ['--interpreter',
75                      '--gcstress',
76                      '--gcverify']
77    },
78    'art-optimizing-gcstress-gcverify' : {
79        'run-test' : ['--optimizing',
80                      '--gcstress',
81                      '--gcverify']
82    },
83    'art-jit-gcstress-gcverify' : {
84        'run-test' : ['--jit',
85                      '--gcstress',
86                      '--gcverify']
87    },
88    'art-jit-on-first-use-gcstress' : {
89        'run-test' : ['--jit-on-first-use',
90                      '--gcstress']
91    },
92    'art-read-barrier-heap-poisoning' : {
93        'run-test': ['--interpreter',
94                     '--optimizing'],
95        'env' : {
96            'ART_HEAP_POISONING' : 'true'
97        }
98    },
99    'art-read-barrier-table-lookup' : {
100        'run-test' : ['--interpreter',
101                      '--optimizing'],
102        'env' : {
103            'ART_READ_BARRIER_TYPE' : 'TABLELOOKUP',
104            'ART_HEAP_POISONING' : 'true'
105        }
106    },
107    'art-debug-gc' : {
108        'run-test' : ['--interpreter',
109                      '--optimizing'],
110        'env' : {
111            'ART_TEST_DEBUG_GC' : 'true',
112            'ART_USE_READ_BARRIER' : 'false'
113        }
114    },
115    # TODO: Consider removing this configuration when it is no longer used by
116    # any continuous testing target (b/62611253), as the SS collector overlaps
117    # with the CC collector, since both move objects.
118    'art-ss-gc' : {
119        'run-test' : ['--interpreter',
120                      '--optimizing',
121                      '--jit'],
122        'env' : {
123            'ART_DEFAULT_GC_TYPE' : 'SS',
124            'ART_USE_READ_BARRIER' : 'false'
125        }
126    },
127    # TODO: Consider removing this configuration when it is no longer used by
128    # any continuous testing target (b/62611253), as the SS collector overlaps
129    # with the CC collector, since both move objects.
130    'art-ss-gc-tlab' : {
131        'run-test' : ['--interpreter',
132                      '--optimizing',
133                      '--jit'],
134        'env' : {
135            'ART_DEFAULT_GC_TYPE' : 'SS',
136            'ART_USE_TLAB' : 'true',
137            'ART_USE_READ_BARRIER' : 'false'
138        }
139    },
140    'art-tracing' : {
141        'run-test' : ['--trace']
142    },
143    'art-interpreter-tracing' : {
144        'run-test' : ['--interpreter',
145                      '--trace']
146    },
147    'art-forcecopy' : {
148        'run-test' : ['--forcecopy']
149    },
150    'art-no-prebuild' : {
151        'run-test' : ['--no-prebuild']
152    },
153    'art-no-image' : {
154        'run-test' : ['--no-image']
155    },
156    'art-interpreter-no-image' : {
157        'run-test' : ['--interpreter',
158                      '--no-image']
159    },
160    'art-heap-poisoning' : {
161        'run-test' : ['--interpreter',
162                      '--optimizing',
163                      '--cdex-none'],
164        'env' : {
165            'ART_USE_READ_BARRIER' : 'false',
166            'ART_HEAP_POISONING' : 'true',
167            # Disable compact dex to get coverage of standard dex file usage.
168            'ART_DEFAULT_COMPACT_DEX_LEVEL' : 'none'
169        }
170    },
171    'art-preopt' : {
172        # This test configuration is intended to be representative of the case
173        # of preopted apps, which are precompiled against an
174        # unrelocated image, then used with a relocated image.
175        'run-test' : ['--prebuild',
176                      '--relocate',
177                      '--jit']
178    },
179
180    # ART gtest configurations
181    # (calls make 'target' which builds and then runs the gtests).
182
183    'art-gtest' : {
184        'make' :  'test-art-host-gtest'
185    },
186    'art-gtest-read-barrier': {
187        'make' :  'test-art-host-gtest',
188        'env' : {
189            'ART_HEAP_POISONING' : 'true'
190        }
191    },
192    'art-gtest-read-barrier-table-lookup': {
193        'make' :  'test-art-host-gtest',
194        'env': {
195            'ART_READ_BARRIER_TYPE' : 'TABLELOOKUP',
196            'ART_HEAP_POISONING' : 'true'
197        }
198    },
199    # TODO: Consider removing this configuration when it is no longer used by
200    # any continuous testing target (b/62611253), as the SS collector overlaps
201    # with the CC collector, since both move objects.
202    'art-gtest-ss-gc': {
203        'make' :  'test-art-host-gtest',
204        'env': {
205            'ART_DEFAULT_GC_TYPE' : 'SS',
206            'ART_USE_READ_BARRIER' : 'false',
207            # Disable compact dex to get coverage of standard dex file usage.
208            'ART_DEFAULT_COMPACT_DEX_LEVEL' : 'none'
209        }
210    },
211    # TODO: Consider removing this configuration when it is no longer used by
212    # any continuous testing target (b/62611253), as the SS collector overlaps
213    # with the CC collector, since both move objects.
214    'art-gtest-ss-gc-tlab': {
215        'make' :  'test-art-host-gtest',
216        'env': {
217            'ART_DEFAULT_GC_TYPE' : 'SS',
218            'ART_USE_TLAB' : 'true',
219            'ART_USE_READ_BARRIER' : 'false',
220        }
221    },
222    'art-gtest-debug-gc' : {
223        'make' :  'test-art-host-gtest',
224        'env' : {
225            'ART_TEST_DEBUG_GC' : 'true',
226            'ART_USE_READ_BARRIER' : 'false'
227        }
228    },
229    'art-generational-cc': {
230        'make' : 'test-art-host-gtest',
231        'run-test' : [],
232        'env' : {
233            'ART_USE_GENERATIONAL_CC' : 'true'
234        }
235    },
236
237    # ASAN (host) configurations.
238
239    # These configurations need detect_leaks=0 to work in non-setup environments like build bots,
240    # as our build tools leak. b/37751350
241
242    'art-gtest-asan': {
243        'make' : 'test-art-host-gtest',
244        'env': {
245            'SANITIZE_HOST' : 'address',
246            'ASAN_OPTIONS' : 'detect_leaks=0'
247        }
248    },
249    'art-asan': {
250        'run-test' : ['--interpreter',
251                      '--interp-ac',
252                      '--optimizing',
253                      '--jit',
254                      '--speed-profile'],
255        'env': {
256            'SANITIZE_HOST' : 'address',
257            'ASAN_OPTIONS' : 'detect_leaks=0'
258        }
259    },
260    'art-gtest-heap-poisoning': {
261        'make' : 'test-art-host-gtest',
262        'env' : {
263            'ART_HEAP_POISONING' : 'true',
264            'ART_USE_READ_BARRIER' : 'false',
265            'SANITIZE_HOST' : 'address',
266            'ASAN_OPTIONS' : 'detect_leaks=0'
267        }
268    },
269
270    # ART Golem build targets used by go/lem (continuous ART benchmarking),
271    # (art-opt-cc is used by default since it mimics the default preopt config),
272    #
273    # calls golem/build-target.sh which builds a golem tarball of the target name,
274    #     e.g. 'golem: android-armv7' produces an 'android-armv7.tar.gz' upon success.
275
276    'art-golem-android-armv7': {
277        'golem' : 'android-armv7'
278    },
279    'art-golem-android-armv8': {
280        'golem' : 'android-armv8'
281    },
282    'art-golem-linux-armv7': {
283        'golem' : 'linux-armv7'
284    },
285    'art-golem-linux-armv8': {
286        'golem' : 'linux-armv8'
287    },
288    'art-golem-linux-ia32': {
289        'golem' : 'linux-ia32'
290    },
291    'art-golem-linux-x64': {
292        'golem' : 'linux-x64'
293    },
294    'art-linux-bionic-x64': {
295        'build': '{ANDROID_BUILD_TOP}/art/tools/build_linux_bionic_tests.sh {MAKE_OPTIONS}',
296        'run-test': ['--run-test-option=--bionic',
297                     '--host',
298                     '--64',
299                     '--no-build-dependencies'],
300    },
301    'art-linux-bionic-x64-zipapex': {
302        'build': '{ANDROID_BUILD_TOP}/art/tools/build_linux_bionic_tests.sh {MAKE_OPTIONS} com.android.art.host',
303        'run-test': ['--run-test-option=--bionic',
304                     "--runtime-zipapex={SOONG_OUT_DIR}/host/linux_bionic-x86/apex/com.android.art.host.zipapex",
305                     '--host',
306                     '--64',
307                     '--no-build-dependencies'],
308    },
309}
310