blob: 78312d12458e2bb2efc3ce0318db4071c70d6c3f [file] [log] [blame]
Ian Rogersafd9acc2014-06-17 08:21:54 -07001# Copyright (C) 2011 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
16LOCAL_PATH := $(call my-dir)
17
18include art/build/Android.common_test.mk
19
20# List of all tests of the form 003-omnibus-opcodes.
21TEST_ART_RUN_TESTS := $(wildcard $(LOCAL_PATH)/[0-9]*)
22TEST_ART_RUN_TESTS := $(subst $(LOCAL_PATH)/,, $(TEST_ART_RUN_TESTS))
23
Ian Rogers716e4f82014-07-16 11:18:03 -070024# List all the test names for host and target excluding the -trace suffix
25# $(1): test name, e.g. 003-omnibus-opcodes
26# $(2): undefined or -trace
27define all-run-test-names
28 test-art-host-run-test$(2)-default-$(1)32 \
29 test-art-host-run-test$(2)-optimizing-$(1)32 \
30 test-art-host-run-test$(2)-interpreter-$(1)32 \
31 test-art-host-run-test$(2)-default-$(1)64 \
32 test-art-host-run-test$(2)-optimizing-$(1)64 \
33 test-art-host-run-test$(2)-interpreter-$(1)64 \
34 test-art-target-run-test$(2)-default-$(1)32 \
35 test-art-target-run-test$(2)-optimizing-$(1)32 \
36 test-art-target-run-test$(2)-interpreter-$(1)32 \
37 test-art-target-run-test$(2)-default-$(1)64 \
38 test-art-target-run-test$(2)-optimizing-$(1)64 \
39 test-art-target-run-test$(2)-interpreter-$(1)64
40endef # all-run-test-names
41
Ian Rogersafd9acc2014-06-17 08:21:54 -070042# Tests that are timing sensitive and flaky on heavily loaded systems.
43TEST_ART_TIMING_SENSITIVE_RUN_TESTS := \
Ian Rogers716e4f82014-07-16 11:18:03 -070044 053-wait-some \
45 055-enum-performance
Ian Rogersafd9acc2014-06-17 08:21:54 -070046
47 # disable timing sensitive tests on "dist" builds.
48ifdef dist_goal
Ian Rogers716e4f82014-07-16 11:18:03 -070049 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),))
50 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-trace))
Ian Rogersafd9acc2014-06-17 08:21:54 -070051endif
52
Ian Rogers716e4f82014-07-16 11:18:03 -070053# Tests that are broken in --trace mode.
54TEST_ART_BROKEN_TRACE_RUN_TESTS := \
55 003-omnibus-opcodes \
56 004-annotations \
57 018-stack-overflow \
58 023-many-interfaces \
59 031-class-attributes \
60 037-inherit \
61 044-proxy \
62 046-reflect \
63 051-thread \
64 055-enum-performance \
65 064-field-access \
66 078-polymorphic-virtual \
67 080-oom-throw \
68 082-inline-execute \
69 083-compiler-regressions \
Ian Rogers55bce0c2014-07-16 14:49:34 -070070 093-serialization \
Ian Rogers716e4f82014-07-16 11:18:03 -070071 097-duplicate-method \
72 100-reflect2 \
73 102-concurrent-gc \
74 103-string-append \
75 107-int-math2 \
76 112-double-math \
77 701-easy-div-rem
78
79ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_TRACE_RUN_TESTS), $(call all-run-test-names,$(test),-trace))
80
Ian Rogersafd9acc2014-06-17 08:21:54 -070081# The path where build only targets will be output, e.g.
82# out/target/product/generic_x86_64/obj/PACKAGING/art-run-tests_intermediates/DATA
83art_run_tests_dir := $(call intermediates-dir-for,PACKAGING,art-run-tests)/DATA
84
85# A generated list of prerequisites that call 'run-test --build-only', the actual prerequisite is
86# an empty file touched in the intermediate directory.
87TEST_ART_RUN_TEST_BUILD_RULES :=
88
89# Helper to create individual build targets for tests. Must be called with $(eval).
90# $(1): the test number
91define define-build-art-run-test
92 dmart_target := $(art_run_tests_dir)/art-run-tests/$(1)/touch
93$$(dmart_target): $(DX) $(HOST_OUT_EXECUTABLES)/jasmin
94 $(hide) rm -rf $$(dir $$@) && mkdir -p $$(dir $$@)
95 $(hide) DX=$(abspath $(DX)) JASMIN=$(abspath $(HOST_OUT_EXECUTABLES)/jasmin) \
96 $(LOCAL_PATH)/run-test --build-only --output-path $$(abspath $$(dir $$@)) $(1)
97 $(hide) touch $$@
98
99 TEST_ART_RUN_TEST_BUILD_RULES += $$(dmart_target)
100 dmart_target :=
101endef
Ian Rogersbf66bce2014-06-24 23:15:34 -0700102$(foreach test, $(TEST_ART_RUN_TESTS), $(eval $(call define-build-art-run-test,$(test))))
Ian Rogersafd9acc2014-06-17 08:21:54 -0700103
104include $(CLEAR_VARS)
105LOCAL_MODULE_TAGS := tests
106LOCAL_MODULE := art-run-tests
107LOCAL_ADDITIONAL_DEPENDENCIES := $(TEST_ART_RUN_TEST_BUILD_RULES)
108# The build system use this flag to pick up files generated by declare-make-art-run-test.
109LOCAL_PICKUP_FILES := $(art_run_tests_dir)
110
111include $(BUILD_PHONY_PACKAGE)
112
113# Clear temp vars.
114TEST_ART_RUN_TEST_BUILD_RULES :=
115art_run_tests_dir :=
116define-build-art-run-test :=
117
118########################################################################
119
120ART_TEST_TARGET_RUN_TEST_ALL_RULES :=
121ART_TEST_TARGET_RUN_TEST_DEFAULT_RULES :=
122ART_TEST_TARGET_RUN_TEST_INTERPRETER_RULES :=
123ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RULES :=
124ART_TEST_TARGET_RUN_TEST_ALL$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
125ART_TEST_TARGET_RUN_TEST_DEFAULT$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
126ART_TEST_TARGET_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
127ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
128ART_TEST_TARGET_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
129ART_TEST_TARGET_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
130ART_TEST_TARGET_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
131ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
132ART_TEST_HOST_RUN_TEST_ALL_RULES :=
133ART_TEST_HOST_RUN_TEST_DEFAULT_RULES :=
134ART_TEST_HOST_RUN_TEST_INTERPRETER_RULES :=
135ART_TEST_HOST_RUN_TEST_OPTIMIZING_RULES :=
Ian Rogers716e4f82014-07-16 11:18:03 -0700136ART_TEST_HOST_RUN_TEST_ALL$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
Ian Rogersafd9acc2014-06-17 08:21:54 -0700137ART_TEST_HOST_RUN_TEST_DEFAULT$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
138ART_TEST_HOST_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
139ART_TEST_HOST_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
Ian Rogers716e4f82014-07-16 11:18:03 -0700140ART_TEST_HOST_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
Ian Rogersafd9acc2014-06-17 08:21:54 -0700141ART_TEST_HOST_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
142ART_TEST_HOST_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
143ART_TEST_HOST_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
144
145# We need dex2oat and dalvikvm on the target as well as the core image.
146TEST_ART_TARGET_SYNC_DEPS += $(ART_TARGET_EXECUTABLES) $(TARGET_CORE_IMG_OUT) $(2ND_TARGET_CORE_IMG_OUT)
147
148# All tests require the host executables and the core images.
149ART_TEST_HOST_RUN_TEST_DEPENDENCIES := \
150 $(ART_HOST_EXECUTABLES) \
Nicolas Geoffray4d1231d2014-07-01 10:46:31 +0100151 $(ART_HOST_OUT_SHARED_LIBRARIES)/libjavacore$(ART_HOST_SHLIB_EXTENSION) \
Brian Carlstrom519e3d02014-06-25 00:57:36 -0700152 $(HOST_CORE_IMG_OUT)
Ian Rogers665de8a2014-06-24 21:34:09 -0700153
154ifneq ($(HOST_PREFER_32_BIT),true)
155ART_TEST_HOST_RUN_TEST_DEPENDENCIES += \
Nicolas Geoffray4d1231d2014-07-01 10:46:31 +0100156 $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libjavacore$(ART_HOST_SHLIB_EXTENSION) \
Ian Rogersafd9acc2014-06-17 08:21:54 -0700157 $(2ND_HOST_CORE_IMG_OUT)
Ian Rogers665de8a2014-06-24 21:34:09 -0700158endif
Ian Rogersafd9acc2014-06-17 08:21:54 -0700159
160# For a given test create all the combinations of host/target, compiler and suffix such as:
161# test-art-host-run-test-optimizing-003-omnibus-opcodes32
162# $(1): test name, e.g. 003-omnibus-opcodes
163# $(2): host or target
164# $(3): default, optimizing or interpreter
165# $(4): 32 or 64
Ian Rogers716e4f82014-07-16 11:18:03 -0700166# $(5): run tests with tracing enabled or not: trace or undefined
Ian Rogersafd9acc2014-06-17 08:21:54 -0700167define define-test-art-run-test
168 run_test_options := $(addprefix --runtime-option ,$(DALVIKVM_FLAGS))
Ian Rogers716e4f82014-07-16 11:18:03 -0700169 run_test_rule_name := test-art-$(2)-run-test-$(3)-$(1)$(4)
Ian Rogersafd9acc2014-06-17 08:21:54 -0700170 uc_host_or_target :=
171 prereq_rule :=
172 ifeq ($(2),host)
173 uc_host_or_target := HOST
174 run_test_options += --host
175 prereq_rule := $(ART_TEST_HOST_RUN_TEST_DEPENDENCIES)
176 else
177 ifeq ($(2),target)
178 uc_host_or_target := TARGET
179 prereq_rule := test-art-target-sync
180 else
181 $$(error found $(2) expected host or target)
182 endif
183 endif
184 uc_compiler :=
185 ifeq ($(3),optimizing)
186 uc_compiler := OPTIMIZING
187 run_test_options += -Xcompiler-option --compiler-backend=Optimizing
188 else
189 ifeq ($(3),interpreter)
190 uc_compiler := INTERPRETER
191 run_test_options += --interpreter
192 else
193 ifeq ($(3),default)
194 uc_compiler := DEFAULT
195 else
196 $$(error found $(3) expected optimizing, interpreter or default)
197 endif
198 endif
199 endif
200 ifeq ($(4),64)
201 run_test_options += --64
202 else
203 ifneq ($(4),32)
204 $$(error found $(4) expected 32 or 64)
205 endif
206 endif
Ian Rogers716e4f82014-07-16 11:18:03 -0700207 ifeq ($(5),trace)
208 run_test_options += --trace
209 run_test_rule_name := test-art-$(2)-run-test-trace-$(3)-$(1)$(4)
210 else
211 ifneq (,$(5))
212 $$(error found $(5) expected undefined or -trace)
213 endif
214 endif
Ian Rogersafd9acc2014-06-17 08:21:54 -0700215 run_test_options := --output-path $(ART_HOST_TEST_DIR)/run-test-output/$$(run_test_rule_name) \
216 $$(run_test_options)
217$$(run_test_rule_name): PRIVATE_RUN_TEST_OPTIONS := $$(run_test_options)
218.PHONY: $$(run_test_rule_name)
219$$(run_test_rule_name): $(DX) $(HOST_OUT_EXECUTABLES)/jasmin $$(prereq_rule)
220 $(hide) $$(call ART_TEST_SKIP,$$@) && \
221 DX=$(abspath $(DX)) JASMIN=$(abspath $(HOST_OUT_EXECUTABLES)/jasmin) \
222 art/test/run-test $$(PRIVATE_RUN_TEST_OPTIONS) $(1) \
223 && $$(call ART_TEST_PASSED,$$@) || $$(call ART_TEST_FAILED,$$@)
224 $$(hide) (echo $(MAKECMDGOALS) | grep -q $$@ && \
225 echo "run-test run as top-level target, removing test directory $(ART_HOST_TEST_DIR)" && \
226 rm -r $(ART_HOST_TEST_DIR)) || true
227
Ian Rogersafd9acc2014-06-17 08:21:54 -0700228 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)$(4)_RULES += $$(run_test_rule_name)
229 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)_RULES += $$(run_test_rule_name)
230 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)_$(1)_RULES += $$(run_test_rule_name)
231 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)_RULES += $$(run_test_rule_name)
232 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$(1)_RULES += $$(run_test_rule_name)
233 ART_TEST_$$(uc_host_or_target)_RUN_TEST_ALL_RULES += $$(run_test_rule_name)
234 ART_TEST_$$(uc_host_or_target)_RUN_TEST_ALL$(4)_RULES += $$(run_test_rule_name)
235
236 # Clear locally defined variables.
237 run_test_options :=
238 run_test_rule_name :=
239 uc_host_or_target :=
240 prereq_rule :=
241 uc_compiler :=
242endef # define-test-art-run-test
243
244# Define a phony rule whose purpose is to test its prerequisites.
245# $(1): rule name, e.g. test-art-host-run-test32
246# $(2): list of prerequisites
247define define-test-art-run-test-group-rule
248.PHONY: $(1)
249$(1): $(2)
250 $(hide) $$(call ART_TEST_PREREQ_FINISHED,$$@)
251
252endef # define-test-art-run-test-group-rule
253
254# Create rules for a group of run tests.
255# $(1): test name, e.g. 003-omnibus-opcodes
256# $(2): host or target
257define define-test-art-run-test-group
258 group_uc_host_or_target :=
259 ifeq ($(2),host)
260 group_uc_host_or_target := HOST
261 else
262 ifeq ($(2),target)
263 group_uc_host_or_target := TARGET
264 else
265 $$(error found $(2) expected host or target)
266 endif
267 endif
268
269 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_DEFAULT_$(1)_RULES :=
270 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_INTERPRETER_$(1)_RULES :=
271 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_OPTIMIZING_$(1)_RULES :=
272 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)_RULES :=
Ian Rogers716e4f82014-07-16 11:18:03 -0700273 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),))
274 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),))
275 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),))
276 ifeq ($(2),host)
277 # For now just test tracing on the host with default.
278 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace))
279 endif
Ian Rogersafd9acc2014-06-17 08:21:54 -0700280 do_second := false
281 ifeq ($(2),host)
282 ifneq ($$(HOST_PREFER_32_BIT),true)
283 do_second := true
284 endif
285 else
286 ifdef TARGET_2ND_ARCH
287 do_second := true
288 endif
289 endif
290 ifeq (true,$$(do_second))
Ian Rogers716e4f82014-07-16 11:18:03 -0700291 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),))
292 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),))
293 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),))
294 ifeq ($(2),host)
295 # For now just test tracing on the host with default.
296 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace))
297 endif
Ian Rogersafd9acc2014-06-17 08:21:54 -0700298 endif
299
300 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-default-$(1), \
301 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_DEFAULT_$(1)_RULES)))
302 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-interpreter-$(1), \
303 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_INTERPRETER_$(1)_RULES)))
304 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-optimizing-$(1), \
305 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_OPTIMIZING_$(1)_RULES)))
306 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-$(1), \
307 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)_RULES)))
308
309 # Clear locally defined variables.
310 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_DEFAULT_$(1)_RULES :=
311 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_INTERPRETER_$(1)_RULES :=
312 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_OPTIMIZING_$(1)_RULES :=
313 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)_RULES :=
314 group_uc_host_or_target :=
315 do_second :=
316endef # define-test-art-run-test-group
317
318$(foreach test, $(TEST_ART_RUN_TESTS), $(eval $(call define-test-art-run-test-group,$(test),target)))
319$(foreach test, $(TEST_ART_RUN_TESTS), $(eval $(call define-test-art-run-test-group,$(test),host)))
320
321$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test, \
322 $(ART_TEST_TARGET_RUN_TEST_ALL_RULES)))
323$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default, \
324 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_RULES)))
325$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter, \
326 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_RULES)))
327$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing, \
328 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RULES)))
329$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test$(ART_PHONY_TEST_TARGET_SUFFIX), \
330 $(ART_TEST_TARGET_RUN_TEST_ALL$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
331$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default$(ART_PHONY_TEST_TARGET_SUFFIX), \
332 $(ART_TEST_TARGET_RUN_TEST_DEFAULT$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
333$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter$(ART_PHONY_TEST_TARGET_SUFFIX), \
334 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
335$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing$(ART_PHONY_TEST_TARGET_SUFFIX), \
336 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
337ifdef TARGET_2ND_ARCH
338 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \
339 $(ART_TEST_TARGET_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
340 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \
341 $(ART_TEST_TARGET_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
342 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \
343 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
344 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \
345 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
346endif
347
348$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test, \
349 $(ART_TEST_HOST_RUN_TEST_ALL_RULES)))
350$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default, \
351 $(ART_TEST_HOST_RUN_TEST_DEFAULT_RULES)))
352$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter, \
353 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_RULES)))
354$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing, \
355 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_RULES)))
356$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test$(ART_PHONY_TEST_HOST_SUFFIX), \
357 $(ART_TEST_HOST_RUN_TEST_ALL$(ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
358$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default$(ART_PHONY_TEST_HOST_SUFFIX), \
359 $(ART_TEST_HOST_RUN_TEST_DEFAULT$(ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
360$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter$(ART_PHONY_TEST_HOST_SUFFIX), \
361 $(ART_TEST_HOST_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
362$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing$(ART_PHONY_TEST_HOST_SUFFIX), \
363 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
364ifneq ($(HOST_PREFER_32_BIT),true)
365 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \
366 $(ART_TEST_HOST_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
367 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \
368 $(ART_TEST_HOST_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
369 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \
370 $(ART_TEST_HOST_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
371 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \
372 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
373endif
374
375define-test-art-run-test :=
376define-test-art-run-test-group-rule :=
377define-test-art-run-test-group :=
Ian Rogers716e4f82014-07-16 11:18:03 -0700378all-run-test-names :=
Ian Rogersafd9acc2014-06-17 08:21:54 -0700379ART_TEST_TARGET_RUN_TEST_ALL_RULES :=
380ART_TEST_TARGET_RUN_TEST_DEFAULT_RULES :=
381ART_TEST_TARGET_RUN_TEST_INTERPRETER_RULES :=
382ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RULES :=
383ART_TEST_TARGET_RUN_TEST_ALL$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
384ART_TEST_TARGET_RUN_TEST_DEFAULT$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
385ART_TEST_TARGET_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
386ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
387ART_TEST_TARGET_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
388ART_TEST_TARGET_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
389ART_TEST_TARGET_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
390ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
391ART_TEST_HOST_RUN_TEST_ALL_RULES :=
392ART_TEST_HOST_RUN_TEST_DEFAULT_RULES :=
393ART_TEST_HOST_RUN_TEST_INTERPRETER_RULES :=
394ART_TEST_HOST_RUN_TEST_OPTIMIZING_RULES :=
Ian Rogers716e4f82014-07-16 11:18:03 -0700395ART_TEST_HOST_RUN_TEST_ALL$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
Ian Rogersafd9acc2014-06-17 08:21:54 -0700396ART_TEST_HOST_RUN_TEST_DEFAULT$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
397ART_TEST_HOST_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
398ART_TEST_HOST_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
Ian Rogers716e4f82014-07-16 11:18:03 -0700399ART_TEST_HOST_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
Ian Rogersafd9acc2014-06-17 08:21:54 -0700400ART_TEST_HOST_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
401ART_TEST_HOST_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
402ART_TEST_HOST_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=