Android.run-test.mk revision 7eeecb7de492483024dcd7198d3e9fa5497cd89b
1# 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# List all the test names for host and target and compiler variants. 25# $(1): test name, e.g. 003-omnibus-opcodes 26# $(2): undefined, -trace, -gcverify or -gcstress 27# $(3): -relocate, -norelocate, -no-prebuild, or undefined. 28define all-run-test-names 29 test-art-host-run-test$(2)-default$(3)-$(1)32 \ 30 test-art-host-run-test$(2)-optimizing$(3)-$(1)32 \ 31 test-art-host-run-test$(2)-interpreter$(3)-$(1)32 \ 32 test-art-host-run-test$(2)-default$(3)-$(1)64 \ 33 test-art-host-run-test$(2)-optimizing$(3)-$(1)64 \ 34 test-art-host-run-test$(2)-interpreter$(3)-$(1)64 \ 35 test-art-target-run-test$(2)-default$(3)-$(1)32 \ 36 test-art-target-run-test$(2)-optimizing$(3)-$(1)32 \ 37 test-art-target-run-test$(2)-interpreter$(3)-$(1)32 \ 38 test-art-target-run-test$(2)-default$(3)-$(1)64 \ 39 test-art-target-run-test$(2)-optimizing$(3)-$(1)64 \ 40 test-art-target-run-test$(2)-interpreter$(3)-$(1)64 41endef # all-run-test-names 42 43# Tests that are timing sensitive and flaky on heavily loaded systems. 44TEST_ART_TIMING_SENSITIVE_RUN_TESTS := \ 45 053-wait-some \ 46 055-enum-performance 47 48 # disable timing sensitive tests on "dist" builds. 49ifdef dist_goal 50 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),,)) 51 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-trace,)) 52 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-gcverify,)) 53 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-gcstress,)) 54 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),,-relocate)) 55 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-trace,-relocate)) 56 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-gcverify,-relocate)) 57 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-gcstress,-relocate)) 58 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),,-norelocate)) 59 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-trace,-norelocate)) 60 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-gcverify,-norelocate)) 61 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-gcstress,-norelocate)) 62 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),,-prebuild)) 63 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-trace,-prebuild)) 64 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-gcverify,-prebuild)) 65 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-gcstress,-prebuild)) 66 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),,-no-prebuild)) 67 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-trace,-no-prebuild)) 68 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-gcverify,-no-prebuild)) 69 ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(call all-run-test-names,$(test),-gcstress,-no-prebuild)) 70endif 71 72# Tests that are broken in --trace mode. 73TEST_ART_BROKEN_TRACE_RUN_TESTS := \ 74 003-omnibus-opcodes \ 75 004-InterfaceTest \ 76 004-SignalTest \ 77 004-ThreadStress \ 78 005-annotations \ 79 012-math \ 80 018-stack-overflow \ 81 023-many-interfaces \ 82 027-arithmetic \ 83 031-class-attributes \ 84 037-inherit \ 85 044-proxy \ 86 046-reflect \ 87 051-thread \ 88 055-enum-performance \ 89 062-character-encodings \ 90 064-field-access \ 91 074-gc-thrash \ 92 078-polymorphic-virtual \ 93 080-oom-throw \ 94 082-inline-execute \ 95 083-compiler-regressions \ 96 093-serialization \ 97 097-duplicate-method \ 98 100-reflect2 \ 99 102-concurrent-gc \ 100 103-string-append \ 101 107-int-math2 \ 102 112-double-math \ 103 114-ParallelGC \ 104 700-LoadArgRegs \ 105 701-easy-div-rem 106 107ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_TRACE_RUN_TESTS), $(call all-run-test-names,$(test),-trace,-relocate)) 108ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_TRACE_RUN_TESTS), $(call all-run-test-names,$(test),-trace,-no-prebuild)) 109ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_TRACE_RUN_TESTS), $(call all-run-test-names,$(test),-trace,-prebuild)) 110ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_TRACE_RUN_TESTS), $(call all-run-test-names,$(test),-trace,-norelocate)) 111ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_TRACE_RUN_TESTS), $(call all-run-test-names,$(test),-trace,)) 112 113# Tests that need more than 2MB of RAM or are running into other corner cases in GC stress related 114# to OOMEs. 115TEST_ART_BROKEN_GCSTRESS_RUN_TESTS := \ 116 114-ParallelGC 117 118ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_GCSTRESS_RUN_TESTS), $(call all-run-test-names,$(test),-gcstress,-relocate)) 119ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_GCSTRESS_RUN_TESTS), $(call all-run-test-names,$(test),-gcstress,-no-prebuild)) 120ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_GCSTRESS_RUN_TESTS), $(call all-run-test-names,$(test),-gcstress,-prebuild)) 121ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_GCSTRESS_RUN_TESTS), $(call all-run-test-names,$(test),-gcstress,-norelocate)) 122ART_TEST_KNOWN_BROKEN += $(foreach test, $(TEST_ART_BROKEN_GCSTRESS_RUN_TESTS), $(call all-run-test-names,$(test),-gcstress,)) 123 124 125# The path where build only targets will be output, e.g. 126# out/target/product/generic_x86_64/obj/PACKAGING/art-run-tests_intermediates/DATA 127art_run_tests_dir := $(call intermediates-dir-for,PACKAGING,art-run-tests)/DATA 128 129# A generated list of prerequisites that call 'run-test --build-only', the actual prerequisite is 130# an empty file touched in the intermediate directory. 131TEST_ART_RUN_TEST_BUILD_RULES := 132 133# Helper to create individual build targets for tests. Must be called with $(eval). 134# $(1): the test number 135define define-build-art-run-test 136 dmart_target := $(art_run_tests_dir)/art-run-tests/$(1)/touch 137$$(dmart_target): $(DX) $(HOST_OUT_EXECUTABLES)/jasmin 138 $(hide) rm -rf $$(dir $$@) && mkdir -p $$(dir $$@) 139 $(hide) DX=$(abspath $(DX)) JASMIN=$(abspath $(HOST_OUT_EXECUTABLES)/jasmin) \ 140 $(LOCAL_PATH)/run-test --build-only --output-path $$(abspath $$(dir $$@)) $(1) 141 $(hide) touch $$@ 142 143 TEST_ART_RUN_TEST_BUILD_RULES += $$(dmart_target) 144 dmart_target := 145endef 146$(foreach test, $(TEST_ART_RUN_TESTS), $(eval $(call define-build-art-run-test,$(test)))) 147 148include $(CLEAR_VARS) 149LOCAL_MODULE_TAGS := tests 150LOCAL_MODULE := art-run-tests 151LOCAL_ADDITIONAL_DEPENDENCIES := $(TEST_ART_RUN_TEST_BUILD_RULES) 152# The build system use this flag to pick up files generated by declare-make-art-run-test. 153LOCAL_PICKUP_FILES := $(art_run_tests_dir) 154 155include $(BUILD_PHONY_PACKAGE) 156 157# Clear temp vars. 158all-run-test-names := 159art_run_tests_dir := 160define-build-art-run-test := 161TEST_ART_RUN_TEST_BUILD_RULES := 162TEST_ART_TIMING_SENSITIVE_RUN_TESTS := 163TEST_ART_BROKEN_TRACE_RUN_TESTS := 164TEST_ART_BROKEN_GCSTRESS_RUN_TESTS := 165 166######################################################################## 167 168ART_TEST_TARGET_RUN_TEST_ALL_RULES := 169ART_TEST_TARGET_RUN_TEST_DEFAULT_RULES := 170ART_TEST_TARGET_RUN_TEST_INTERPRETER_RULES := 171ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RULES := 172ART_TEST_TARGET_RUN_TEST_RELOCATE_RULES := 173ART_TEST_TARGET_RUN_TEST_DEFAULT_RELOCATE_RULES := 174ART_TEST_TARGET_RUN_TEST_INTERPRETER_RELOCATE_RULES := 175ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RELOCATE_RULES := 176ART_TEST_TARGET_RUN_TEST_NORELOCATE_RULES := 177ART_TEST_TARGET_RUN_TEST_DEFAULT_NORELOCATE_RULES := 178ART_TEST_TARGET_RUN_TEST_INTERPRETER_NORELOCATE_RULES := 179ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NORELOCATE_RULES := 180ART_TEST_TARGET_RUN_TEST_NO_PREBUILD_RULES := 181ART_TEST_TARGET_RUN_TEST_PREBUILD_RULES := 182ART_TEST_TARGET_RUN_TEST_DEFAULT_NO_PREBUILD_RULES := 183ART_TEST_TARGET_RUN_TEST_DEFAULT_PREBUILD_RULES := 184ART_TEST_TARGET_RUN_TEST_INTERPRETER_NO_PREBUILD_RULES := 185ART_TEST_TARGET_RUN_TEST_INTERPRETER_PREBUILD_RULES := 186ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NO_PREBUILD_RULES := 187ART_TEST_TARGET_RUN_TEST_OPTIMIZING_PREBUILD_RULES := 188ART_TEST_TARGET_RUN_TEST_ALL$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 189ART_TEST_TARGET_RUN_TEST_DEFAULT$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 190ART_TEST_TARGET_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 191ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 192ART_TEST_TARGET_RUN_TEST_RELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 193ART_TEST_TARGET_RUN_TEST_DEFAULT_RELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 194ART_TEST_TARGET_RUN_TEST_INTERPRETER_RELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 195ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 196ART_TEST_TARGET_RUN_TEST_NORELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 197ART_TEST_TARGET_RUN_TEST_DEFAULT_NORELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 198ART_TEST_TARGET_RUN_TEST_INTERPRETER_NORELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 199ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NORELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 200ART_TEST_TARGET_RUN_TEST_NO_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 201ART_TEST_TARGET_RUN_TEST_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 202ART_TEST_TARGET_RUN_TEST_DEFAULT_NO_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 203ART_TEST_TARGET_RUN_TEST_DEFAULT_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 204ART_TEST_TARGET_RUN_TEST_INTERPRETER_NO_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 205ART_TEST_TARGET_RUN_TEST_INTERPRETER_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 206ART_TEST_TARGET_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 207ART_TEST_TARGET_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 208ART_TEST_TARGET_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 209ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 210ART_TEST_TARGET_RUN_TEST_RELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 211ART_TEST_TARGET_RUN_TEST_DEFAULT_RELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 212ART_TEST_TARGET_RUN_TEST_INTERPRETER_RELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 213ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 214ART_TEST_TARGET_RUN_TEST_NORELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 215ART_TEST_TARGET_RUN_TEST_DEFAULT_NORELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 216ART_TEST_TARGET_RUN_TEST_INTERPRETER_NORELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 217ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NORELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 218ART_TEST_TARGET_RUN_TEST_NO_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 219ART_TEST_TARGET_RUN_TEST_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 220ART_TEST_TARGET_RUN_TEST_DEFAULT_NO_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 221ART_TEST_TARGET_RUN_TEST_DEFAULT_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 222ART_TEST_TARGET_RUN_TEST_INTERPRETER_NO_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 223ART_TEST_TARGET_RUN_TEST_INTERPRETER_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 224ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NO_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 225ART_TEST_TARGET_RUN_TEST_OPTIMIZING_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 226ART_TEST_HOST_RUN_TEST_ALL_RULES := 227ART_TEST_HOST_RUN_TEST_DEFAULT_RULES := 228ART_TEST_HOST_RUN_TEST_INTERPRETER_RULES := 229ART_TEST_HOST_RUN_TEST_OPTIMIZING_RULES := 230ART_TEST_HOST_RUN_TEST_RELOCATE_RULES := 231ART_TEST_HOST_RUN_TEST_DEFAULT_RELOCATE_RULES := 232ART_TEST_HOST_RUN_TEST_INTERPRETER_RELOCATE_RULES := 233ART_TEST_HOST_RUN_TEST_OPTIMIZING_RELOCATE_RULES := 234ART_TEST_HOST_RUN_TEST_NORELOCATE_RULES := 235ART_TEST_HOST_RUN_TEST_DEFAULT_NORELOCATE_RULES := 236ART_TEST_HOST_RUN_TEST_INTERPRETER_NORELOCATE_RULES := 237ART_TEST_HOST_RUN_TEST_OPTIMIZING_NORELOCATE_RULES := 238ART_TEST_HOST_RUN_TEST_NO_PREBUILD_RULES := 239ART_TEST_HOST_RUN_TEST_PREBUILD_RULES := 240ART_TEST_HOST_RUN_TEST_DEFAULT_NO_PREBUILD_RULES := 241ART_TEST_HOST_RUN_TEST_DEFAULT_PREBUILD_RULES := 242ART_TEST_HOST_RUN_TEST_INTERPRETER_NO_PREBUILD_RULES := 243ART_TEST_HOST_RUN_TEST_INTERPRETER_PREBUILD_RULES := 244ART_TEST_HOST_RUN_TEST_OPTIMIZING_NO_PREBUILD_RULES := 245ART_TEST_HOST_RUN_TEST_OPTIMIZING_PREBUILD_RULES := 246ART_TEST_HOST_RUN_TEST_ALL$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 247ART_TEST_HOST_RUN_TEST_DEFAULT$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 248ART_TEST_HOST_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 249ART_TEST_HOST_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 250ART_TEST_HOST_RUN_TEST_RELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 251ART_TEST_HOST_RUN_TEST_DEFAULT_RELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 252ART_TEST_HOST_RUN_TEST_INTERPRETER_RELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 253ART_TEST_HOST_RUN_TEST_OPTIMIZING_RELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 254ART_TEST_HOST_RUN_TEST_NORELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 255ART_TEST_HOST_RUN_TEST_DEFAULT_NORELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 256ART_TEST_HOST_RUN_TEST_INTERPRETER_NORELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 257ART_TEST_HOST_RUN_TEST_OPTIMIZING_NORELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 258ART_TEST_HOST_RUN_TEST_NO_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 259ART_TEST_HOST_RUN_TEST_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 260ART_TEST_HOST_RUN_TEST_DEFAULT_NO_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 261ART_TEST_HOST_RUN_TEST_DEFAULT_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 262ART_TEST_HOST_RUN_TEST_INTERPRETER_NO_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 263ART_TEST_HOST_RUN_TEST_INTERPRETER_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 264ART_TEST_HOST_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 265ART_TEST_HOST_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 266ART_TEST_HOST_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 267ART_TEST_HOST_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 268ART_TEST_HOST_RUN_TEST_RELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 269ART_TEST_HOST_RUN_TEST_DEFAULT_RELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 270ART_TEST_HOST_RUN_TEST_INTERPRETER_RELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 271ART_TEST_HOST_RUN_TEST_OPTIMIZING_RELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 272ART_TEST_HOST_RUN_TEST_NORELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 273ART_TEST_HOST_RUN_TEST_DEFAULT_NORELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 274ART_TEST_HOST_RUN_TEST_INTERPRETER_NORELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 275ART_TEST_HOST_RUN_TEST_OPTIMIZING_NORELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 276ART_TEST_HOST_RUN_TEST_NO_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 277ART_TEST_HOST_RUN_TEST_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 278ART_TEST_HOST_RUN_TEST_DEFAULT_NO_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 279ART_TEST_HOST_RUN_TEST_DEFAULT_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 280ART_TEST_HOST_RUN_TEST_INTERPRETER_NO_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 281ART_TEST_HOST_RUN_TEST_INTERPRETER_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 282ART_TEST_HOST_RUN_TEST_OPTIMIZING_NO_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 283ART_TEST_HOST_RUN_TEST_OPTIMIZING_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 284 285# We need dex2oat and dalvikvm on the target as well as the core image. 286TEST_ART_TARGET_SYNC_DEPS += $(ART_TARGET_EXECUTABLES) $(TARGET_CORE_IMG_OUT) $(2ND_TARGET_CORE_IMG_OUT) 287 288# Also need libarttest. 289TEST_ART_TARGET_SYNC_DEPS += $(ART_TARGET_TEST_OUT)/$(TARGET_ARCH)/libarttest.so 290ifdef TARGET_2ND_ARCH 291TEST_ART_TARGET_SYNC_DEPS += $(ART_TARGET_TEST_OUT)/$(TARGET_2ND_ARCH)/libarttest.so 292endif 293 294# All tests require the host executables and the core images. 295ART_TEST_HOST_RUN_TEST_DEPENDENCIES := \ 296 $(ART_HOST_EXECUTABLES) \ 297 $(ART_HOST_OUT_SHARED_LIBRARIES)/libarttest$(ART_HOST_SHLIB_EXTENSION) \ 298 $(ART_HOST_OUT_SHARED_LIBRARIES)/libjavacore$(ART_HOST_SHLIB_EXTENSION) \ 299 $(HOST_CORE_IMG_OUT) 300 301ifneq ($(HOST_PREFER_32_BIT),true) 302ART_TEST_HOST_RUN_TEST_DEPENDENCIES += \ 303 $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libarttest$(ART_HOST_SHLIB_EXTENSION) \ 304 $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libjavacore$(ART_HOST_SHLIB_EXTENSION) \ 305 $(2ND_HOST_CORE_IMG_OUT) 306endif 307 308# For a given test create all the combinations of host/target, compiler and suffix such as: 309# test-art-host-run-test-optimizing-003-omnibus-opcodes32 310# $(1): test name, e.g. 003-omnibus-opcodes 311# $(2): host or target 312# $(3): default, optimizing or interpreter 313# $(4): 32 or 64 314# $(5): run tests with tracing or GC verification enabled or not: trace, gcverify or undefined 315# $(6): relocate, norelocate, no-prebuild or undefined. 316define define-test-art-run-test 317 run_test_options := $(addprefix --runtime-option ,$(DALVIKVM_FLAGS)) 318 run_test_rule_name := 319 uc_host_or_target := 320 prereq_rule := 321 skip_test := false 322 uc_reloc_type := 323 ifeq ($(2),host) 324 uc_host_or_target := HOST 325 run_test_options += --host 326 prereq_rule := $(ART_TEST_HOST_RUN_TEST_DEPENDENCIES) 327 else 328 ifeq ($(2),target) 329 uc_host_or_target := TARGET 330 prereq_rule := test-art-target-sync 331 else 332 $$(error found $(2) expected host or target) 333 endif 334 endif 335 ifeq ($(6),relocate) 336 uc_reloc_type := RELOCATE 337 run_test_options += --relocate --no-prebuild 338 ifneq ($(ART_TEST_RUN_TEST_RELOCATE),true) 339 skip_test := true 340 endif 341 else 342 ifeq ($(6),no-prebuild) 343 uc_reloc_type := NO_PREBUILD 344 run_test_options += --no-relocate --no-prebuild 345 ifneq ($(ART_TEST_RUN_TEST_NO_PREBUILD),true) 346 skip_test := true 347 endif 348 else 349 ifeq ($(6),norelocate) 350 uc_reloc_type := NORELOCATE 351 run_test_options += --no-relocate --prebuild 352 ifneq ($(ART_TEST_RUN_TEST_NO_RELOCATE),true) 353 skip_test := true 354 endif 355 else 356 uc_reloc_type := PREBUILD 357 run_test_options += --relocate --prebuild 358 endif 359 endif 360 endif 361 uc_compiler := 362 ifeq ($(3),optimizing) 363 uc_compiler := OPTIMIZING 364 run_test_options += -Xcompiler-option --compiler-backend=Optimizing 365 ifneq ($$(ART_TEST_OPTIMIZING),true) 366 skip_test := true 367 endif 368 else 369 ifeq ($(3),interpreter) 370 uc_compiler := INTERPRETER 371 run_test_options += --interpreter 372 else 373 ifeq ($(3),default) 374 uc_compiler := DEFAULT 375 else 376 $$(error found $(3) expected optimizing, interpreter or default) 377 endif 378 endif 379 endif 380 ifeq ($(4),64) 381 run_test_options += --64 382 else 383 ifneq ($(4),32) 384 $$(error found $(4) expected 32 or 64) 385 endif 386 endif 387 ifeq ($(5),trace) 388 run_test_options += --trace 389 run_test_rule_name := test-art-$(2)-run-test-trace-$(3)-$(6)-$(1)$(4) 390 ifneq ($$(ART_TEST_TRACE),true) 391 skip_test := true 392 endif 393 else 394 ifeq ($(5),gcverify) 395 run_test_options += --runtime-option -Xgc:preverify --runtime-option -Xgc:postverify \ 396 --runtime-option -Xgc:preverify_rosalloc --runtime-option -Xgc:postverify_rosalloc 397 run_test_rule_name := test-art-$(2)-run-test-gcverify-$(3)-$(6)-$(1)$(4) 398 ifneq ($$(ART_TEST_GC_VERIFY),true) 399 skip_test := true 400 endif 401 else 402 ifeq ($(5),gcstress) 403 run_test_options += --runtime-option -Xgc:SS --runtime-option -Xms2m \ 404 --runtime-option -Xmx2m --runtime-option -Xgc:preverify --runtime-option -Xgc:postverify 405 run_test_rule_name := test-art-$(2)-run-test-gcstress-$(3)-$(6)-$(1)$(4) 406 ifneq ($$(ART_TEST_GC_STRESS),true) 407 skip_test := true 408 endif 409 else 410 ifneq (,$(5)) 411 $$(error found $(5) expected undefined or gcverify, gcstress or trace) 412 endif 413 run_test_rule_name := test-art-$(2)-run-test-$(3)-$(6)-$(1)$(4) 414 endif 415 endif 416 endif 417 ifeq ($$(skip_test),false) 418 run_test_options := --output-path $(ART_HOST_TEST_DIR)/run-test-output/$$(run_test_rule_name) \ 419 $$(run_test_options) 420$$(run_test_rule_name): PRIVATE_RUN_TEST_OPTIONS := $$(run_test_options) 421.PHONY: $$(run_test_rule_name) 422$$(run_test_rule_name): $(DX) $(HOST_OUT_EXECUTABLES)/jasmin $$(prereq_rule) 423 $(hide) $$(call ART_TEST_SKIP,$$@) && \ 424 DX=$(abspath $(DX)) JASMIN=$(abspath $(HOST_OUT_EXECUTABLES)/jasmin) \ 425 art/test/run-test $$(PRIVATE_RUN_TEST_OPTIONS) $(1) \ 426 && $$(call ART_TEST_PASSED,$$@) || $$(call ART_TEST_FAILED,$$@) 427 $$(hide) (echo $(MAKECMDGOALS) | grep -q $$@ && \ 428 echo "run-test run as top-level target, removing test directory $(ART_HOST_TEST_DIR)" && \ 429 rm -r $(ART_HOST_TEST_DIR)) || true 430 else 431 .PHONY: $$(run_test_rule_name) 432$$(run_test_rule_name): 433 endif 434 435 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)$(4)_RULES += $$(run_test_rule_name) 436 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)_RULES += $$(run_test_rule_name) 437 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)_$(1)_RULES += $$(run_test_rule_name) 438 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_compiler)_$$(uc_reloc_type)_RULES += $$(run_test_rule_name) 439 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$(1)_RULES += $$(run_test_rule_name) 440 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$(1)$(4)_RULES += $$(run_test_rule_name) 441 ART_TEST_$$(uc_host_or_target)_RUN_TEST_ALL_RULES += $$(run_test_rule_name) 442 ART_TEST_$$(uc_host_or_target)_RUN_TEST_$$(uc_reloc_type)_RULES += $$(run_test_rule_name) 443 ART_TEST_$$(uc_host_or_target)_RUN_TEST_ALL$(4)_RULES += $$(run_test_rule_name) 444 445 # Clear locally defined variables. 446 skip_test := 447 run_test_options := 448 run_test_rule_name := 449 uc_host_or_target := 450 prereq_rule := 451 uc_reloc_type := 452 uc_compiler := 453endef # define-test-art-run-test 454 455# Define a phony rule whose purpose is to test its prerequisites. 456# $(1): rule name, e.g. test-art-host-run-test32 457# $(2): list of prerequisites 458define define-test-art-run-test-group-rule 459.PHONY: $(1) 460$(1): $(2) 461 $(hide) $$(call ART_TEST_PREREQ_FINISHED,$$@) 462 463endef # define-test-art-run-test-group-rule 464 465# Create rules for a group of run tests. 466# $(1): test name, e.g. 003-omnibus-opcodes 467# $(2): host or target 468# $(3): relocate, norelocate or no-prebuild, or prebuild. 469define define-test-art-run-test-group-type 470 group_uc_host_or_target := 471 ifeq ($(2),host) 472 group_uc_host_or_target := HOST 473 else 474 ifeq ($(2),target) 475 group_uc_host_or_target := TARGET 476 else 477 $$(error found $(2) expected host or target) 478 endif 479 endif 480 481 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),,$(3))) 482 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),,$(3))) 483 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),,$(3))) 484 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace,$(3))) 485 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace,$(3))) 486 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace,$(3))) 487 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcverify,$(3))) 488 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcverify,$(3))) 489 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcverify,$(3))) 490 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcstress,$(3))) 491 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcstress,$(3))) 492 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcstress,$(3))) 493 do_second := false 494 ifeq ($(2),host) 495 ifneq ($$(HOST_PREFER_32_BIT),true) 496 do_second := true 497 endif 498 else 499 ifdef TARGET_2ND_ARCH 500 do_second := true 501 endif 502 endif 503 ifeq (true,$$(do_second)) 504 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),,$(3))) 505 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),,$(3))) 506 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),,$(3))) 507 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace,$(3))) 508 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace,$(3))) 509 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),trace,$(3))) 510 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcverify,$(3))) 511 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcverify,$(3))) 512 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcverify,$(3))) 513 $$(eval $$(call define-test-art-run-test,$(1),$(2),default,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcstress,$(3))) 514 $$(eval $$(call define-test-art-run-test,$(1),$(2),interpreter,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcstress,$(3))) 515 $$(eval $$(call define-test-art-run-test,$(1),$(2),optimizing,$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX),gcstress,$(3))) 516 endif 517endef # define-test-art-run-test-group-type 518 519# Create rules for a group of run tests. 520# $(1): test name, e.g. 003-omnibus-opcodes 521# $(2): host or target 522define define-test-art-run-test-group 523 group_uc_host_or_target := 524 ifeq ($(2),host) 525 group_uc_host_or_target := HOST 526 else 527 ifeq ($(2),target) 528 group_uc_host_or_target := TARGET 529 else 530 $$(error found $(2) expected host or target) 531 endif 532 endif 533 do_second := false 534 ifeq ($(2),host) 535 ifneq ($$(HOST_PREFER_32_BIT),true) 536 do_second := true 537 endif 538 else 539 ifdef TARGET_2ND_ARCH 540 do_second := true 541 endif 542 endif 543 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_DEFAULT_$(1)_RULES := 544 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_INTERPRETER_$(1)_RULES := 545 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_OPTIMIZING_$(1)_RULES := 546 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)_RULES := 547 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX)_RULES := 548 ifeq ($$(do_second),true) 549 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX)_RULES := 550 endif 551 $$(eval $$(call define-test-art-run-test-group-type,$(1),$(2),prebuild)) 552 $$(eval $$(call define-test-art-run-test-group-type,$(1),$(2),norelocate)) 553 $$(eval $$(call define-test-art-run-test-group-type,$(1),$(2),relocate)) 554 $$(eval $$(call define-test-art-run-test-group-type,$(1),$(2),no-prebuild)) 555 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-default-$(1), \ 556 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_DEFAULT_$(1)_RULES))) 557 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-interpreter-$(1), \ 558 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_INTERPRETER_$(1)_RULES))) 559 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-optimizing-$(1), \ 560 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_OPTIMIZING_$(1)_RULES))) 561 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-$(1), \ 562 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)_RULES))) 563 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-$(1)$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX), \ 564 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX)_RULES))) 565 ifeq ($$(do_second),true) 566 $$(eval $$(call define-test-art-run-test-group-rule,test-art-$(2)-run-test-$(1)$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX), \ 567 $$(ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX)_RULES))) 568 endif 569 570 # Clear locally defined variables. 571 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_DEFAULT_$(1)_RULES := 572 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_INTERPRETER_$(1)_RULES := 573 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_OPTIMIZING_$(1)_RULES := 574 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)_RULES := 575 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)$$(ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX)_RULES := 576 ifeq ($$(do_second),true) 577 ART_TEST_$$(group_uc_host_or_target)_RUN_TEST_$(1)$$(2ND_ART_PHONY_TEST_$$(group_uc_host_or_target)_SUFFIX)_RULES := 578 endif 579 group_uc_host_or_target := 580 do_second := 581endef # define-test-art-run-test-group 582 583$(foreach test, $(TEST_ART_RUN_TESTS), $(eval $(call define-test-art-run-test-group,$(test),target))) 584$(foreach test, $(TEST_ART_RUN_TESTS), $(eval $(call define-test-art-run-test-group,$(test),host))) 585 586$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-no-prebuild, \ 587 $(ART_TEST_TARGET_RUN_TEST_NO_PREBUILD_RULES))) 588$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-prebuild, \ 589 $(ART_TEST_TARGET_RUN_TEST_PREBUILD_RULES))) 590$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-norelocate, \ 591 $(ART_TEST_TARGET_RUN_TEST_NORELOCATE_RULES))) 592$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-relocate, \ 593 $(ART_TEST_TARGET_RUN_TEST_RELOCATE_RULES))) 594$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test, \ 595 $(ART_TEST_TARGET_RUN_TEST_ALL_RULES))) 596$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default, \ 597 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_RULES))) 598$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter, \ 599 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_RULES))) 600$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing, \ 601 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RULES))) 602$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default-no-prebuild, \ 603 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_NO_PREBUILD_RULES))) 604$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default-prebuild, \ 605 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_PREBUILD_RULES))) 606$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter-no-prebuild, \ 607 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_NO_PREBUILD_RULES))) 608$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter-prebuild, \ 609 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_PREBUILD_RULES))) 610$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing-no-prebuild, \ 611 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NO_PREBUILD_RULES))) 612$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing-prebuild, \ 613 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_PREBUILD_RULES))) 614$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default-norelocate, \ 615 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_NORELOCATE_RULES))) 616$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter-norelocate, \ 617 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_NORELOCATE_RULES))) 618$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing-norelocate, \ 619 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NORELOCATE_RULES))) 620$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default-relocate, \ 621 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_RELOCATE_RULES))) 622$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter-relocate, \ 623 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_RELOCATE_RULES))) 624$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing-relocate, \ 625 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RELOCATE_RULES))) 626$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test$(ART_PHONY_TEST_TARGET_SUFFIX), \ 627 $(ART_TEST_TARGET_RUN_TEST_ALL$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 628$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default$(ART_PHONY_TEST_TARGET_SUFFIX), \ 629 $(ART_TEST_TARGET_RUN_TEST_DEFAULT$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 630$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter$(ART_PHONY_TEST_TARGET_SUFFIX), \ 631 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 632$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing$(ART_PHONY_TEST_TARGET_SUFFIX), \ 633 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 634$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-no-prebuild$(ART_PHONY_TEST_TARGET_SUFFIX), \ 635 $(ART_TEST_TARGET_RUN_TEST_NO_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 636$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-prebuild$(ART_PHONY_TEST_TARGET_SUFFIX), \ 637 $(ART_TEST_TARGET_RUN_TEST_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 638$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-norelocate$(ART_PHONY_TEST_TARGET_SUFFIX), \ 639 $(ART_TEST_TARGET_RUN_TEST_NORELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 640$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-relocate$(ART_PHONY_TEST_TARGET_SUFFIX), \ 641 $(ART_TEST_TARGET_RUN_TEST_RELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 642$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default-no-prebuild$(ART_PHONY_TEST_TARGET_SUFFIX), \ 643 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_NO_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 644$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default-prebuild$(ART_PHONY_TEST_TARGET_SUFFIX), \ 645 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 646$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter-no-prebuild$(ART_PHONY_TEST_TARGET_SUFFIX), \ 647 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_NO_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 648$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter-prebuild$(ART_PHONY_TEST_TARGET_SUFFIX), \ 649 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 650$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing-no-prebuild$(ART_PHONY_TEST_TARGET_SUFFIX), \ 651 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NO_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 652$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing-prebuild$(ART_PHONY_TEST_TARGET_SUFFIX), \ 653 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 654$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default-norelocate$(ART_PHONY_TEST_TARGET_SUFFIX), \ 655 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_NORELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 656$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter-norelocate$(ART_PHONY_TEST_TARGET_SUFFIX), \ 657 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_NORELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 658$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing-norelocate$(ART_PHONY_TEST_TARGET_SUFFIX), \ 659 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NORELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 660$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default-relocate$(ART_PHONY_TEST_TARGET_SUFFIX), \ 661 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_RELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 662$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter-relocate$(ART_PHONY_TEST_TARGET_SUFFIX), \ 663 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_RELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 664$(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing-relocate$(ART_PHONY_TEST_TARGET_SUFFIX), \ 665 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 666ifdef TARGET_2ND_ARCH 667 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 668 $(ART_TEST_TARGET_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 669 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 670 $(ART_TEST_TARGET_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 671 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 672 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 673 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 674 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 675 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-no-prebuild$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 676 $(ART_TEST_TARGET_RUN_TEST_NO_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 677 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-prebuild$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 678 $(ART_TEST_TARGET_RUN_TEST_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 679 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-norelocate$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 680 $(ART_TEST_TARGET_RUN_TEST_NORELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 681 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-relocate$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 682 $(ART_TEST_TARGET_RUN_TEST_RELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 683 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default-no-prebuild$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 684 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_NO_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 685 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default-prebuild$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 686 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 687 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter-no-prebuild$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 688 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_NO_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 689 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter-prebuild$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 690 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 691 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing-no-prebuild$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 692 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NO_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 693 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing-prebuild$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 694 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 695 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default-norelocate$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 696 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_NORELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 697 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter-norelocate$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 698 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_NORELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 699 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing-norelocate$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 700 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NORELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 701 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-default-relocate$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 702 $(ART_TEST_TARGET_RUN_TEST_DEFAULT_RELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 703 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-interpreter-relocate$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 704 $(ART_TEST_TARGET_RUN_TEST_INTERPRETER_RELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 705 $(eval $(call define-test-art-run-test-group-rule,test-art-target-run-test-optimizing-relocate$(2ND_ART_PHONY_TEST_TARGET_SUFFIX), \ 706 $(ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES))) 707endif 708 709$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-no-prebuild, \ 710 $(ART_TEST_HOST_RUN_TEST_NO_PREBUILD_RULES))) 711$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-prebuild, \ 712 $(ART_TEST_HOST_RUN_TEST_PREBUILD_RULES))) 713$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-norelocate, \ 714 $(ART_TEST_HOST_RUN_TEST_NORELOCATE_RULES))) 715$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-relocate, \ 716 $(ART_TEST_HOST_RUN_TEST_RELOCATE_RULES))) 717$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test, \ 718 $(ART_TEST_HOST_RUN_TEST_ALL_RULES))) 719$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default, \ 720 $(ART_TEST_HOST_RUN_TEST_DEFAULT_RULES))) 721$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter, \ 722 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_RULES))) 723$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing, \ 724 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_RULES))) 725$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default-no-prebuild, \ 726 $(ART_TEST_HOST_RUN_TEST_DEFAULT_NO_PREBUILD_RULES))) 727$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default-prebuild, \ 728 $(ART_TEST_HOST_RUN_TEST_DEFAULT_PREBUILD_RULES))) 729$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter-no-prebuild, \ 730 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_NO_PREBUILD_RULES))) 731$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter-prebuild, \ 732 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_PREBUILD_RULES))) 733$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing-no-prebuild, \ 734 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_NO_PREBUILD_RULES))) 735$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing-prebuild, \ 736 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_PREBUILD_RULES))) 737$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default-norelocate, \ 738 $(ART_TEST_HOST_RUN_TEST_DEFAULT_NORELOCATE_RULES))) 739$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter-norelocate, \ 740 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_NORELOCATE_RULES))) 741$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing-norelocate, \ 742 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_NORELOCATE_RULES))) 743$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default-relocate, \ 744 $(ART_TEST_HOST_RUN_TEST_DEFAULT_RELOCATE_RULES))) 745$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter-relocate, \ 746 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_RELOCATE_RULES))) 747$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing-relocate, \ 748 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_RELOCATE_RULES))) 749$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test$(ART_PHONY_TEST_HOST_SUFFIX), \ 750 $(ART_TEST_HOST_RUN_TEST_ALL$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 751$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default$(ART_PHONY_TEST_HOST_SUFFIX), \ 752 $(ART_TEST_HOST_RUN_TEST_DEFAULT$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 753$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter$(ART_PHONY_TEST_HOST_SUFFIX), \ 754 $(ART_TEST_HOST_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 755$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing$(ART_PHONY_TEST_HOST_SUFFIX), \ 756 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 757$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-no-prebuild$(ART_PHONY_TEST_HOST_SUFFIX), \ 758 $(ART_TEST_HOST_RUN_TEST_NO_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 759$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-prebuild$(ART_PHONY_TEST_HOST_SUFFIX), \ 760 $(ART_TEST_HOST_RUN_TEST_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 761$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-norelocate$(ART_PHONY_TEST_HOST_SUFFIX), \ 762 $(ART_TEST_HOST_RUN_TEST_NORELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 763$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-relocate$(ART_PHONY_TEST_HOST_SUFFIX), \ 764 $(ART_TEST_HOST_RUN_TEST_RELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 765$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default-no-prebuild$(ART_PHONY_TEST_HOST_SUFFIX), \ 766 $(ART_TEST_HOST_RUN_TEST_DEFAULT_NO_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 767$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default-prebuild$(ART_PHONY_TEST_HOST_SUFFIX), \ 768 $(ART_TEST_HOST_RUN_TEST_DEFAULT_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 769$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter-no-prebuild$(ART_PHONY_TEST_HOST_SUFFIX), \ 770 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_NO_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 771$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter-prebuild$(ART_PHONY_TEST_HOST_SUFFIX), \ 772 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 773$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing-no-prebuild$(ART_PHONY_TEST_HOST_SUFFIX), \ 774 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_NO_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 775$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing-prebuild$(ART_PHONY_TEST_HOST_SUFFIX), \ 776 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 777$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default-norelocate$(ART_PHONY_TEST_HOST_SUFFIX), \ 778 $(ART_TEST_HOST_RUN_TEST_DEFAULT_NORELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 779$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter-norelocate$(ART_PHONY_TEST_HOST_SUFFIX), \ 780 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_NORELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 781$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing-norelocate$(ART_PHONY_TEST_HOST_SUFFIX), \ 782 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_NORELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 783$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default-relocate$(ART_PHONY_TEST_HOST_SUFFIX), \ 784 $(ART_TEST_HOST_RUN_TEST_DEFAULT_RELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 785$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter-relocate$(ART_PHONY_TEST_HOST_SUFFIX), \ 786 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_RELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 787$(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing-relocate$(ART_PHONY_TEST_HOST_SUFFIX), \ 788 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_RELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 789ifneq ($(HOST_PREFER_32_BIT),true) 790 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 791 $(ART_TEST_HOST_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 792 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 793 $(ART_TEST_HOST_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 794 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 795 $(ART_TEST_HOST_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 796 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 797 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 798 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-no-prebuild$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 799 $(ART_TEST_HOST_RUN_TEST_NO_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 800 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-prebuild$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 801 $(ART_TEST_HOST_RUN_TEST_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 802 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-norelocate$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 803 $(ART_TEST_HOST_RUN_TEST_NORELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 804 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-relocate$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 805 $(ART_TEST_HOST_RUN_TEST_RELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 806 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default-no-prebuild$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 807 $(ART_TEST_HOST_RUN_TEST_DEFAULT_NO_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 808 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default-prebuild$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 809 $(ART_TEST_HOST_RUN_TEST_DEFAULT_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 810 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter-no-prebuild$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 811 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_NO_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 812 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter-prebuild$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 813 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 814 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing-no-prebuild$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 815 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_NO_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 816 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing-prebuild$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 817 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 818 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default-norelocate$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 819 $(ART_TEST_HOST_RUN_TEST_DEFAULT_NORELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 820 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter-norelocate$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 821 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_NORELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 822 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing-norelocate$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 823 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_NORELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 824 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-default-relocate$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 825 $(ART_TEST_HOST_RUN_TEST_DEFAULT_RELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 826 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-interpreter-relocate$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 827 $(ART_TEST_HOST_RUN_TEST_INTERPRETER_RELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 828 $(eval $(call define-test-art-run-test-group-rule,test-art-host-run-test-optimizing-relocate$(2ND_ART_PHONY_TEST_HOST_SUFFIX), \ 829 $(ART_TEST_HOST_RUN_TEST_OPTIMIZING_RELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES))) 830endif 831 832# include libarttest build rules. 833include $(LOCAL_PATH)/Android.libarttest.mk 834 835define-test-art-run-test := 836define-test-art-run-test-group-rule := 837define-test-art-run-test-group := 838TEST_ART_RUN_TESTS := 839ART_TEST_TARGET_RUN_TEST_ALL_RULES := 840ART_TEST_TARGET_RUN_TEST_DEFAULT_RULES := 841ART_TEST_TARGET_RUN_TEST_INTERPRETER_RULES := 842ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RULES := 843ART_TEST_TARGET_RUN_TEST_RELOCATE_RULES := 844ART_TEST_TARGET_RUN_TEST_DEFAULT_RELOCATE_RULES := 845ART_TEST_TARGET_RUN_TEST_INTERPRETER_RELOCATE_RULES := 846ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RELOCATE_RULES := 847ART_TEST_TARGET_RUN_TEST_NORELOCATE_RULES := 848ART_TEST_TARGET_RUN_TEST_DEFAULT_NORELOCATE_RULES := 849ART_TEST_TARGET_RUN_TEST_INTERPRETER_NORELOCATE_RULES := 850ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NORELOCATE_RULES := 851ART_TEST_TARGET_RUN_TEST_NO_PREBUILD_RULES := 852ART_TEST_TARGET_RUN_TEST_PREBUILD_RULES := 853ART_TEST_TARGET_RUN_TEST_DEFAULT_NO_PREBUILD_RULES := 854ART_TEST_TARGET_RUN_TEST_DEFAULT_PREBUILD_RULES := 855ART_TEST_TARGET_RUN_TEST_INTERPRETER_NO_PREBUILD_RULES := 856ART_TEST_TARGET_RUN_TEST_INTERPRETER_PREBUILD_RULES := 857ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NO_PREBUILD_RULES := 858ART_TEST_TARGET_RUN_TEST_OPTIMIZING_PREBUILD_RULES := 859ART_TEST_TARGET_RUN_TEST_ALL$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 860ART_TEST_TARGET_RUN_TEST_DEFAULT$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 861ART_TEST_TARGET_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 862ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 863ART_TEST_TARGET_RUN_TEST_RELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 864ART_TEST_TARGET_RUN_TEST_DEFAULT_RELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 865ART_TEST_TARGET_RUN_TEST_INTERPRETER_RELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 866ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 867ART_TEST_TARGET_RUN_TEST_NORELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 868ART_TEST_TARGET_RUN_TEST_DEFAULT_NORELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 869ART_TEST_TARGET_RUN_TEST_INTERPRETER_NORELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 870ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NORELOCATE$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 871ART_TEST_TARGET_RUN_TEST_NO_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 872ART_TEST_TARGET_RUN_TEST_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 873ART_TEST_TARGET_RUN_TEST_DEFAULT_NO_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 874ART_TEST_TARGET_RUN_TEST_DEFAULT_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 875ART_TEST_TARGET_RUN_TEST_INTERPRETER_NO_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 876ART_TEST_TARGET_RUN_TEST_INTERPRETER_PREBUILD$(ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 877ART_TEST_TARGET_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 878ART_TEST_TARGET_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 879ART_TEST_TARGET_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 880ART_TEST_TARGET_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 881ART_TEST_TARGET_RUN_TEST_RELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 882ART_TEST_TARGET_RUN_TEST_DEFAULT_RELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 883ART_TEST_TARGET_RUN_TEST_INTERPRETER_RELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 884ART_TEST_TARGET_RUN_TEST_OPTIMIZING_RELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 885ART_TEST_TARGET_RUN_TEST_NORELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 886ART_TEST_TARGET_RUN_TEST_DEFAULT_NORELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 887ART_TEST_TARGET_RUN_TEST_INTERPRETER_NORELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 888ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NORELOCATE$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 889ART_TEST_TARGET_RUN_TEST_NO_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 890ART_TEST_TARGET_RUN_TEST_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 891ART_TEST_TARGET_RUN_TEST_DEFAULT_NO_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 892ART_TEST_TARGET_RUN_TEST_DEFAULT_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 893ART_TEST_TARGET_RUN_TEST_INTERPRETER_NO_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 894ART_TEST_TARGET_RUN_TEST_INTERPRETER_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 895ART_TEST_TARGET_RUN_TEST_OPTIMIZING_NO_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 896ART_TEST_TARGET_RUN_TEST_OPTIMIZING_PREBUILD$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES := 897ART_TEST_HOST_RUN_TEST_ALL_RULES := 898ART_TEST_HOST_RUN_TEST_DEFAULT_RULES := 899ART_TEST_HOST_RUN_TEST_INTERPRETER_RULES := 900ART_TEST_HOST_RUN_TEST_OPTIMIZING_RULES := 901ART_TEST_HOST_RUN_TEST_RELOCATE_RULES := 902ART_TEST_HOST_RUN_TEST_DEFAULT_RELOCATE_RULES := 903ART_TEST_HOST_RUN_TEST_INTERPRETER_RELOCATE_RULES := 904ART_TEST_HOST_RUN_TEST_OPTIMIZING_RELOCATE_RULES := 905ART_TEST_HOST_RUN_TEST_NORELOCATE_RULES := 906ART_TEST_HOST_RUN_TEST_DEFAULT_NORELOCATE_RULES := 907ART_TEST_HOST_RUN_TEST_INTERPRETER_NORELOCATE_RULES := 908ART_TEST_HOST_RUN_TEST_OPTIMIZING_NORELOCATE_RULES := 909ART_TEST_HOST_RUN_TEST_NO_PREBUILD_RULES := 910ART_TEST_HOST_RUN_TEST_PREBUILD_RULES := 911ART_TEST_HOST_RUN_TEST_DEFAULT_NO_PREBUILD_RULES := 912ART_TEST_HOST_RUN_TEST_DEFAULT_PREBUILD_RULES := 913ART_TEST_HOST_RUN_TEST_INTERPRETER_NO_PREBUILD_RULES := 914ART_TEST_HOST_RUN_TEST_INTERPRETER_PREBUILD_RULES := 915ART_TEST_HOST_RUN_TEST_OPTIMIZING_NO_PREBUILD_RULES := 916ART_TEST_HOST_RUN_TEST_OPTIMIZING_PREBUILD_RULES := 917ART_TEST_HOST_RUN_TEST_ALL$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 918ART_TEST_HOST_RUN_TEST_DEFAULT$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 919ART_TEST_HOST_RUN_TEST_INTERPRETER$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 920ART_TEST_HOST_RUN_TEST_OPTIMIZING$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 921ART_TEST_HOST_RUN_TEST_RELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 922ART_TEST_HOST_RUN_TEST_DEFAULT_RELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 923ART_TEST_HOST_RUN_TEST_INTERPRETER_RELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 924ART_TEST_HOST_RUN_TEST_OPTIMIZING_RELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 925ART_TEST_HOST_RUN_TEST_NORELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 926ART_TEST_HOST_RUN_TEST_DEFAULT_NORELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 927ART_TEST_HOST_RUN_TEST_INTERPRETER_NORELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 928ART_TEST_HOST_RUN_TEST_OPTIMIZING_NORELOCATE$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 929ART_TEST_HOST_RUN_TEST_NO_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 930ART_TEST_HOST_RUN_TEST_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 931ART_TEST_HOST_RUN_TEST_DEFAULT_NO_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 932ART_TEST_HOST_RUN_TEST_DEFAULT_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 933ART_TEST_HOST_RUN_TEST_INTERPRETER_NO_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 934ART_TEST_HOST_RUN_TEST_INTERPRETER_PREBUILD$(ART_PHONY_TEST_HOST_SUFFIX)_RULES := 935ART_TEST_HOST_RUN_TEST_ALL$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 936ART_TEST_HOST_RUN_TEST_DEFAULT$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 937ART_TEST_HOST_RUN_TEST_INTERPRETER$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 938ART_TEST_HOST_RUN_TEST_OPTIMIZING$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 939ART_TEST_HOST_RUN_TEST_RELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 940ART_TEST_HOST_RUN_TEST_DEFAULT_RELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 941ART_TEST_HOST_RUN_TEST_INTERPRETER_RELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 942ART_TEST_HOST_RUN_TEST_OPTIMIZING_RELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 943ART_TEST_HOST_RUN_TEST_NORELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 944ART_TEST_HOST_RUN_TEST_DEFAULT_NORELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 945ART_TEST_HOST_RUN_TEST_INTERPRETER_NORELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 946ART_TEST_HOST_RUN_TEST_OPTIMIZING_NORELOCATE$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 947ART_TEST_HOST_RUN_TEST_NO_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 948ART_TEST_HOST_RUN_TEST_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 949ART_TEST_HOST_RUN_TEST_DEFAULT_NO_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 950ART_TEST_HOST_RUN_TEST_DEFAULT_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 951ART_TEST_HOST_RUN_TEST_INTERPRETER_NO_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 952ART_TEST_HOST_RUN_TEST_INTERPRETER_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 953ART_TEST_HOST_RUN_TEST_OPTIMIZING_NO_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 954ART_TEST_HOST_RUN_TEST_OPTIMIZING_PREBUILD$(2ND_ART_PHONY_TEST_HOST_SUFFIX)_RULES := 955