blob: 6fcb11b688c9dbea45f7fed24f441bfc485619ad [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 Rogers701aa642014-07-18 11:38:13 -0700166# $(5): run tests with tracing or GC verification enabled or not: trace, gcverify 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 :=
Ian Rogers5242c0a2014-07-18 11:02:19 -0700172 skip_test := false
Ian Rogersafd9acc2014-06-17 08:21:54 -0700173 ifeq ($(2),host)
174 uc_host_or_target := HOST
175 run_test_options += --host
176 prereq_rule := $(ART_TEST_HOST_RUN_TEST_DEPENDENCIES)
177 else
178 ifeq ($(2),target)
179 uc_host_or_target := TARGET
180 prereq_rule := test-art-target-sync
181 else
182 $$(error found $(2) expected host or target)
183 endif
184 endif
185 uc_compiler :=
186 ifeq ($(3),optimizing)
187 uc_compiler := OPTIMIZING
188 run_test_options += -Xcompiler-option --compiler-backend=Optimizing
Ian Rogers5242c0a2014-07-18 11:02:19 -0700189 ifneq ($$(ART_TEST_OPTIMIZING),true)
190 skip_test := true
191 endif
Ian Rogersafd9acc2014-06-17 08:21:54 -0700192 else
193 ifeq ($(3),interpreter)
194 uc_compiler := INTERPRETER
195 run_test_options += --interpreter
196 else
197 ifeq ($(3),default)
198 uc_compiler := DEFAULT
199 else
200 $$(error found $(3) expected optimizing, interpreter or default)
201 endif
202 endif
203 endif
204 ifeq ($(4),64)
205 run_test_options += --64
206 else
207 ifneq ($(4),32)
208 $$(error found $(4) expected 32 or 64)
209 endif
210 endif
Ian Rogers716e4f82014-07-16 11:18:03 -0700211 ifeq ($(5),trace)
212 run_test_options += --trace
213 run_test_rule_name := test-art-$(2)-run-test-trace-$(3)-$(1)$(4)
Ian Rogers5242c0a2014-07-18 11:02:19 -0700214 ifneq ($$(ART_TEST_TRACE),true)
215 skip_test := true
216 endif
Ian Rogers716e4f82014-07-16 11:18:03 -0700217 else
Ian Rogers701aa642014-07-18 11:38:13 -0700218 ifeq ($(5),gcverify)
219 run_test_options += --runtime-option -Xgc:preverify --runtime-option -Xgc:postverify \
220 --runtime-option -Xgc:preverify_rosalloc --runtime-option -Xgc:postverify_rosalloc
221 run_test_rule_name := test-art-$(2)-run-test-gcverify-$(3)-$(1)$(4)
222 ifneq ($$(ART_TEST_GC_VERIFY),true)
223 skip_test := true
224 endif
225 else
226 ifneq (,$(5))
227 $$(error found $(5) expected undefined or -trace)
228 endif
Ian Rogers716e4f82014-07-16 11:18:03 -0700229 endif
230 endif
Ian Rogers5242c0a2014-07-18 11:02:19 -0700231 ifeq ($$(skip_test),false)
232 run_test_options := --output-path $(ART_HOST_TEST_DIR)/run-test-output/$$(run_test_rule_name) \
233 $$(run_test_options)
Ian Rogersafd9acc2014-06-17 08:21:54 -0700234$$(run_test_rule_name): PRIVATE_RUN_TEST_OPTIONS := $$(run_test_options)
235.PHONY: $$(run_test_rule_name)
236$$(run_test_rule_name): $(DX) $(HOST_OUT_EXECUTABLES)/jasmin $$(prereq_rule)
237 $(hide) $$(call ART_TEST_SKIP,$$@) && \
238 DX=$(abspath $(DX)) JASMIN=$(abspath $(HOST_OUT_EXECUTABLES)/jasmin) \
239 art/test/run-test $$(PRIVATE_RUN_TEST_OPTIONS) $(1) \
240 && $$(call ART_TEST_PASSED,$$@) || $$(call ART_TEST_FAILED,$$@)
241 $$(hide) (echo $(MAKECMDGOALS) | grep -q $$@ && \
242 echo "run-test run as top-level target, removing test directory $(ART_HOST_TEST_DIR)" && \
243 rm -r $(ART_HOST_TEST_DIR)) || true
Ian Rogers5242c0a2014-07-18 11:02:19 -0700244 else
245 .PHONY: $$(run_test_rule_name)
246$$(run_test_rule_name):
247 endif
Ian Rogersafd9acc2014-06-17 08:21:54 -0700248
Ian Rogersafd9acc2014-06-17 08:21:54 -0700249 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)$(4)_RULES += $$(run_test_rule_name)
250 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)_RULES += $$(run_test_rule_name)
251 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)_$(1)_RULES += $$(run_test_rule_name)
252 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)_RULES += $$(run_test_rule_name)
253 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$(1)_RULES += $$(run_test_rule_name)
254 ART_TEST_$$(uc_host_or_target)_RUN_TEST_ALL_RULES += $$(run_test_rule_name)
255 ART_TEST_$$(uc_host_or_target)_RUN_TEST_ALL$(4)_RULES += $$(run_test_rule_name)
256
257 # Clear locally defined variables.
Ian Rogers5242c0a2014-07-18 11:02:19 -0700258 skip_test :=
Ian Rogersafd9acc2014-06-17 08:21:54 -0700259 run_test_options :=
260 run_test_rule_name :=
261 uc_host_or_target :=
262 prereq_rule :=
263 uc_compiler :=
264endef # define-test-art-run-test
265
266# Define a phony rule whose purpose is to test its prerequisites.
267# $(1): rule name, e.g. test-art-host-run-test32
268# $(2): list of prerequisites
269define define-test-art-run-test-group-rule
270.PHONY: $(1)
271$(1): $(2)
272 $(hide) $$(call ART_TEST_PREREQ_FINISHED,$$@)
273
274endef # define-test-art-run-test-group-rule
275
276# Create rules for a group of run tests.
277# $(1): test name, e.g. 003-omnibus-opcodes
278# $(2): host or target
279define define-test-art-run-test-group
280 group_uc_host_or_target :=
281 ifeq ($(2),host)
282 group_uc_host_or_target := HOST
283 else
284 ifeq ($(2),target)
285 group_uc_host_or_target := TARGET
286 else
287 $$(error found $(2) expected host or target)
288 endif
289 endif
290
291 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_DEFAULT_$(1)_RULES :=
292 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_INTERPRETER_$(1)_RULES :=
293 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_OPTIMIZING_$(1)_RULES :=
294 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)_RULES :=
Ian Rogers716e4f82014-07-16 11:18:03 -0700295 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),))
296 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),))
297 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),))
Ian Rogers5242c0a2014-07-18 11:02:19 -0700298 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace))
299 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace))
300 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace))
Ian Rogers701aa642014-07-18 11:38:13 -0700301 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcverify))
302 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcverify))
303 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcverify))
Ian Rogersafd9acc2014-06-17 08:21:54 -0700304 do_second := false
305 ifeq ($(2),host)
306 ifneq ($$(HOST_PREFER_32_BIT),true)
307 do_second := true
308 endif
309 else
310 ifdef TARGET_2ND_ARCH
311 do_second := true
312 endif
313 endif
314 ifeq (true,$$(do_second))
Ian Rogers716e4f82014-07-16 11:18:03 -0700315 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),))
316 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),))
317 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),))
Ian Rogers5242c0a2014-07-18 11:02:19 -0700318 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace))
319 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace))
320 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace))
Ian Rogers701aa642014-07-18 11:38:13 -0700321 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcverify))
322 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcverify))
323 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcverify))
Ian Rogersafd9acc2014-06-17 08:21:54 -0700324 endif
325
326 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-default-$(1), \
327 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_DEFAULT_$(1)_RULES)))
328 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-interpreter-$(1), \
329 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_INTERPRETER_$(1)_RULES)))
330 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-optimizing-$(1), \
331 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_OPTIMIZING_$(1)_RULES)))
332 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-$(1), \
333 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)_RULES)))
334
335 # Clear locally defined variables.
336 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_DEFAULT_$(1)_RULES :=
337 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_INTERPRETER_$(1)_RULES :=
338 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_OPTIMIZING_$(1)_RULES :=
339 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)_RULES :=
340 group_uc_host_or_target :=
341 do_second :=
342endef # define-test-art-run-test-group
343
344$(foreach test, $(TEST_ART_RUN_TESTS), $(eval $(call define-test-art-run-test-group,$(test),target)))
345$(foreach test, $(TEST_ART_RUN_TESTS), $(eval $(call define-test-art-run-test-group,$(test),host)))
346
347$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test, \
348 $(ART_TEST_TARGET_RUN_TEST_ALL_RULES)))
349$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default, \
350 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_RULES)))
351$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter, \
352 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_RULES)))
353$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing, \
354 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RULES)))
355$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test$(ART_PHONY_TEST_TARGET_SUFFIX), \
356 $(ART_TEST_TARGET_RUN_TEST_ALL$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
357$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default$(ART_PHONY_TEST_TARGET_SUFFIX), \
358 $(ART_TEST_TARGET_RUN_TEST_DEFAULT$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
359$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter$(ART_PHONY_TEST_TARGET_SUFFIX), \
360 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
361$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing$(ART_PHONY_TEST_TARGET_SUFFIX), \
362 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
363ifdef TARGET_2ND_ARCH
364 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \
365 $(ART_TEST_TARGET_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
366 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \
367 $(ART_TEST_TARGET_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
368 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \
369 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
370 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \
371 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
372endif
373
374$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test, \
375 $(ART_TEST_HOST_RUN_TEST_ALL_RULES)))
376$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default, \
377 $(ART_TEST_HOST_RUN_TEST_DEFAULT_RULES)))
378$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter, \
379 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_RULES)))
380$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing, \
381 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_RULES)))
382$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test$(ART_PHONY_TEST_HOST_SUFFIX), \
383 $(ART_TEST_HOST_RUN_TEST_ALL$(ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
384$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default$(ART_PHONY_TEST_HOST_SUFFIX), \
385 $(ART_TEST_HOST_RUN_TEST_DEFAULT$(ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
386$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter$(ART_PHONY_TEST_HOST_SUFFIX), \
387 $(ART_TEST_HOST_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
388$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing$(ART_PHONY_TEST_HOST_SUFFIX), \
389 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
390ifneq ($(HOST_PREFER_32_BIT),true)
391 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \
392 $(ART_TEST_HOST_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
393 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \
394 $(ART_TEST_HOST_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
395 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \
396 $(ART_TEST_HOST_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
397 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \
398 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
399endif
400
401define-test-art-run-test :=
402define-test-art-run-test-group-rule :=
403define-test-art-run-test-group :=
Ian Rogers716e4f82014-07-16 11:18:03 -0700404all-run-test-names :=
Ian Rogersafd9acc2014-06-17 08:21:54 -0700405ART_TEST_TARGET_RUN_TEST_ALL_RULES :=
406ART_TEST_TARGET_RUN_TEST_DEFAULT_RULES :=
407ART_TEST_TARGET_RUN_TEST_INTERPRETER_RULES :=
408ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RULES :=
409ART_TEST_TARGET_RUN_TEST_ALL$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
410ART_TEST_TARGET_RUN_TEST_DEFAULT$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
411ART_TEST_TARGET_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
412ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
413ART_TEST_TARGET_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
414ART_TEST_TARGET_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
415ART_TEST_TARGET_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
416ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
417ART_TEST_HOST_RUN_TEST_ALL_RULES :=
418ART_TEST_HOST_RUN_TEST_DEFAULT_RULES :=
419ART_TEST_HOST_RUN_TEST_INTERPRETER_RULES :=
420ART_TEST_HOST_RUN_TEST_OPTIMIZING_RULES :=
Ian Rogers716e4f82014-07-16 11:18:03 -0700421ART_TEST_HOST_RUN_TEST_ALL$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
Ian Rogersafd9acc2014-06-17 08:21:54 -0700422ART_TEST_HOST_RUN_TEST_DEFAULT$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
423ART_TEST_HOST_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
424ART_TEST_HOST_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
Ian Rogers716e4f82014-07-16 11:18:03 -0700425ART_TEST_HOST_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
Ian Rogersafd9acc2014-06-17 08:21:54 -0700426ART_TEST_HOST_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
427ART_TEST_HOST_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
428ART_TEST_HOST_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=