blob: d359fb066e5d8b150374cd30325c13fcb58909ef [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
24# Tests that are timing sensitive and flaky on heavily loaded systems.
25TEST_ART_TIMING_SENSITIVE_RUN_TESTS := \
26 test-art-host-default-053-wait-some32 \
27 test-art-host-default-053-wait-some64 \
28 test-art-host-interpreter-053-wait-some32 \
29 test-art-host-interpreter-053-wait-some64 \
30 test-art-host-optimizing-053-wait-some32 \
31 test-art-host-optimizing-053-wait-some64 \
32 test-art-host-default-055-enum-performance32 \
33 test-art-host-default-055-enum-performance64 \
34 test-art-host-interpreter-055-enum-performance32 \
35 test-art-host-interpreter-055-enum-performance64 \
36 test-art-host-optimizing-055-enum-performance32 \
37 test-art-host-optimizing-055-enum-performance64
38
39 # disable timing sensitive tests on "dist" builds.
40ifdef dist_goal
41 ART_TEST_KNOWN_BROKEN += $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS)
42endif
43
44# The path where build only targets will be output, e.g.
45# out/target/product/generic_x86_64/obj/PACKAGING/art-run-tests_intermediates/DATA
46art_run_tests_dir := $(call intermediates-dir-for,PACKAGING,art-run-tests)/DATA
47
48# A generated list of prerequisites that call 'run-test --build-only', the actual prerequisite is
49# an empty file touched in the intermediate directory.
50TEST_ART_RUN_TEST_BUILD_RULES :=
51
52# Helper to create individual build targets for tests. Must be called with $(eval).
53# $(1): the test number
54define define-build-art-run-test
55 dmart_target := $(art_run_tests_dir)/art-run-tests/$(1)/touch
56$$(dmart_target): $(DX) $(HOST_OUT_EXECUTABLES)/jasmin
57 $(hide) rm -rf $$(dir $$@) && mkdir -p $$(dir $$@)
58 $(hide) DX=$(abspath $(DX)) JASMIN=$(abspath $(HOST_OUT_EXECUTABLES)/jasmin) \
59 $(LOCAL_PATH)/run-test --build-only --output-path $$(abspath $$(dir $$@)) $(1)
60 $(hide) touch $$@
61
62 TEST_ART_RUN_TEST_BUILD_RULES += $$(dmart_target)
63 dmart_target :=
64endef
65
66include $(CLEAR_VARS)
67LOCAL_MODULE_TAGS := tests
68LOCAL_MODULE := art-run-tests
69LOCAL_ADDITIONAL_DEPENDENCIES := $(TEST_ART_RUN_TEST_BUILD_RULES)
70# The build system use this flag to pick up files generated by declare-make-art-run-test.
71LOCAL_PICKUP_FILES := $(art_run_tests_dir)
72
73include $(BUILD_PHONY_PACKAGE)
74
75# Clear temp vars.
76TEST_ART_RUN_TEST_BUILD_RULES :=
77art_run_tests_dir :=
78define-build-art-run-test :=
79
80########################################################################
81
82ART_TEST_TARGET_RUN_TEST_ALL_RULES :=
83ART_TEST_TARGET_RUN_TEST_DEFAULT_RULES :=
84ART_TEST_TARGET_RUN_TEST_INTERPRETER_RULES :=
85ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RULES :=
86ART_TEST_TARGET_RUN_TEST_ALL$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
87ART_TEST_TARGET_RUN_TEST_DEFAULT$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
88ART_TEST_TARGET_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
89ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
90ART_TEST_TARGET_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
91ART_TEST_TARGET_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
92ART_TEST_TARGET_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
93ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
94ART_TEST_HOST_RUN_TEST_ALL_RULES :=
95ART_TEST_HOST_RUN_TEST_DEFAULT_RULES :=
96ART_TEST_HOST_RUN_TEST_INTERPRETER_RULES :=
97ART_TEST_HOST_RUN_TEST_OPTIMIZING_RULES :=
98ART_TEST_HOST_RUN_TEST_DEFAULT$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
99ART_TEST_HOST_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
100ART_TEST_HOST_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
101ART_TEST_HOST_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
102ART_TEST_HOST_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
103ART_TEST_HOST_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
104
105# We need dex2oat and dalvikvm on the target as well as the core image.
106TEST_ART_TARGET_SYNC_DEPS += $(ART_TARGET_EXECUTABLES) $(TARGET_CORE_IMG_OUT) $(2ND_TARGET_CORE_IMG_OUT)
107
108# All tests require the host executables and the core images.
109ART_TEST_HOST_RUN_TEST_DEPENDENCIES := \
110 $(ART_HOST_EXECUTABLES) \
111 $(HOST_CORE_IMG_OUT) \
Ian Rogers665de8a2014-06-24 21:34:09 -0700112 $(ART_HOST_LIBRARY_PATH)/libjavacore$(ART_HOST_SHLIB_EXTENSION)
113
114ifneq ($(HOST_PREFER_32_BIT),true)
115ART_TEST_HOST_RUN_TEST_DEPENDENCIES += \
116 $(2ND_ART_HOST_LIBRARY_PATH)/libjavacore$(ART_HOST_SHLIB_EXTENSION) \
Ian Rogersafd9acc2014-06-17 08:21:54 -0700117 $(2ND_HOST_CORE_IMG_OUT)
Ian Rogers665de8a2014-06-24 21:34:09 -0700118endif
Ian Rogersafd9acc2014-06-17 08:21:54 -0700119
120# For a given test create all the combinations of host/target, compiler and suffix such as:
121# test-art-host-run-test-optimizing-003-omnibus-opcodes32
122# $(1): test name, e.g. 003-omnibus-opcodes
123# $(2): host or target
124# $(3): default, optimizing or interpreter
125# $(4): 32 or 64
126define define-test-art-run-test
127 run_test_options := $(addprefix --runtime-option ,$(DALVIKVM_FLAGS))
128 uc_host_or_target :=
129 prereq_rule :=
130 ifeq ($(2),host)
131 uc_host_or_target := HOST
132 run_test_options += --host
133 prereq_rule := $(ART_TEST_HOST_RUN_TEST_DEPENDENCIES)
134 else
135 ifeq ($(2),target)
136 uc_host_or_target := TARGET
137 prereq_rule := test-art-target-sync
138 else
139 $$(error found $(2) expected host or target)
140 endif
141 endif
142 uc_compiler :=
143 ifeq ($(3),optimizing)
144 uc_compiler := OPTIMIZING
145 run_test_options += -Xcompiler-option --compiler-backend=Optimizing
146 else
147 ifeq ($(3),interpreter)
148 uc_compiler := INTERPRETER
149 run_test_options += --interpreter
150 else
151 ifeq ($(3),default)
152 uc_compiler := DEFAULT
153 else
154 $$(error found $(3) expected optimizing, interpreter or default)
155 endif
156 endif
157 endif
158 ifeq ($(4),64)
159 run_test_options += --64
160 else
161 ifneq ($(4),32)
162 $$(error found $(4) expected 32 or 64)
163 endif
164 endif
165 run_test_rule_name := test-art-$(2)-run-test-$(3)-$(1)$(4)
166 run_test_options := --output-path $(ART_HOST_TEST_DIR)/run-test-output/$$(run_test_rule_name) \
167 $$(run_test_options)
168$$(run_test_rule_name): PRIVATE_RUN_TEST_OPTIONS := $$(run_test_options)
169.PHONY: $$(run_test_rule_name)
170$$(run_test_rule_name): $(DX) $(HOST_OUT_EXECUTABLES)/jasmin $$(prereq_rule)
171 $(hide) $$(call ART_TEST_SKIP,$$@) && \
172 DX=$(abspath $(DX)) JASMIN=$(abspath $(HOST_OUT_EXECUTABLES)/jasmin) \
173 art/test/run-test $$(PRIVATE_RUN_TEST_OPTIONS) $(1) \
174 && $$(call ART_TEST_PASSED,$$@) || $$(call ART_TEST_FAILED,$$@)
175 $$(hide) (echo $(MAKECMDGOALS) | grep -q $$@ && \
176 echo "run-test run as top-level target, removing test directory $(ART_HOST_TEST_DIR)" && \
177 rm -r $(ART_HOST_TEST_DIR)) || true
178
179 # Mark all tests with the optimizing compiler broken. TODO: fix.
180 ifeq ($(3),optimizing)
181 ART_TEST_KNOWN_BROKEN += $$(run_test_rule_name)
182 endif
183
184 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)$(4)_RULES += $$(run_test_rule_name)
185 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)_RULES += $$(run_test_rule_name)
186 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)_$(1)_RULES += $$(run_test_rule_name)
187 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)_RULES += $$(run_test_rule_name)
188 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$(1)_RULES += $$(run_test_rule_name)
189 ART_TEST_$$(uc_host_or_target)_RUN_TEST_ALL_RULES += $$(run_test_rule_name)
190 ART_TEST_$$(uc_host_or_target)_RUN_TEST_ALL$(4)_RULES += $$(run_test_rule_name)
191
192 # Clear locally defined variables.
193 run_test_options :=
194 run_test_rule_name :=
195 uc_host_or_target :=
196 prereq_rule :=
197 uc_compiler :=
198endef # define-test-art-run-test
199
200# Define a phony rule whose purpose is to test its prerequisites.
201# $(1): rule name, e.g. test-art-host-run-test32
202# $(2): list of prerequisites
203define define-test-art-run-test-group-rule
204.PHONY: $(1)
205$(1): $(2)
206 $(hide) $$(call ART_TEST_PREREQ_FINISHED,$$@)
207
208endef # define-test-art-run-test-group-rule
209
210# Create rules for a group of run tests.
211# $(1): test name, e.g. 003-omnibus-opcodes
212# $(2): host or target
213define define-test-art-run-test-group
214 group_uc_host_or_target :=
215 ifeq ($(2),host)
216 group_uc_host_or_target := HOST
217 else
218 ifeq ($(2),target)
219 group_uc_host_or_target := TARGET
220 else
221 $$(error found $(2) expected host or target)
222 endif
223 endif
224
225 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_DEFAULT_$(1)_RULES :=
226 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_INTERPRETER_$(1)_RULES :=
227 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_OPTIMIZING_$(1)_RULES :=
228 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)_RULES :=
229 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX)))
230 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX)))
231 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX)))
232 do_second := false
233 ifeq ($(2),host)
234 ifneq ($$(HOST_PREFER_32_BIT),true)
235 do_second := true
236 endif
237 else
238 ifdef TARGET_2ND_ARCH
239 do_second := true
240 endif
241 endif
242 ifeq (true,$$(do_second))
243 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX)))
244 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX)))
245 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX)))
246 endif
247
248 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-default-$(1), \
249 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_DEFAULT_$(1)_RULES)))
250 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-interpreter-$(1), \
251 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_INTERPRETER_$(1)_RULES)))
252 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-optimizing-$(1), \
253 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_OPTIMIZING_$(1)_RULES)))
254 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-$(1), \
255 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)_RULES)))
256
257 # Clear locally defined variables.
258 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_DEFAULT_$(1)_RULES :=
259 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_INTERPRETER_$(1)_RULES :=
260 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_OPTIMIZING_$(1)_RULES :=
261 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)_RULES :=
262 group_uc_host_or_target :=
263 do_second :=
264endef # define-test-art-run-test-group
265
266$(foreach test, $(TEST_ART_RUN_TESTS), $(eval $(call define-test-art-run-test-group,$(test),target)))
267$(foreach test, $(TEST_ART_RUN_TESTS), $(eval $(call define-test-art-run-test-group,$(test),host)))
268
269$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test, \
270 $(ART_TEST_TARGET_RUN_TEST_ALL_RULES)))
271$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default, \
272 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_RULES)))
273$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter, \
274 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_RULES)))
275$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing, \
276 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RULES)))
277$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test$(ART_PHONY_TEST_TARGET_SUFFIX), \
278 $(ART_TEST_TARGET_RUN_TEST_ALL$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
279$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default$(ART_PHONY_TEST_TARGET_SUFFIX), \
280 $(ART_TEST_TARGET_RUN_TEST_DEFAULT$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
281$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter$(ART_PHONY_TEST_TARGET_SUFFIX), \
282 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
283$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing$(ART_PHONY_TEST_TARGET_SUFFIX), \
284 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
285ifdef TARGET_2ND_ARCH
286 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \
287 $(ART_TEST_TARGET_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
288 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \
289 $(ART_TEST_TARGET_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
290 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \
291 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
292 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \
293 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES)))
294endif
295
296$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test, \
297 $(ART_TEST_HOST_RUN_TEST_ALL_RULES)))
298$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default, \
299 $(ART_TEST_HOST_RUN_TEST_DEFAULT_RULES)))
300$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter, \
301 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_RULES)))
302$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing, \
303 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_RULES)))
304$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test$(ART_PHONY_TEST_HOST_SUFFIX), \
305 $(ART_TEST_HOST_RUN_TEST_ALL$(ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
306$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default$(ART_PHONY_TEST_HOST_SUFFIX), \
307 $(ART_TEST_HOST_RUN_TEST_DEFAULT$(ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
308$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter$(ART_PHONY_TEST_HOST_SUFFIX), \
309 $(ART_TEST_HOST_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
310$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing$(ART_PHONY_TEST_HOST_SUFFIX), \
311 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
312ifneq ($(HOST_PREFER_32_BIT),true)
313 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \
314 $(ART_TEST_HOST_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
315 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \
316 $(ART_TEST_HOST_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
317 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \
318 $(ART_TEST_HOST_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
319 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \
320 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES)))
321endif
322
323define-test-art-run-test :=
324define-test-art-run-test-group-rule :=
325define-test-art-run-test-group :=
326ART_TEST_TARGET_RUN_TEST_ALL_RULES :=
327ART_TEST_TARGET_RUN_TEST_DEFAULT_RULES :=
328ART_TEST_TARGET_RUN_TEST_INTERPRETER_RULES :=
329ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RULES :=
330ART_TEST_TARGET_RUN_TEST_ALL$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
331ART_TEST_TARGET_RUN_TEST_DEFAULT$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
332ART_TEST_TARGET_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
333ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
334ART_TEST_TARGET_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
335ART_TEST_TARGET_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
336ART_TEST_TARGET_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
337ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
338ART_TEST_HOST_RUN_TEST_ALL_RULES :=
339ART_TEST_HOST_RUN_TEST_DEFAULT_RULES :=
340ART_TEST_HOST_RUN_TEST_INTERPRETER_RULES :=
341ART_TEST_HOST_RUN_TEST_OPTIMIZING_RULES :=
342ART_TEST_HOST_RUN_TEST_DEFAULT$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
343ART_TEST_HOST_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
344ART_TEST_HOST_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
345ART_TEST_HOST_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
346ART_TEST_HOST_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=
347ART_TEST_HOST_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES :=