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