1afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Copyright (C) 2011 The Android Open Source Project
2afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers#
3afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Licensed under the Apache License, Version 2.0 (the "License");
4afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# you may not use this file except in compliance with the License.
5afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# You may obtain a copy of the License at
6afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers#
7afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers#      http://www.apache.org/licenses/LICENSE-2.0
8afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers#
9afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Unless required by applicable law or agreed to in writing, software
10afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# distributed under the License is distributed on an "AS IS" BASIS,
11afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# See the License for the specific language governing permissions and
13afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# limitations under the License.
14afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers#
15afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
16afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersLOCAL_PATH := $(call my-dir)
17afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
18afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersinclude art/build/Android.common_test.mk
19afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
20afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# List of all tests of the form 003-omnibus-opcodes.
21afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersTEST_ART_RUN_TESTS := $(wildcard $(LOCAL_PATH)/[0-9]*)
22afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersTEST_ART_RUN_TESTS := $(subst $(LOCAL_PATH)/,, $(TEST_ART_RUN_TESTS))
23afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
24f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers########################################################################
25f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers# The art-run-tests module, used to build all run-tests into an image.
269dcc4572949f6a8231a1b4ed859676ba6f411726Alex Light
27afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# The path where build only targets will be output, e.g.
28afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# out/target/product/generic_x86_64/obj/PACKAGING/art-run-tests_intermediates/DATA
29afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersart_run_tests_dir := $(call intermediates-dir-for,PACKAGING,art-run-tests)/DATA
30afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
31afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# A generated list of prerequisites that call 'run-test --build-only', the actual prerequisite is
32afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# an empty file touched in the intermediate directory.
33afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersTEST_ART_RUN_TEST_BUILD_RULES :=
34afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
3507f2bc1088039154ee10370989a7d4f37bc138aeNicolas Geoffray# Dependencies for actually running a run-test.
3619ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien HertzTEST_ART_RUN_TEST_DEPENDENCIES := \
3719ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz  $(DX) \
3819ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz  $(HOST_OUT_EXECUTABLES)/jasmin \
3919ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz  $(HOST_OUT_EXECUTABLES)/smali \
402b763c3642b78e8a6a83787aedd713374afec2efSebastien Hertz  $(HOST_OUT_EXECUTABLES)/dexmerger \
412b763c3642b78e8a6a83787aedd713374afec2efSebastien Hertz  $(JACK)
4219ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz
432b763c3642b78e8a6a83787aedd713374afec2efSebastien HertzTEST_ART_RUN_TEST_ORDERONLY_DEPENDENCIES := setup-jack-server
4407f2bc1088039154ee10370989a7d4f37bc138aeNicolas Geoffray
45093f1b4c3007d52a75186175d184ad7f58aaa0dfHiroshi Yamauchiifeq ($(ART_TEST_DEBUG_GC),true)
46093f1b4c3007d52a75186175d184ad7f58aaa0dfHiroshi Yamauchi  ART_TEST_WITH_STRACE := true
47093f1b4c3007d52a75186175d184ad7f58aaa0dfHiroshi Yamauchiendif
48093f1b4c3007d52a75186175d184ad7f58aaa0dfHiroshi Yamauchi
49afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Helper to create individual build targets for tests. Must be called with $(eval).
50afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# $(1): the test number
51afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersdefine define-build-art-run-test
52afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  dmart_target := $(art_run_tests_dir)/art-run-tests/$(1)/touch
5319ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz  run_test_options = --build-only
5491de25fd88ed755be5d72db80c93da364d97e16fAlex Light  ifeq ($(ART_TEST_QUIET),true)
5591de25fd88ed755be5d72db80c93da364d97e16fAlex Light    run_test_options += --quiet
5691de25fd88ed755be5d72db80c93da364d97e16fAlex Light  endif
5719ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz$$(dmart_target): PRIVATE_RUN_TEST_OPTIONS := $$(run_test_options)
5805b91251870533aae58670cd073643ae700c8521Yohann Roussel$$(dmart_target): $(TEST_ART_RUN_TEST_DEPENDENCIES) $(TARGET_JACK_CLASSPATH_DEPENDENCIES) | $(TEST_ART_RUN_TEST_ORDERONLY_DEPENDENCIES)
59afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers	$(hide) rm -rf $$(dir $$@) && mkdir -p $$(dir $$@)
60afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers	$(hide) DX=$(abspath $(DX)) JASMIN=$(abspath $(HOST_OUT_EXECUTABLES)/jasmin) \
618fda9f2aec6820ebf1bd550412ec99d9eb3ffa9eAndreas Gampe	  SMALI=$(abspath $(HOST_OUT_EXECUTABLES)/smali) \
628fda9f2aec6820ebf1bd550412ec99d9eb3ffa9eAndreas Gampe	  DXMERGER=$(abspath $(HOST_OUT_EXECUTABLES)/dexmerger) \
63cc6bb939d00016bfa342fa8cbfc7540b7abc89f2Yohann Roussel	  JACK_VERSION=$(JACK_DEFAULT_VERSION) \
6419ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz	  JACK=$(abspath $(JACK)) \
65aaa779a0a5f7afc23814728de68c6fe3ae1450bfYohann Roussel	  JACK_VERSION=$(JACK_DEFAULT_VERSION) \
6619ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz	  JACK_CLASSPATH=$(TARGET_JACK_CLASSPATH) \
6719ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz	  $(LOCAL_PATH)/run-test $$(PRIVATE_RUN_TEST_OPTIONS) --output-path $$(abspath $$(dir $$@)) $(1)
68afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers	$(hide) touch $$@
69afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
70afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  TEST_ART_RUN_TEST_BUILD_RULES += $$(dmart_target)
71afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  dmart_target :=
7219ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz  run_test_options :=
73afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersendef
74bf66bce894595c2d197c636e28d2c3a8044925e2Ian Rogers$(foreach test, $(TEST_ART_RUN_TESTS), $(eval $(call define-build-art-run-test,$(test))))
75afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
76afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersinclude $(CLEAR_VARS)
77afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersLOCAL_MODULE_TAGS := tests
78afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersLOCAL_MODULE := art-run-tests
79abbf242d57bba783bef7f4f3c4deb0e63d34353fIan RogersLOCAL_ADDITIONAL_DEPENDENCIES := $(TEST_ART_RUN_TEST_BUILD_RULES)
80afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# The build system use this flag to pick up files generated by declare-make-art-run-test.
81afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersLOCAL_PICKUP_FILES := $(art_run_tests_dir)
82afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
83afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersinclude $(BUILD_PHONY_PACKAGE)
84afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
85afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Clear temp vars.
86afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersart_run_tests_dir :=
87afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersdefine-build-art-run-test :=
888a14b75d876ad20f08087664070354fa6f65a029Ian RogersTEST_ART_RUN_TEST_BUILD_RULES :=
89afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
90afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers########################################################################
91f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers# General rules to build and run a run-test.
92f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
93f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian RogersTARGET_TYPES := host target
9441bb331ff93a8e54d0fafaaccfddd791a8ddf430Nicolas GeoffrayPREBUILD_TYPES :=
9541bb331ff93a8e54d0fafaaccfddd791a8ddf430Nicolas Geoffrayifeq ($(ART_TEST_RUN_TEST_PREBUILD),true)
9641bb331ff93a8e54d0fafaaccfddd791a8ddf430Nicolas Geoffray  PREBUILD_TYPES += prebuild
9741bb331ff93a8e54d0fafaaccfddd791a8ddf430Nicolas Geoffrayendif
9886df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersifeq ($(ART_TEST_RUN_TEST_NO_PREBUILD),true)
9986df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers  PREBUILD_TYPES += no-prebuild
10086df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersendif
10186df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersifeq ($(ART_TEST_RUN_TEST_NO_DEX2OAT),true)
10286df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers  PREBUILD_TYPES += no-dex2oat
10386df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersendif
10486df3ac7603f2f50780f6c4310b24a0c38a286a9Ian RogersCOMPILER_TYPES :=
1057617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor Murashkinifeq ($(ART_TEST_INTERPRETER_ACCESS_CHECKS),true)
106825570c844b447beabfc7497d04fbd61c69cf28bAndreas Gampe  COMPILER_TYPES += interp-ac
1077617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor Murashkinendif
10886df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersifeq ($(ART_TEST_INTERPRETER),true)
10986df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers  COMPILER_TYPES += interpreter
11086df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersendif
111e5f13e57ff8fa36342beb33830b3ec5942a61ccaMathieu Chartierifeq ($(ART_TEST_JIT),true)
112e5f13e57ff8fa36342beb33830b3ec5942a61ccaMathieu Chartier  COMPILER_TYPES += jit
113e5f13e57ff8fa36342beb33830b3ec5942a61ccaMathieu Chartierendif
11486df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersifeq ($(ART_TEST_OPTIMIZING),true)
11586df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers  COMPILER_TYPES += optimizing
11686df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersendif
11786df3ac7603f2f50780f6c4310b24a0c38a286a9Ian RogersRELOCATE_TYPES := relocate
11886df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersifeq ($(ART_TEST_RUN_TEST_NO_RELOCATE),true)
11986df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers  RELOCATE_TYPES += no-relocate
12086df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersendif
12186df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersifeq ($(ART_TEST_RUN_TEST_RELOCATE_NO_PATCHOAT),true)
122b9aec2ccd8b9f39a4ddadde5ca8304cea6b1b188Andreas Gampe  RELOCATE_TYPES += relocate-npatchoat
12386df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersendif
1241445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu ChartierTRACE_TYPES := ntrace
12586df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersifeq ($(ART_TEST_TRACE),true)
12686df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers  TRACE_TYPES += trace
12786df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersendif
1287526d783ab68ed1dd53c763c75895cb432532b0fAndreas Gampeifeq ($(ART_TEST_TRACE_STREAM),true)
1297526d783ab68ed1dd53c763c75895cb432532b0fAndreas Gampe  TRACE_TYPES += stream
1307526d783ab68ed1dd53c763c75895cb432532b0fAndreas Gampeendif
13186df3ac7603f2f50780f6c4310b24a0c38a286a9Ian RogersGC_TYPES := cms
132992f1e7cd2049730e45ad9b9489938845c8c4f1fAlex Lightifeq ($(ART_TEST_GC_STRESS),true)
13386df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers  GC_TYPES += gcstress
13486df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersendif
135992f1e7cd2049730e45ad9b9489938845c8c4f1fAlex Lightifeq ($(ART_TEST_GC_VERIFY),true)
13686df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers  GC_TYPES += gcverify
13786df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersendif
13886df3ac7603f2f50780f6c4310b24a0c38a286a9Ian RogersJNI_TYPES := checkjni
13986df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersifeq ($(ART_TEST_JNI_FORCECOPY),true)
14086df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers  JNI_TYPES += forcecopy
14186df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersendif
14286df3ac7603f2f50780f6c4310b24a0c38a286a9Ian RogersIMAGE_TYPES := image
14386df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersifeq ($(ART_TEST_RUN_TEST_NO_IMAGE),true)
14486df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers  IMAGE_TYPES += no-image
14586df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogersendif
146dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Haoifeq ($(ART_TEST_RUN_TEST_MULTI_IMAGE),true)
147dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao  IMAGE_TYPES := multiimage
148dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Haoendif
149c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampeifeq ($(ART_TEST_PIC_IMAGE),true)
150c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe  IMAGE_TYPES += picimage
151dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao  ifeq ($(ART_TEST_RUN_TEST_MULTI_IMAGE),true)
152dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao    IMAGE_TYPES := multipicimage
153dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao  endif
154c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampeendif
1551445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu ChartierPICTEST_TYPES := npictest
156c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampeifeq ($(ART_TEST_PIC_TEST),true)
157c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe  PICTEST_TYPES += pictest
158c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampeendif
159bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas GeoffrayRUN_TYPES :=
160bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffrayifeq ($(ART_TEST_RUN_TEST_DEBUG),true)
161bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  RUN_TYPES += debug
162bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffrayendif
163bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffrayifeq ($(ART_TEST_RUN_TEST_NDEBUG),true)
164bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  RUN_TYPES += ndebug
165bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffrayendif
1661445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu ChartierDEBUGGABLE_TYPES := ndebuggable
16743c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffrayifeq ($(ART_TEST_RUN_TEST_DEBUGGABLE),true)
16843c162f059e6463119aa1efd0841374ca7b4f789Nicolas GeoffrayDEBUGGABLE_TYPES += debuggable
16943c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffrayendif
17041bb331ff93a8e54d0fafaaccfddd791a8ddf430Nicolas GeoffrayADDRESS_SIZES_TARGET := $(ART_PHONY_TEST_TARGET_SUFFIX)
17141bb331ff93a8e54d0fafaaccfddd791a8ddf430Nicolas GeoffrayADDRESS_SIZES_HOST := $(ART_PHONY_TEST_HOST_SUFFIX)
17241bb331ff93a8e54d0fafaaccfddd791a8ddf430Nicolas Geoffrayifeq ($(ART_TEST_RUN_TEST_2ND_ARCH),true)
17341bb331ff93a8e54d0fafaaccfddd791a8ddf430Nicolas Geoffray  ADDRESS_SIZES_TARGET += $(2ND_ART_PHONY_TEST_TARGET_SUFFIX)
17441bb331ff93a8e54d0fafaaccfddd791a8ddf430Nicolas Geoffray  ADDRESS_SIZES_HOST += $(2ND_ART_PHONY_TEST_HOST_SUFFIX)
17541bb331ff93a8e54d0fafaaccfddd791a8ddf430Nicolas Geoffrayendif
176f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian RogersALL_ADDRESS_SIZES := 64 32
17786df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers
178f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers# List all run test names with number arguments agreeing with the comment above.
179f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogersdefine all-run-test-names
180f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach target, $(1), \
181bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    $(foreach run-type, $(2), \
182bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray      $(foreach prebuild, $(3), \
183bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray        $(foreach compiler, $(4), \
184bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray          $(foreach relocate, $(5), \
185bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray            $(foreach trace, $(6), \
186bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray              $(foreach gc, $(7), \
187bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray                $(foreach jni, $(8), \
188bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray                  $(foreach image, $(9), \
189c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe                    $(foreach pictest, $(10), \
19043c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray                      $(foreach debuggable, $(11), \
19143c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray                        $(foreach test, $(12), \
19243c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray                          $(foreach address_size, $(13), \
19343c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray                            test-art-$(target)-run-test-$(run-type)-$(prebuild)-$(compiler)-$(relocate)-$(trace)-$(gc)-$(jni)-$(image)-$(pictest)-$(debuggable)-$(test)$(address_size) \
19443c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray                    )))))))))))))
195f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogersendef  # all-run-test-names
196f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
197f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers# To generate a full list or tests:
198bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray# $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES),$(COMPILER_TYPES), \
19986df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers#        $(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),$(IMAGE_TYPES), \
200d139bb7d1c4b86dd1d05eed32defdf7d5f7aa299Roland Levillain#        $(PICTEST_TYPES),$(DEBUGGABLE_TYPES),$(TEST_ART_RUN_TESTS),$(ALL_ADDRESS_SIZES))
201f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
202f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers# Convert's a rule name to the form used in variables, e.g. no-relocate to NO_RELOCATE
203f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogersdefine name-to-var
204f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(shell echo $(1) | tr '[:lower:]' '[:upper:]' | tr '-' '_')
205f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogersendef  # name-to-var
206f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
207c07d66d816924bf97fa97192c23670010e775a3cAlex LightART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
208c07d66d816924bf97fa97192c23670010e775a3cAlex Light        $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
209c07d66d816924bf97fa97192c23670010e775a3cAlex Light        $(IMAGE_TYPES), $(PICTEST_TYPES), $(DEBUGGABLE_TYPES), $(ART_TEST_RUN_TEST_SKIP), $(ALL_ADDRESS_SIZES))
210c07d66d816924bf97fa97192c23670010e775a3cAlex Light
211fc07555f6b8ce07b2c0897c6919597b53faa419dSebastien Hertz
21218047e4cd06387958d315d4de6d9c1753a08ee9eNicolas Geoffray# Disable 137-cfi (b/27391690).
2136cba74b8c89ac8738212032313635050bb1535a1Hiroshi Yamauchi# Disable 577-profile-foreign-dex (b/27454772).
214fc07555f6b8ce07b2c0897c6919597b53faa419dSebastien HertzTEST_ART_BROKEN_ALL_TARGET_TESTS := \
2156cba74b8c89ac8738212032313635050bb1535a1Hiroshi Yamauchi  577-profile-foreign-dex \
216fc07555f6b8ce07b2c0897c6919597b53faa419dSebastien Hertz
217fc07555f6b8ce07b2c0897c6919597b53faa419dSebastien HertzART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
218fc07555f6b8ce07b2c0897c6919597b53faa419dSebastien Hertz    $(COMPILER_TYPES), $(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
219fc07555f6b8ce07b2c0897c6919597b53faa419dSebastien Hertz    $(IMAGE_TYPES),$(PICTEST_TYPES),$(DEBUGGABLE_TYPES), $(TEST_ART_BROKEN_ALL_TARGET_TESTS), \
220fc07555f6b8ce07b2c0897c6919597b53faa419dSebastien Hertz    $(ALL_ADDRESS_SIZES))
221fc07555f6b8ce07b2c0897c6919597b53faa419dSebastien Hertz
222fc07555f6b8ce07b2c0897c6919597b53faa419dSebastien HertzTEST_ART_BROKEN_ALL_TARGET_TESTS :=
223fc07555f6b8ce07b2c0897c6919597b53faa419dSebastien Hertz
224f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers# Tests that are timing sensitive and flaky on heavily loaded systems.
225f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian RogersTEST_ART_TIMING_SENSITIVE_RUN_TESTS := \
2260b9112ddc74919650d6f62abfb758549763c48caNicolas Geoffray  002-sleep \
227f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  053-wait-some \
228e4a91bbeaa118bc01a5c338c6a6d9ee094a6a2c6Mathieu Chartier  055-enum-performance \
229e4a91bbeaa118bc01a5c338c6a6d9ee094a6a2c6Mathieu Chartier  133-static-invoke-super
230afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
231dedcba2e42ddd8e1202abf50bbcdbe46d28daff3Alex Light# disable timing sensitive tests on "dist" builds.
232dedcba2e42ddd8e1202abf50bbcdbe46d28daff3Alex Lightifdef dist_goal
233dedcba2e42ddd8e1202abf50bbcdbe46d28daff3Alex Light  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
234dedcba2e42ddd8e1202abf50bbcdbe46d28daff3Alex Light        $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
235dedcba2e42ddd8e1202abf50bbcdbe46d28daff3Alex Light        $(IMAGE_TYPES), $(PICTEST_TYPES), $(DEBUGGABLE_TYPES), $(TEST_ART_TIMING_SENSITIVE_RUN_TESTS), $(ALL_ADDRESS_SIZES))
236dedcba2e42ddd8e1202abf50bbcdbe46d28daff3Alex Lightendif
237dedcba2e42ddd8e1202abf50bbcdbe46d28daff3Alex Light
238cfe7184632c2b698179125dc1767ab83004b3d2bRichard Uhler# 147-stripped-dex-fallback isn't supported on device because --strip-dex
239cfe7184632c2b698179125dc1767ab83004b3d2bRichard Uhler# requires the zip command.
240354efa6cdf558b2331e8fec539893fa51763806eVladimir Marko# 569-checker-pattern-replacement tests behaviour present only on host.
241354efa6cdf558b2331e8fec539893fa51763806eVladimir MarkoTEST_ART_BROKEN_TARGET_TESTS := \
242cfe7184632c2b698179125dc1767ab83004b3d2bRichard Uhler  147-stripped-dex-fallback \
243354efa6cdf558b2331e8fec539893fa51763806eVladimir Marko  569-checker-pattern-replacement
244354efa6cdf558b2331e8fec539893fa51763806eVladimir Marko
245354efa6cdf558b2331e8fec539893fa51763806eVladimir Markoifneq (,$(filter target,$(TARGET_TYPES)))
246354efa6cdf558b2331e8fec539893fa51763806eVladimir Marko  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,target,$(RUN_TYPES),$(PREBUILD_TYPES), \
247354efa6cdf558b2331e8fec539893fa51763806eVladimir Marko      $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
248354efa6cdf558b2331e8fec539893fa51763806eVladimir Marko      $(IMAGE_TYPES), $(PICTEST_TYPES), $(DEBUGGABLE_TYPES), $(TEST_ART_BROKEN_TARGET_TESTS), $(ALL_ADDRESS_SIZES))
249354efa6cdf558b2331e8fec539893fa51763806eVladimir Markoendif
250354efa6cdf558b2331e8fec539893fa51763806eVladimir Marko
251354efa6cdf558b2331e8fec539893fa51763806eVladimir MarkoTEST_ART_BROKEN_TARGET_TESTS :=
252354efa6cdf558b2331e8fec539893fa51763806eVladimir Marko
253ec00b7e916aa4bec4abf27788b23b0fe274a086fNicolas Geoffray# Tests that require python3.
254ec00b7e916aa4bec4abf27788b23b0fe274a086fNicolas GeoffrayTEST_ART_PYTHON3_DEPENDENCY_RUN_TESTS := \
255ec00b7e916aa4bec4abf27788b23b0fe274a086fNicolas Geoffray  960-default-smali \
256ec00b7e916aa4bec4abf27788b23b0fe274a086fNicolas Geoffray  961-default-iface-resolution-generated \
257ec00b7e916aa4bec4abf27788b23b0fe274a086fNicolas Geoffray  964-default-iface-init-generated \
258705ad49f353d3f90d8b63625aca2c2035bacdbefAlex Light  968-default-partial-compile-generated \
259812dd366f109e810275f3f869a45b9748255b5a5Nicolas Geoffray  969-iface-super \
260705ad49f353d3f90d8b63625aca2c2035bacdbefAlex Light  970-iface-super-resolution-generated \
261a866ccf692a3823f99423fff92fb3e11c13f4622Nicolas Geoffray  971-iface-super
262ec00b7e916aa4bec4abf27788b23b0fe274a086fNicolas Geoffray
263dedcba2e42ddd8e1202abf50bbcdbe46d28daff3Alex Light# Check if we have python3 to run our tests.
264dedcba2e42ddd8e1202abf50bbcdbe46d28daff3Alex Lightifeq ($(wildcard /usr/bin/python3),)
265dedcba2e42ddd8e1202abf50bbcdbe46d28daff3Alex Light  $(warning "No python3 found. Disabling tests: $(TEST_ART_PYTHON3_DEPENDENCY_RUN_TESTS)")
266ec00b7e916aa4bec4abf27788b23b0fe274a086fNicolas Geoffray
267dedcba2e42ddd8e1202abf50bbcdbe46d28daff3Alex Light  # Currently disable tests requiring python3 when it is not installed.
268ec00b7e916aa4bec4abf27788b23b0fe274a086fNicolas Geoffray  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
269ec00b7e916aa4bec4abf27788b23b0fe274a086fNicolas Geoffray        $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
270ec00b7e916aa4bec4abf27788b23b0fe274a086fNicolas Geoffray        $(IMAGE_TYPES), $(PICTEST_TYPES), $(DEBUGGABLE_TYPES), $(TEST_ART_PYTHON3_DEPENDENCY_RUN_TESTS), $(ALL_ADDRESS_SIZES))
271f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogersendif
272f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
27386df3ac7603f2f50780f6c4310b24a0c38a286a9Ian RogersTEST_ART_TIMING_SENSITIVE_RUN_TESTS :=
27486df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers
27540e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogers# Note 116-nodex2oat is not broken per-se it just doesn't (and isn't meant to) work with --prebuild.
276f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian RogersTEST_ART_BROKEN_PREBUILD_RUN_TESTS := \
2773ad5d5ea993376e7cae41ee6642d5e963822db84Andreas Gampe  116-nodex2oat \
27824e04aa68c575d349eac0d9d09aab9bd3106ef94Jean Christophe Beyler  118-noimage-dex2oat \
27924e04aa68c575d349eac0d9d09aab9bd3106ef94Jean Christophe Beyler  134-nodex2oat-nofallback
280f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
28140e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogersifneq (,$(filter prebuild,$(PREBUILD_TYPES)))
282bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),prebuild, \
28340e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogers      $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
28443c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray      $(IMAGE_TYPES), $(PICTEST_TYPES), $(DEBUGGABLE_TYPES), $(TEST_ART_BROKEN_PREBUILD_RUN_TESTS), $(ALL_ADDRESS_SIZES))
28540e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogersendif
286f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
28786df3ac7603f2f50780f6c4310b24a0c38a286a9Ian RogersTEST_ART_BROKEN_PREBUILD_RUN_TESTS :=
28886df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers
289216848a1d41e986ff169e4277135b8ef545e67a3Andreas Gampe# 554-jit-profile-file is disabled because it needs a primary oat file to know what it should save.
290cfa72391f9ec8ec99059f5125b0cb5c0dc4ac16eNicolas Geoffray# 529 and 555: b/27784033
29140e1912e9fc26f9970035e70d59ef9fbbeb796efIan RogersTEST_ART_BROKEN_NO_PREBUILD_TESTS := \
292216848a1d41e986ff169e4277135b8ef545e67a3Andreas Gampe  117-nopatchoat \
2931153ae16f243adb30fc8509c619025d30408c74aRichard Uhler  147-stripped-dex-fallback \
294cfa72391f9ec8ec99059f5125b0cb5c0dc4ac16eNicolas Geoffray  554-jit-profile-file \
295cfa72391f9ec8ec99059f5125b0cb5c0dc4ac16eNicolas Geoffray  529-checker-unresolved \
2960748ed9fcf63b8fc23e0d8f019ddc933f47fda10Andreas Gampe  555-checker-regression-x86const \
2970748ed9fcf63b8fc23e0d8f019ddc933f47fda10Andreas Gampe  608-checker-unresolved-lse
298f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
29940e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogersifneq (,$(filter no-prebuild,$(PREBUILD_TYPES)))
300bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),no-prebuild, \
30140e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogers      $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
30243c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray      $(IMAGE_TYPES), $(PICTEST_TYPES), $(DEBUGGABLE_TYPES), $(TEST_ART_BROKEN_NO_PREBUILD_TESTS), $(ALL_ADDRESS_SIZES))
30340e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogersendif
304f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
30540e1912e9fc26f9970035e70d59ef9fbbeb796efIan RogersTEST_ART_BROKEN_NO_PREBUILD_TESTS :=
30686df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers
30740e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogers# Note 117-nopatchoat is not broken per-se it just doesn't work (and isn't meant to) without
30840e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogers# --prebuild --relocate
30940e1912e9fc26f9970035e70d59ef9fbbeb796efIan RogersTEST_ART_BROKEN_NO_RELOCATE_TESTS := \
3103ad5d5ea993376e7cae41ee6642d5e963822db84Andreas Gampe  117-nopatchoat \
3113ad5d5ea993376e7cae41ee6642d5e963822db84Andreas Gampe  118-noimage-dex2oat \
312226501b317e148aa8a8983355e85acb59c1eee83Calin Juravle  119-noimage-patchoat \
313226501b317e148aa8a8983355e85acb59c1eee83Calin Juravle  554-jit-profile-file
314f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
31540e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogersifneq (,$(filter no-relocate,$(RELOCATE_TYPES)))
316bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
31740e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogers      $(COMPILER_TYPES), no-relocate,$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
31843c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray      $(IMAGE_TYPES), $(PICTEST_TYPES), $(DEBUGGABLE_TYPES), $(TEST_ART_BROKEN_NO_RELOCATE_TESTS), $(ALL_ADDRESS_SIZES))
31940e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogersendif
320f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
32140e1912e9fc26f9970035e70d59ef9fbbeb796efIan RogersTEST_ART_BROKEN_NO_RELOCATE_TESTS :=
32286df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers
3237617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor Murashkin# Temporarily disable some broken tests when forcing access checks in interpreter b/22414682
3247617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor MurashkinTEST_ART_BROKEN_INTERPRETER_ACCESS_CHECK_TESTS := \
325df707e406877e9c0426dd051c00933ebb331673eIgor Murashkin  137-cfi
3267617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor Murashkin
327825570c844b447beabfc7497d04fbd61c69cf28bAndreas Gampeifneq (,$(filter interp-ac,$(COMPILER_TYPES)))
3287617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor Murashkin  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
329825570c844b447beabfc7497d04fbd61c69cf28bAndreas Gampe      interp-ac,$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
3307617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor Murashkin      $(IMAGE_TYPES), $(PICTEST_TYPES), $(DEBUGGABLE_TYPES), $(TEST_ART_BROKEN_INTERPRETER_ACCESS_CHECK_TESTS), $(ALL_ADDRESS_SIZES))
3317617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor Murashkinendif
3327617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor Murashkin
3337617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor MurashkinTEST_ART_BROKEN_INTERPRETER_ACCESS_CHECK_TESTS :=
3347617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor Murashkin
3351ed11b9ad5512cf464cb1686640df53201fa5297Man Cao# Tests that are broken with GC stress.
3368d148c969769be83fc24484c46be5a2f1e672a0eAlex Light# * 137-cfi needs to unwind a second forked process. We're using a primitive sleep to wait till we
3378d148c969769be83fc24484c46be5a2f1e672a0eAlex Light#   hope the second process got into the expected state. The slowness of gcstress makes this bad.
3389b0f516d3da1dfe10471ab760edc8206809ce829Alex Light# * 961-default-iface-resolution-generated and 964-default-iface-init-generated are very long tests
3399b0f516d3da1dfe10471ab760edc8206809ce829Alex Light#   that often will take more than the timeout to run when gcstress is enabled. This is because
3409b0f516d3da1dfe10471ab760edc8206809ce829Alex Light#   gcstress slows down allocations significantly which these tests do a lot.
341eb19362bae3dc12275c1a3b3aff20e9e8965ead8Mathieu ChartierTEST_ART_BROKEN_GCSTRESS_RUN_TESTS := \
3428d148c969769be83fc24484c46be5a2f1e672a0eAlex Light  137-cfi \
3439b0f516d3da1dfe10471ab760edc8206809ce829Alex Light  961-default-iface-resolution-generated \
3449b0f516d3da1dfe10471ab760edc8206809ce829Alex Light  964-default-iface-init-generated
3451ed11b9ad5512cf464cb1686640df53201fa5297Man Cao
3461ed11b9ad5512cf464cb1686640df53201fa5297Man Caoifneq (,$(filter gcstress,$(GC_TYPES)))
3471ed11b9ad5512cf464cb1686640df53201fa5297Man Cao  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
3481ed11b9ad5512cf464cb1686640df53201fa5297Man Cao      $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),gcstress,$(JNI_TYPES), \
3491ed11b9ad5512cf464cb1686640df53201fa5297Man Cao      $(IMAGE_TYPES), $(PICTEST_TYPES), $(DEBUGGABLE_TYPES), $(TEST_ART_BROKEN_GCSTRESS_RUN_TESTS), $(ALL_ADDRESS_SIZES))
3501ed11b9ad5512cf464cb1686640df53201fa5297Man Caoendif
3511ed11b9ad5512cf464cb1686640df53201fa5297Man Cao
3521ed11b9ad5512cf464cb1686640df53201fa5297Man CaoTEST_ART_BROKEN_GCSTRESS_RUN_TESTS :=
35340e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogers
354f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers# 115-native-bridge setup is complicated. Need to implement it correctly for the target.
355bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas GeoffrayART_TEST_KNOWN_BROKEN += $(call all-run-test-names,target,$(RUN_TYPES),$(PREBUILD_TYPES),$(COMPILER_TYPES), \
35643c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray    $(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),$(IMAGE_TYPES),$(PICTEST_TYPES),$(DEBUGGABLE_TYPES), 115-native-bridge, \
357f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(ALL_ADDRESS_SIZES))
358f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
3593a91309c30a7575776526ffe6e9a46dc648a59feAndreas Gampe# 130-hprof dumps the heap and runs hprof-conv to check whether the file is somewhat readable. This
3603a91309c30a7575776526ffe6e9a46dc648a59feAndreas Gampe# is only possible on the host.
3613a91309c30a7575776526ffe6e9a46dc648a59feAndreas Gampe# TODO: Turn off all the other combinations, this is more about testing actual ART code. A gtest is
3623a91309c30a7575776526ffe6e9a46dc648a59feAndreas Gampe#       very hard to write here, as (for a complete test) JDWP must be set up.
3633a91309c30a7575776526ffe6e9a46dc648a59feAndreas GampeART_TEST_KNOWN_BROKEN += $(call all-run-test-names,target,$(RUN_TYPES),$(PREBUILD_TYPES), \
3643a91309c30a7575776526ffe6e9a46dc648a59feAndreas Gampe    $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),$(IMAGE_TYPES), \
36543c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray    $(PICTEST_TYPES),$(DEBUGGABLE_TYPES),130-hprof,$(ALL_ADDRESS_SIZES))
3663a91309c30a7575776526ffe6e9a46dc648a59feAndreas Gampe
36794329d31d2a99c9aff889b88ba4b675135409b82Andreas Gampe# 131 is an old test. The functionality has been implemented at an earlier stage and is checked
36880b37b7e679a530738c9bcbd39873b6dacf177e5Mathieu Chartier# in tests 138. Blacklisted for debug builds since these builds have duplicate classes checks which
36980b37b7e679a530738c9bcbd39873b6dacf177e5Mathieu Chartier# punt to interpreter.
37080b37b7e679a530738c9bcbd39873b6dacf177e5Mathieu ChartierART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),debug,$(PREBUILD_TYPES), \
37194329d31d2a99c9aff889b88ba4b675135409b82Andreas Gampe    $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),$(IMAGE_TYPES), \
37294329d31d2a99c9aff889b88ba4b675135409b82Andreas Gampe    $(PICTEST_TYPES),$(DEBUGGABLE_TYPES),131-structural-change,$(ALL_ADDRESS_SIZES))
37394329d31d2a99c9aff889b88ba4b675135409b82Andreas Gampe
37480b37b7e679a530738c9bcbd39873b6dacf177e5Mathieu Chartier# 138-duplicate-classes-check. Turned on for debug builds since debug builds have duplicate classes
37580b37b7e679a530738c9bcbd39873b6dacf177e5Mathieu Chartier# checks enabled, b/2133391.
37680b37b7e679a530738c9bcbd39873b6dacf177e5Mathieu ChartierART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),ndebug,$(PREBUILD_TYPES), \
37769b5d8febe6dd552d427c106f3e3f8cf715206b0Andreas Gampe    $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),$(IMAGE_TYPES), \
37869b5d8febe6dd552d427c106f3e3f8cf715206b0Andreas Gampe    $(PICTEST_TYPES),$(DEBUGGABLE_TYPES),138-duplicate-classes-check,$(ALL_ADDRESS_SIZES))
37969b5d8febe6dd552d427c106f3e3f8cf715206b0Andreas Gampe
38003a112d23694afffe9808082e7144b7e8744a4bdAlex Light# All these tests check that we have sane behavior if we don't have a patchoat or dex2oat.
38103a112d23694afffe9808082e7144b7e8744a4bdAlex Light# Therefore we shouldn't run them in situations where we actually don't have these since they
38203a112d23694afffe9808082e7144b7e8744a4bdAlex Light# explicitly test for them. These all also assume we have an image.
3833aa7fb86baa175f6a1e15eabf4b455c533276bf0Richard Uhler# 147-stripped-dex-fallback is disabled because it requires --prebuild.
384226501b317e148aa8a8983355e85acb59c1eee83Calin Juravle# 554-jit-profile-file is disabled because it needs a primary oat file to know what it should save.
38503a112d23694afffe9808082e7144b7e8744a4bdAlex LightTEST_ART_BROKEN_FALLBACK_RUN_TESTS := \
38603a112d23694afffe9808082e7144b7e8744a4bdAlex Light  116-nodex2oat \
38703a112d23694afffe9808082e7144b7e8744a4bdAlex Light  117-nopatchoat \
38803a112d23694afffe9808082e7144b7e8744a4bdAlex Light  118-noimage-dex2oat \
389b9aec2ccd8b9f39a4ddadde5ca8304cea6b1b188Andreas Gampe  119-noimage-patchoat \
390e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe  137-cfi \
391226501b317e148aa8a8983355e85acb59c1eee83Calin Juravle  138-duplicate-classes-check2 \
3923aa7fb86baa175f6a1e15eabf4b455c533276bf0Richard Uhler  147-stripped-dex-fallback \
393226501b317e148aa8a8983355e85acb59c1eee83Calin Juravle  554-jit-profile-file
394b9aec2ccd8b9f39a4ddadde5ca8304cea6b1b188Andreas Gampe
395b9aec2ccd8b9f39a4ddadde5ca8304cea6b1b188Andreas Gampe# This test fails without an image.
396b9aec2ccd8b9f39a4ddadde5ca8304cea6b1b188Andreas GampeTEST_ART_BROKEN_NO_IMAGE_RUN_TESTS := \
397e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe  137-cfi \
398b9aec2ccd8b9f39a4ddadde5ca8304cea6b1b188Andreas Gampe  138-duplicate-classes-check
39903a112d23694afffe9808082e7144b7e8744a4bdAlex Light
40040e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogersifneq (,$(filter no-dex2oat,$(PREBUILD_TYPES)))
401bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),no-dex2oat, \
40240e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogers      $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),$(IMAGE_TYPES), \
40343c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray      $(PICTEST_TYPES),$(DEBUGGABLE_TYPES), $(TEST_ART_BROKEN_FALLBACK_RUN_TESTS),$(ALL_ADDRESS_SIZES))
40440e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogersendif
40540e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogers
40603a112d23694afffe9808082e7144b7e8744a4bdAlex Light
40740e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogersifneq (,$(filter no-image,$(IMAGE_TYPES)))
408bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
40940e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogers      $(COMPILER_TYPES), $(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),no-image, \
41043c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray      $(PICTEST_TYPES), $(DEBUGGABLE_TYPES), $(TEST_ART_BROKEN_FALLBACK_RUN_TESTS),$(ALL_ADDRESS_SIZES))
411b9aec2ccd8b9f39a4ddadde5ca8304cea6b1b188Andreas Gampe  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
412b9aec2ccd8b9f39a4ddadde5ca8304cea6b1b188Andreas Gampe      $(COMPILER_TYPES), $(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),no-image, \
413b9aec2ccd8b9f39a4ddadde5ca8304cea6b1b188Andreas Gampe      $(PICTEST_TYPES), $(DEBUGGABLE_TYPES), $(TEST_ART_BROKEN_NO_IMAGE_RUN_TESTS),$(ALL_ADDRESS_SIZES))
41440e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogersendif
41503a112d23694afffe9808082e7144b7e8744a4bdAlex Light
4161445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu Chartierifneq (,$(filter relocate-npatchoat,$(RELOCATE_TYPES)))
417bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
4181445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu Chartier      $(COMPILER_TYPES), relocate-npatchoat,$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
41943c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray      $(IMAGE_TYPES),$(PICTEST_TYPES),$(DEBUGGABLE_TYPES), $(TEST_ART_BROKEN_FALLBACK_RUN_TESTS),$(ALL_ADDRESS_SIZES))
42040e1912e9fc26f9970035e70d59ef9fbbeb796efIan Rogersendif
42103a112d23694afffe9808082e7144b7e8744a4bdAlex Light
42286df3ac7603f2f50780f6c4310b24a0c38a286a9Ian RogersTEST_ART_BROKEN_FALLBACK_RUN_TESTS :=
42386df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers
424e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe# 137:
425e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe# This test unrolls and expects managed frames, but tracing means we run the interpreter.
426d9bc433a89c41a255d1b669d075f802597839bdcNicolas Geoffray# 802 and 570-checker-osr:
4279cb65bcea36aaabe00e39c061adf35727d251402Andreas Gampe# This test dynamically enables tracing to force a deoptimization. This makes the test meaningless
4289cb65bcea36aaabe00e39c061adf35727d251402Andreas Gampe# when already tracing, and writes an error message that we do not want to check for.
4299cb65bcea36aaabe00e39c061adf35727d251402Andreas GampeTEST_ART_BROKEN_TRACING_RUN_TESTS := \
4307778b880b9cf46fe7a303b11477bd92b5cf65316Mathieu Chartier  087-gc-after-link \
431e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe  137-cfi \
43242fbf491ff231f0c956665d764c6c88c5b0edbd1Mathieu Chartier  141-class-unload \
433d9bc433a89c41a255d1b669d075f802597839bdcNicolas Geoffray  570-checker-osr \
4349cb65bcea36aaabe00e39c061adf35727d251402Andreas Gampe  802-deoptimization
4359cb65bcea36aaabe00e39c061adf35727d251402Andreas Gampe
4367526d783ab68ed1dd53c763c75895cb432532b0fAndreas Gampeifneq (,$(filter trace stream,$(TRACE_TYPES)))
4379cb65bcea36aaabe00e39c061adf35727d251402Andreas Gampe  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
4387526d783ab68ed1dd53c763c75895cb432532b0fAndreas Gampe      $(COMPILER_TYPES),$(RELOCATE_TYPES),trace stream,$(GC_TYPES),$(JNI_TYPES),$(IMAGE_TYPES), \
43943c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray      $(PICTEST_TYPES),$(DEBUGGABLE_TYPES), $(TEST_ART_BROKEN_TRACING_RUN_TESTS),$(ALL_ADDRESS_SIZES))
4409cb65bcea36aaabe00e39c061adf35727d251402Andreas Gampeendif
4419cb65bcea36aaabe00e39c061adf35727d251402Andreas Gampe
442e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe# Known broken tests for the interpreter.
443e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe# CFI unwinding expects managed frames.
444e1bbed21f1f442a047a4035516e067be484d8c47Andreas GampeTEST_ART_BROKEN_INTERPRETER_RUN_TESTS := \
445226501b317e148aa8a8983355e85acb59c1eee83Calin Juravle  137-cfi \
446226501b317e148aa8a8983355e85acb59c1eee83Calin Juravle  554-jit-profile-file
447e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe
448e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampeifneq (,$(filter interpreter,$(COMPILER_TYPES)))
449e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
450e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe      interpreter,$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
451e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe      $(IMAGE_TYPES),$(PICTEST_TYPES),$(DEBUGGABLE_TYPES),$(TEST_ART_BROKEN_INTERPRETER_RUN_TESTS),$(ALL_ADDRESS_SIZES))
452e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampeendif
453e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe
454e1bbed21f1f442a047a4035516e067be484d8c47Andreas GampeTEST_ART_BROKEN_INTERPRETER_RUN_TESTS :=
455e1bbed21f1f442a047a4035516e067be484d8c47Andreas Gampe
456aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas Gampe# Known broken tests for the JIT.
457aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas Gampe# CFI unwinding expects managed frames, and the test does not iterate enough to even compile. JIT
458aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas Gampe# also uses Generic JNI instead of the JNI compiler.
459aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas GampeTEST_ART_BROKEN_JIT_RUN_TESTS := \
460aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas Gampe  137-cfi
461aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas Gampe
462aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas Gampeifneq (,$(filter jit,$(COMPILER_TYPES)))
463aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas Gampe  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
464aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas Gampe      jit,$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
465aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas Gampe      $(IMAGE_TYPES),$(PICTEST_TYPES),$(DEBUGGABLE_TYPES),$(TEST_ART_BROKEN_JIT_RUN_TESTS),$(ALL_ADDRESS_SIZES))
466aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas Gampeendif
467aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas Gampe
468aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas GampeTEST_ART_BROKEN_JIT_RUN_TESTS :=
469aab9f7394408327d8af9f2bec1b65b01e54ec107Andreas Gampe
47073b6cdf10b9052d1e06d9c9c26fb424a201878f5David Brazdil# Known broken tests for the mips32 optimizing compiler backend.
47173b6cdf10b9052d1e06d9c9c26fb424a201878f5David BrazdilTEST_ART_BROKEN_OPTIMIZING_MIPS_RUN_TESTS := \
47273b6cdf10b9052d1e06d9c9c26fb424a201878f5David Brazdil    510-checker-try-catch \
47373b6cdf10b9052d1e06d9c9c26fb424a201878f5David Brazdil
47473b6cdf10b9052d1e06d9c9c26fb424a201878f5David Brazdilifeq (mips,$(TARGET_ARCH))
47573b6cdf10b9052d1e06d9c9c26fb424a201878f5David Brazdil  ifneq (,$(filter optimizing,$(COMPILER_TYPES)))
47673b6cdf10b9052d1e06d9c9c26fb424a201878f5David Brazdil    ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,target,$(RUN_TYPES),$(PREBUILD_TYPES), \
47773b6cdf10b9052d1e06d9c9c26fb424a201878f5David Brazdil        optimizing,$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
47873b6cdf10b9052d1e06d9c9c26fb424a201878f5David Brazdil        $(IMAGE_TYPES),$(PICTEST_TYPES),$(DEBUGGABLE_TYPES), \
47973b6cdf10b9052d1e06d9c9c26fb424a201878f5David Brazdil        $(TEST_ART_BROKEN_OPTIMIZING_MIPS_RUN_TESTS),$(ALL_ADDRESS_SIZES))
48073b6cdf10b9052d1e06d9c9c26fb424a201878f5David Brazdil  endif
4815319defdf502fc4569316473846b83180ec08035Alexandre Ramesendif
4825319defdf502fc4569316473846b83180ec08035Alexandre Rames
48373b6cdf10b9052d1e06d9c9c26fb424a201878f5David BrazdilTEST_ART_BROKEN_OPTIMIZING_MIPS_RUN_TESTS :=
4845319defdf502fc4569316473846b83180ec08035Alexandre Rames
48540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling# Known broken tests for the mips64 optimizing compiler backend.
48640a04bf64e5837fa48aceaffe970c9984c94084aScott WakelingTEST_ART_BROKEN_OPTIMIZING_MIPS64_RUN_TESTS := \
48740a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling
48840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakelingifeq (mips64,$(TARGET_ARCH))
48940a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling  ifneq (,$(filter optimizing,$(COMPILER_TYPES)))
49040a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling    ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,target,$(RUN_TYPES),$(PREBUILD_TYPES), \
49140a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling        optimizing,$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
49240a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling        $(IMAGE_TYPES),$(PICTEST_TYPES),$(DEBUGGABLE_TYPES), \
49340a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling        $(TEST_ART_BROKEN_OPTIMIZING_MIPS64_RUN_TESTS),$(ALL_ADDRESS_SIZES))
49440a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling  endif
49540a04bf64e5837fa48aceaffe970c9984c94084aScott Wakelingendif
49640a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling
49740a04bf64e5837fa48aceaffe970c9984c94084aScott WakelingTEST_ART_BROKEN_OPTIMIZING_MIPS64_RUN_TESTS :=
49840a04bf64e5837fa48aceaffe970c9984c94084aScott Wakeling
499e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949cNicolas Geoffray# Tests that should fail when the optimizing compiler compiles them non-debuggable.
500e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949cNicolas GeoffrayTEST_ART_BROKEN_OPTIMIZING_NONDEBUGGABLE_RUN_TESTS := \
501915b9d0c13bb5091875d868fbfa551d7b65d7477Nicolas Geoffray  454-get-vreg \
502e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949cNicolas Geoffray  457-regs \
503e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949cNicolas Geoffray
504e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949cNicolas Geoffrayifneq (,$(filter optimizing,$(COMPILER_TYPES)))
505e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949cNicolas Geoffray  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
506e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949cNicolas Geoffray      optimizing,$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
5071445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu Chartier      $(IMAGE_TYPES),$(PICTEST_TYPES),ndebuggable,$(TEST_ART_BROKEN_OPTIMIZING_NONDEBUGGABLE_RUN_TESTS),$(ALL_ADDRESS_SIZES))
508e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949cNicolas Geoffrayendif
509e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949cNicolas Geoffray
510e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949cNicolas GeoffrayTEST_ART_BROKEN_OPTIMIZING_NONDEBUGGABLE_RUN_TESTS :=
511e0fe7ae36180863e45cbb9d1e6e9c30b1b1a949cNicolas Geoffray
512e50b8d23d69a0d1f4eee51d34870968cd49a6f7dNicolas Geoffray# Tests that should fail when the optimizing compiler compiles them debuggable.
513e50b8d23d69a0d1f4eee51d34870968cd49a6f7dNicolas GeoffrayTEST_ART_BROKEN_OPTIMIZING_DEBUGGABLE_RUN_TESTS := \
514e50b8d23d69a0d1f4eee51d34870968cd49a6f7dNicolas Geoffray
515e50b8d23d69a0d1f4eee51d34870968cd49a6f7dNicolas Geoffrayifneq (,$(filter optimizing,$(COMPILER_TYPES)))
516e50b8d23d69a0d1f4eee51d34870968cd49a6f7dNicolas Geoffray  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
517e50b8d23d69a0d1f4eee51d34870968cd49a6f7dNicolas Geoffray      optimizing,$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
518e50b8d23d69a0d1f4eee51d34870968cd49a6f7dNicolas Geoffray      $(IMAGE_TYPES),$(PICTEST_TYPES),debuggable,$(TEST_ART_BROKEN_OPTIMIZING_DEBUGGABLE_RUN_TESTS),$(ALL_ADDRESS_SIZES))
519e50b8d23d69a0d1f4eee51d34870968cd49a6f7dNicolas Geoffrayendif
520e50b8d23d69a0d1f4eee51d34870968cd49a6f7dNicolas Geoffray
521e50b8d23d69a0d1f4eee51d34870968cd49a6f7dNicolas GeoffrayTEST_ART_BROKEN_OPTIMIZING_DEBUGGABLE_RUN_TESTS :=
522e50b8d23d69a0d1f4eee51d34870968cd49a6f7dNicolas Geoffray
523b0659e640fd80a8825b433aac9c4f095ecb098cfRoland Levillain# Tests that should fail in the read barrier configuration with the interpreter.
5246c73836daf0e8e5dfd18e4e090eb00c0de2e7255Hiroshi YamauchiTEST_ART_BROKEN_INTERPRETER_READ_BARRIER_RUN_TESTS :=
525e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain
52678ebe4a59ffedee43bf57f27071ab3eac06b87c6Roland Levillain# Tests that should fail in the read barrier configuration with the Optimizing compiler (AOT).
527e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain# 484: Baker's fast path based read barrier compiler instrumentation generates code containing
528e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain#      more parallel moves on x86, thus some Checker assertions may fail.
529cd3d0fb5a4c113cfdb610454d133762a2ab0e6deRoland Levillain# 527: On ARM64, the read barrier instrumentation does not support the HArm64IntermediateAddress
530cd3d0fb5a4c113cfdb610454d133762a2ab0e6deRoland Levillain#      instruction yet (b/26601270).
531e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain# 537: Expects an array copy to be intrinsified on x86-64, but calling-on-slowpath intrinsics are
532e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain#      not yet handled in the read barrier configuration.
533e217fee3c2daabc302f375252c5b22937d90272eRoland LevillainTEST_ART_BROKEN_OPTIMIZING_READ_BARRIER_RUN_TESTS := \
534e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain  484-checker-register-hints \
535cd3d0fb5a4c113cfdb610454d133762a2ab0e6deRoland Levillain  527-checker-array-access-split \
536e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain  537-checker-arraycopy
537e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain
538560297fe39a0f181d7e7dd5f026a8c4a3d4abed1Roland Levillain# Tests that should fail in the read barrier configuration with JIT (Optimizing compiler).
5395c0a4aff91efca13b1a560bca0be98fbc6da5dddHiroshi YamauchiTEST_ART_BROKEN_JIT_READ_BARRIER_RUN_TESTS :=
5403c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain
5411d85823d122b475bdf67cc49aa9eee32736fd5b1Hiroshi Yamauchiifeq ($(ART_USE_READ_BARRIER),true)
542b0659e640fd80a8825b433aac9c4f095ecb098cfRoland Levillain  ifneq (,$(filter interpreter,$(COMPILER_TYPES)))
543b0659e640fd80a8825b433aac9c4f095ecb098cfRoland Levillain    ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES), \
544b0659e640fd80a8825b433aac9c4f095ecb098cfRoland Levillain        $(PREBUILD_TYPES),interpreter,$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES), \
545b0659e640fd80a8825b433aac9c4f095ecb098cfRoland Levillain        $(JNI_TYPES),$(IMAGE_TYPES),$(PICTEST_TYPES),$(DEBUGGABLE_TYPES), \
546b0659e640fd80a8825b433aac9c4f095ecb098cfRoland Levillain        $(TEST_ART_BROKEN_INTERPRETER_READ_BARRIER_RUN_TESTS),$(ALL_ADDRESS_SIZES))
547b0659e640fd80a8825b433aac9c4f095ecb098cfRoland Levillain  endif
548b0659e640fd80a8825b433aac9c4f095ecb098cfRoland Levillain
549e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain  ifneq (,$(filter optimizing,$(COMPILER_TYPES)))
550e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain    ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES), \
551e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain        $(PREBUILD_TYPES),optimizing,$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES), \
552e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain        $(JNI_TYPES),$(IMAGE_TYPES),$(PICTEST_TYPES),$(DEBUGGABLE_TYPES), \
553e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain        $(TEST_ART_BROKEN_OPTIMIZING_READ_BARRIER_RUN_TESTS),$(ALL_ADDRESS_SIZES))
554e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain  endif
5553c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain
5563c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain  ifneq (,$(filter jit,$(COMPILER_TYPES)))
5573c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain    ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES), \
5583c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain        $(PREBUILD_TYPES),jit,$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES), \
5593c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain        $(JNI_TYPES),$(IMAGE_TYPES),$(PICTEST_TYPES),$(DEBUGGABLE_TYPES), \
5603c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain        $(TEST_ART_BROKEN_JIT_READ_BARRIER_RUN_TESTS),$(ALL_ADDRESS_SIZES))
5613c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain  endif
5621d85823d122b475bdf67cc49aa9eee32736fd5b1Hiroshi Yamauchiendif
5631d85823d122b475bdf67cc49aa9eee32736fd5b1Hiroshi Yamauchi
564e217fee3c2daabc302f375252c5b22937d90272eRoland LevillainTEST_ART_BROKEN_OPTIMIZING_READ_BARRIER_RUN_TESTS :=
5653c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland LevillainTEST_ART_BROKEN_JIT_READ_BARRIER_RUN_TESTS :=
5665319defdf502fc4569316473846b83180ec08035Alexandre Rames
567d3997bd98a808c6b166b9c53eef523fc805ea2c2Alex LightTEST_ART_BROKEN_NPIC_RUN_TESTS := 596-app-images
568d3997bd98a808c6b166b9c53eef523fc805ea2c2Alex Lightifneq (,$(filter npictest,$(PICTEST_TYPES)))
569d3997bd98a808c6b166b9c53eef523fc805ea2c2Alex Light  ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
570d3997bd98a808c6b166b9c53eef523fc805ea2c2Alex Light      ${COMPILER_TYPES},$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
571d3997bd98a808c6b166b9c53eef523fc805ea2c2Alex Light      $(IMAGE_TYPES),npictest,$(DEBUGGABLE_TYPES),$(TEST_ART_BROKEN_NPIC_RUN_TESTS),$(ALL_ADDRESS_SIZES))
572d3997bd98a808c6b166b9c53eef523fc805ea2c2Alex Lightendif
573d3997bd98a808c6b166b9c53eef523fc805ea2c2Alex Light
5744d02711ea578dbb789abb30cbaf12f9926e13d81Roland Levillain# Tests that should fail in the heap poisoning configuration with the Optimizing compiler.
575e217fee3c2daabc302f375252c5b22937d90272eRoland Levillain# 055: Exceeds run time limits due to heap poisoning instrumentation (on ARM and ARM64 devices).
5764d02711ea578dbb789abb30cbaf12f9926e13d81Roland LevillainTEST_ART_BROKEN_OPTIMIZING_HEAP_POISONING_RUN_TESTS := \
5774d02711ea578dbb789abb30cbaf12f9926e13d81Roland Levillain  055-enum-performance
5784437219a6cffe2609eb3d31f4ce484ea3622fdf8Andreas Gampe
5794437219a6cffe2609eb3d31f4ce484ea3622fdf8Andreas Gampeifeq ($(ART_HEAP_POISONING),true)
5804d02711ea578dbb789abb30cbaf12f9926e13d81Roland Levillain  ifneq (,$(filter optimizing,$(COMPILER_TYPES)))
5814d02711ea578dbb789abb30cbaf12f9926e13d81Roland Levillain    ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES), \
5824d02711ea578dbb789abb30cbaf12f9926e13d81Roland Levillain        $(PREBUILD_TYPES),optimizing,$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES), \
5834d02711ea578dbb789abb30cbaf12f9926e13d81Roland Levillain        $(IMAGE_TYPES),$(PICTEST_TYPES),$(DEBUGGABLE_TYPES), \
5844d02711ea578dbb789abb30cbaf12f9926e13d81Roland Levillain        $(TEST_ART_BROKEN_OPTIMIZING_HEAP_POISONING_RUN_TESTS),$(ALL_ADDRESS_SIZES))
5854d02711ea578dbb789abb30cbaf12f9926e13d81Roland Levillain  endif
5864437219a6cffe2609eb3d31f4ce484ea3622fdf8Andreas Gampeendif
5874437219a6cffe2609eb3d31f4ce484ea3622fdf8Andreas Gampe
588e217fee3c2daabc302f375252c5b22937d90272eRoland LevillainTEST_ART_BROKEN_OPTIMIZING_HEAP_POISONING_RUN_TESTS :=
5894437219a6cffe2609eb3d31f4ce484ea3622fdf8Andreas Gampe
590f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers# Clear variables ahead of appending to them when defining tests.
591f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), $(eval ART_RUN_TEST_$(call name-to-var,$(target))_RULES :=))
592f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
593f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach prebuild, $(PREBUILD_TYPES), \
594f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(prebuild))_RULES :=)))
595f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
596f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach compiler, $(COMPILER_TYPES), \
597f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(compiler))_RULES :=)))
598f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
599f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach relocate, $(RELOCATE_TYPES), \
600f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(relocate))_RULES :=)))
601f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
602f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach trace, $(TRACE_TYPES), \
603f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(trace))_RULES :=)))
604f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
605f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach gc, $(GC_TYPES), \
606f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(gc))_RULES :=)))
607f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
608f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach jni, $(JNI_TYPES), \
609f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(jni))_RULES :=)))
610f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
61103a112d23694afffe9808082e7144b7e8744a4bdAlex Light  $(foreach image, $(IMAGE_TYPES), \
61203a112d23694afffe9808082e7144b7e8744a4bdAlex Light    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(image))_RULES :=)))
61303a112d23694afffe9808082e7144b7e8744a4bdAlex Light$(foreach target, $(TARGET_TYPES), \
614f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach test, $(TEST_ART_RUN_TESTS), \
615f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(test))_RULES :=)))
616f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
617f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach address_size, $(ALL_ADDRESS_SIZES), \
618f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(address_size))_RULES :=)))
619bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray$(foreach target, $(TARGET_TYPES), \
620bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  $(foreach run_type, $(RUN_TYPES), \
621bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(run_type))_RULES :=)))
62243c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray$(foreach target, $(TARGET_TYPES), \
62343c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray  $(foreach debuggable_type, $(DEBUGGABLE_TYPES), \
62443c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(debuggable_type))_RULES :=)))
625afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
62663fc30e201a74dbad9422a6dbd4c39e4b60ac4c5Andreas Gampe# We need dex2oat and dalvikvm on the target as well as the core images (all images as we sync
62763fc30e201a74dbad9422a6dbd4c39e4b60ac4c5Andreas Gampe# only once).
62863fc30e201a74dbad9422a6dbd4c39e4b60ac4c5Andreas GampeTEST_ART_TARGET_SYNC_DEPS += $(ART_TARGET_EXECUTABLES) $(TARGET_CORE_IMG_OUTS)
629afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
6301c83cbc4a817acbd7f9abb5b29a2d418a958e6a1Andreas Gampe# Also need libarttest.
6311c83cbc4a817acbd7f9abb5b29a2d418a958e6a1Andreas GampeTEST_ART_TARGET_SYNC_DEPS += $(ART_TARGET_TEST_OUT)/$(TARGET_ARCH)/libarttest.so
632031768a340634e2dbdec1aebb2bb3fe509b2f1f6Mathieu ChartierTEST_ART_TARGET_SYNC_DEPS += $(ART_TARGET_TEST_OUT)/$(TARGET_ARCH)/libarttestd.so
6331c83cbc4a817acbd7f9abb5b29a2d418a958e6a1Andreas Gampeifdef TARGET_2ND_ARCH
6341c83cbc4a817acbd7f9abb5b29a2d418a958e6a1Andreas GampeTEST_ART_TARGET_SYNC_DEPS += $(ART_TARGET_TEST_OUT)/$(TARGET_2ND_ARCH)/libarttest.so
635031768a340634e2dbdec1aebb2bb3fe509b2f1f6Mathieu ChartierTEST_ART_TARGET_SYNC_DEPS += $(ART_TARGET_TEST_OUT)/$(TARGET_2ND_ARCH)/libarttestd.so
6361c83cbc4a817acbd7f9abb5b29a2d418a958e6a1Andreas Gampeendif
6371c83cbc4a817acbd7f9abb5b29a2d418a958e6a1Andreas Gampe
638855564b83db7b106d2995d0e784f1f4b62e52371Andreas Gampe# Also need libnativebridgetest.
639855564b83db7b106d2995d0e784f1f4b62e52371Andreas GampeTEST_ART_TARGET_SYNC_DEPS += $(ART_TARGET_TEST_OUT)/$(TARGET_ARCH)/libnativebridgetest.so
640855564b83db7b106d2995d0e784f1f4b62e52371Andreas Gampeifdef TARGET_2ND_ARCH
641855564b83db7b106d2995d0e784f1f4b62e52371Andreas GampeTEST_ART_TARGET_SYNC_DEPS += $(ART_TARGET_TEST_OUT)/$(TARGET_2ND_ARCH)/libnativebridgetest.so
642855564b83db7b106d2995d0e784f1f4b62e52371Andreas Gampeendif
643855564b83db7b106d2995d0e784f1f4b62e52371Andreas Gampe
64463fc30e201a74dbad9422a6dbd4c39e4b60ac4c5Andreas Gampe# All tests require the host executables. The tests also depend on the core images, but on
64563fc30e201a74dbad9422a6dbd4c39e4b60ac4c5Andreas Gampe# specific version depending on the compiler.
646afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian RogersART_TEST_HOST_RUN_TEST_DEPENDENCIES := \
647afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  $(ART_HOST_EXECUTABLES) \
6481c83cbc4a817acbd7f9abb5b29a2d418a958e6a1Andreas Gampe  $(ART_HOST_OUT_SHARED_LIBRARIES)/libarttest$(ART_HOST_SHLIB_EXTENSION) \
649031768a340634e2dbdec1aebb2bb3fe509b2f1f6Mathieu Chartier  $(ART_HOST_OUT_SHARED_LIBRARIES)/libarttestd$(ART_HOST_SHLIB_EXTENSION) \
650855564b83db7b106d2995d0e784f1f4b62e52371Andreas Gampe  $(ART_HOST_OUT_SHARED_LIBRARIES)/libnativebridgetest$(ART_HOST_SHLIB_EXTENSION) \
65167ef2c9d9bd8cbb3bc33903d98bc1617b94ea850Narayan Kamath  $(ART_HOST_OUT_SHARED_LIBRARIES)/libjavacore$(ART_HOST_SHLIB_EXTENSION) \
65210edbb159afae232817c86fc06a6801349f05baeAndreas Gampe  $(ART_HOST_OUT_SHARED_LIBRARIES)/libopenjdk$(ART_HOST_SHLIB_EXTENSION) \
65310edbb159afae232817c86fc06a6801349f05baeAndreas Gampe  $(ART_HOST_OUT_SHARED_LIBRARIES)/libopenjdkd$(ART_HOST_SHLIB_EXTENSION)
654665de8a1710d2418f60d3bffdc99bdac32252530Ian Rogers
655665de8a1710d2418f60d3bffdc99bdac32252530Ian Rogersifneq ($(HOST_PREFER_32_BIT),true)
656665de8a1710d2418f60d3bffdc99bdac32252530Ian RogersART_TEST_HOST_RUN_TEST_DEPENDENCIES += \
6571c83cbc4a817acbd7f9abb5b29a2d418a958e6a1Andreas Gampe  $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libarttest$(ART_HOST_SHLIB_EXTENSION) \
658031768a340634e2dbdec1aebb2bb3fe509b2f1f6Mathieu Chartier  $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libarttestd$(ART_HOST_SHLIB_EXTENSION) \
659855564b83db7b106d2995d0e784f1f4b62e52371Andreas Gampe  $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libnativebridgetest$(ART_HOST_SHLIB_EXTENSION) \
66067ef2c9d9bd8cbb3bc33903d98bc1617b94ea850Narayan Kamath  $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libjavacore$(ART_HOST_SHLIB_EXTENSION) \
66110edbb159afae232817c86fc06a6801349f05baeAndreas Gampe  $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libopenjdk$(ART_HOST_SHLIB_EXTENSION) \
66210edbb159afae232817c86fc06a6801349f05baeAndreas Gampe  $(2ND_ART_HOST_OUT_SHARED_LIBRARIES)/libopenjdkd$(ART_HOST_SHLIB_EXTENSION)
663665de8a1710d2418f60d3bffdc99bdac32252530Ian Rogersendif
664afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
665f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers# Create a rule to build and run a tests following the form:
6669228b2a1dfcf27452a0acfcbf34f72fdaa5a1caaCalin Juravle# test-art-{1: host or target}-run-test-{2: debug ndebug}-{3: prebuild no-prebuild no-dex2oat}-
6677db00cdc25a1a68cbc3d942834b08043ef1253c2Nicolas Geoffray#    {4: interpreter optimizing jit interp-ac}-
6687617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor Murashkin#    {5: relocate nrelocate relocate-npatchoat}-
6691445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu Chartier#    {6: trace or ntrace}-{7: gcstress gcverify cms}-{8: forcecopy checkjni jni}-
6701445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu Chartier#    {9: no-image image picimage}-{10: pictest npictest}-
6711445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu Chartier#    {11: ndebuggable debuggable}-{12: test name}{13: 32 or 64}
672afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersdefine define-test-art-run-test
673611e1db69aff00f297d0d59c47af3c9ae563eb7bNicolas Geoffray  run_test_options :=
674afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  prereq_rule :=
675f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  test_groups :=
676f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  uc_host_or_target :=
67719ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz  jack_classpath :=
6781d4184d65dc199a5ba720245632493b7520d9edfHiroshi Yamauchi  ifeq ($(ART_TEST_WITH_STRACE),true)
6791d4184d65dc199a5ba720245632493b7520d9edfHiroshi Yamauchi    run_test_options += --strace
6801d4184d65dc199a5ba720245632493b7520d9edfHiroshi Yamauchi  endif
681bfac14acef0c2327ef8c28f146dd17d009aa8669Alex Light  ifeq ($(ART_TEST_RUN_TEST_ALWAYS_CLEAN),true)
682bfac14acef0c2327ef8c28f146dd17d009aa8669Alex Light    run_test_options += --always-clean
683bfac14acef0c2327ef8c28f146dd17d009aa8669Alex Light  endif
684f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  ifeq ($(1),host)
685afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers    uc_host_or_target := HOST
686f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    test_groups := ART_RUN_TEST_HOST_RULES
687afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers    run_test_options += --host
68830486987cf93ef76a725a5761c5153c230e9079eYohann Roussel    prereq_rule := $(ART_TEST_HOST_RUN_TEST_DEPENDENCIES) $(HOST_JACK_CLASSPATH_DEPENDENCIES)
68919ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz    jack_classpath := $(HOST_JACK_CLASSPATH)
690afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  else
691f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    ifeq ($(1),target)
692afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers      uc_host_or_target := TARGET
693f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      test_groups := ART_RUN_TEST_TARGET_RULES
69430486987cf93ef76a725a5761c5153c230e9079eYohann Roussel      prereq_rule := test-art-target-sync $(TARGET_JACK_CLASSPATH_DEPENDENCIES)
69519ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz      jack_classpath := $(TARGET_JACK_CLASSPATH)
696afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers    else
697f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      $$(error found $(1) expected $(TARGET_TYPES))
698afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers    endif
699afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  endif
700bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ifeq ($(2),debug)
701bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    test_groups += ART_RUN_TEST_$$(uc_host_or_target)_DEBUG_RULES
702bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  else
703bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    ifeq ($(2),ndebug)
704bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray      test_groups += ART_RUN_TEST_$$(uc_host_or_target)_RELEASE_RULES
705bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray      run_test_options += -O
706bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    else
707bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray      $$(error found $(2) expected $(RUN_TYPES))
708bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    endif
709bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  endif
710bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ifeq ($(3),prebuild)
711f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    test_groups += ART_RUN_TEST_$$(uc_host_or_target)_PREBUILD_RULES
712f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    run_test_options += --prebuild
713a59dd80f9f48cb750d329d4d4af2d99d72b484d1Alex Light  else
714bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    ifeq ($(3),no-prebuild)
715f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      test_groups += ART_RUN_TEST_$$(uc_host_or_target)_NO_PREBUILD_RULES
716f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      run_test_options += --no-prebuild
717a59dd80f9f48cb750d329d4d4af2d99d72b484d1Alex Light    else
718bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray      ifeq ($(3),no-dex2oat)
71903a112d23694afffe9808082e7144b7e8744a4bdAlex Light        test_groups += ART_RUN_TEST_$$(uc_host_or_target)_NO_DEX2OAT_RULES
72003a112d23694afffe9808082e7144b7e8744a4bdAlex Light        run_test_options += --no-prebuild --no-dex2oat
72103a112d23694afffe9808082e7144b7e8744a4bdAlex Light      else
722bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray        $$(error found $(3) expected $(PREBUILD_TYPES))
72303a112d23694afffe9808082e7144b7e8744a4bdAlex Light      endif
724a59dd80f9f48cb750d329d4d4af2d99d72b484d1Alex Light    endif
725a59dd80f9f48cb750d329d4d4af2d99d72b484d1Alex Light  endif
726bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ifeq ($(4),optimizing)
727f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    test_groups += ART_RUN_TEST_$$(uc_host_or_target)_OPTIMIZING_RULES
72863fc30e201a74dbad9422a6dbd4c39e4b60ac4c5Andreas Gampe    run_test_options += --optimizing
729afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  else
730bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    ifeq ($(4),interpreter)
731f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      test_groups += ART_RUN_TEST_$$(uc_host_or_target)_INTERPRETER_RULES
732afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers      run_test_options += --interpreter
733825570c844b447beabfc7497d04fbd61c69cf28bAndreas Gampe    else ifeq ($(4),interp-ac)
7347617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor Murashkin      test_groups += ART_RUN_TEST_$$(uc_host_or_target)_INTERPRETER_ACCESS_CHECKS_RULES
7357617abdb402fd0419daa3eefb2ad059ccbb8b6dbIgor Murashkin      run_test_options += --interpreter --verify-soft-fail
736afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers    else
7377db00cdc25a1a68cbc3d942834b08043ef1253c2Nicolas Geoffray      ifeq ($(4),jit)
7387db00cdc25a1a68cbc3d942834b08043ef1253c2Nicolas Geoffray        test_groups += ART_RUN_TEST_$$(uc_host_or_target)_JIT_RULES
7397db00cdc25a1a68cbc3d942834b08043ef1253c2Nicolas Geoffray        run_test_options += --jit
740afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers      else
7417db00cdc25a1a68cbc3d942834b08043ef1253c2Nicolas Geoffray        $$(error found $(4) expected $(COMPILER_TYPES))
742afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers      endif
743afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers    endif
744afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  endif
74563fc30e201a74dbad9422a6dbd4c39e4b60ac4c5Andreas Gampe
746bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ifeq ($(5),relocate)
747f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    test_groups += ART_RUN_TEST_$$(uc_host_or_target)_RELOCATE_RULES
748f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    run_test_options += --relocate
749afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  else
750bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    ifeq ($(5),no-relocate)
751f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      test_groups += ART_RUN_TEST_$$(uc_host_or_target)_NO_RELOCATE_RULES
752f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      run_test_options += --no-relocate
753f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    else
7541445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu Chartier      ifeq ($(5),relocate-npatchoat)
75503a112d23694afffe9808082e7144b7e8744a4bdAlex Light        test_groups += ART_RUN_TEST_$$(uc_host_or_target)_RELOCATE_NO_PATCHOAT_RULES
75603a112d23694afffe9808082e7144b7e8744a4bdAlex Light        run_test_options += --relocate --no-patchoat
75703a112d23694afffe9808082e7144b7e8744a4bdAlex Light      else
758bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray        $$(error found $(5) expected $(RELOCATE_TYPES))
75903a112d23694afffe9808082e7144b7e8744a4bdAlex Light      endif
760afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers    endif
761afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  endif
762bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ifeq ($(6),trace)
763f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    test_groups += ART_RUN_TEST_$$(uc_host_or_target)_TRACE_RULES
764716e4f88aa062ef51a5cf7a16a452b2d291a1debIan Rogers    run_test_options += --trace
765f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  else
7661445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu Chartier    ifeq ($(6),ntrace)
767f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      test_groups += ART_RUN_TEST_$$(uc_host_or_target)_NO_TRACE_RULES
768f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    else
7697526d783ab68ed1dd53c763c75895cb432532b0fAndreas Gampe      ifeq ($(6),stream)
7707526d783ab68ed1dd53c763c75895cb432532b0fAndreas Gampe        # Group streaming under normal tracing rules.
7717526d783ab68ed1dd53c763c75895cb432532b0fAndreas Gampe        test_groups += ART_RUN_TEST_$$(uc_host_or_target)_TRACE_RULES
7727526d783ab68ed1dd53c763c75895cb432532b0fAndreas Gampe        run_test_options += --trace --stream
7737526d783ab68ed1dd53c763c75895cb432532b0fAndreas Gampe      else
7747526d783ab68ed1dd53c763c75895cb432532b0fAndreas Gampe        $$(error found $(6) expected $(TRACE_TYPES))
7757526d783ab68ed1dd53c763c75895cb432532b0fAndreas Gampe      endif
7765242c0ab0505f0f038b15c3d934a79a6b4e5ef17Ian Rogers    endif
777f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  endif
778bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ifeq ($(7),gcverify)
77986df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers    test_groups += ART_RUN_TEST_$$(uc_host_or_target)_GCVERIFY_RULES
780f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    run_test_options += --gcverify
781716e4f88aa062ef51a5cf7a16a452b2d291a1debIan Rogers  else
782bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    ifeq ($(7),gcstress)
78386df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers      test_groups += ART_RUN_TEST_$$(uc_host_or_target)_GCSTRESS_RULES
784f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      run_test_options += --gcstress
785f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    else
786bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray      ifeq ($(7),cms)
787f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers        test_groups += ART_RUN_TEST_$$(uc_host_or_target)_CMS_RULES
788f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      else
789bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray        $$(error found $(7) expected $(GC_TYPES))
790701aa645a3e61fe8866000bb66b1287196a5536aIan Rogers      endif
791f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    endif
792f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  endif
793bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ifeq ($(8),forcecopy)
79486df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers    test_groups += ART_RUN_TEST_$$(uc_host_or_target)_FORCECOPY_RULES
795f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    run_test_options += --runtime-option -Xjniopts:forcecopy
796f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    ifneq ($$(ART_TEST_JNI_FORCECOPY),true)
797f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      skip_test := true
798f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    endif
799f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  else
800bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    ifeq ($(8),checkjni)
80186df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers      test_groups += ART_RUN_TEST_$$(uc_host_or_target)_CHECKJNI_RULES
802f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      run_test_options += --runtime-option -Xcheck:jni
803701aa645a3e61fe8866000bb66b1287196a5536aIan Rogers    else
804bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray      ifeq ($(8),jni)
805f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers        test_groups += ART_RUN_TEST_$$(uc_host_or_target)_JNI_RULES
8068a14b75d876ad20f08087664070354fa6f65a029Ian Rogers      else
807bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray        $$(error found $(8) expected $(JNI_TYPES))
808701aa645a3e61fe8866000bb66b1287196a5536aIan Rogers      endif
809716e4f88aa062ef51a5cf7a16a452b2d291a1debIan Rogers    endif
810716e4f88aa062ef51a5cf7a16a452b2d291a1debIan Rogers  endif
8118a159fdc17d478b2a3e49705045e51ab19842a34Andreas Gampe  image_suffix := $(4)
812bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  ifeq ($(9),no-image)
81303a112d23694afffe9808082e7144b7e8744a4bdAlex Light    test_groups += ART_RUN_TEST_$$(uc_host_or_target)_NO_IMAGE_RULES
81403a112d23694afffe9808082e7144b7e8744a4bdAlex Light    run_test_options += --no-image
815bf03e846536b1b5150bbc419d9adb651ebc4fa06Andreas Gampe    # Add the core dependency. This is required for pre-building.
816bf03e846536b1b5150bbc419d9adb651ebc4fa06Andreas Gampe    ifeq ($(1),host)
81743c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray      prereq_rule += $$(HOST_CORE_IMAGE_$$(image_suffix)_no-pic_$(13))
818bf03e846536b1b5150bbc419d9adb651ebc4fa06Andreas Gampe    else
81943c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray      prereq_rule += $$(TARGET_CORE_IMAGE_$$(image_suffix)_no-pic_$(13))
820bf03e846536b1b5150bbc419d9adb651ebc4fa06Andreas Gampe    endif
82103a112d23694afffe9808082e7144b7e8744a4bdAlex Light  else
822bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    ifeq ($(9),image)
82303a112d23694afffe9808082e7144b7e8744a4bdAlex Light      test_groups += ART_RUN_TEST_$$(uc_host_or_target)_IMAGE_RULES
824c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe      # Add the core dependency.
825c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe      ifeq ($(1),host)
82643c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray        prereq_rule += $$(HOST_CORE_IMAGE_$$(image_suffix)_no-pic_$(13))
827c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe      else
82843c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray        prereq_rule += $$(TARGET_CORE_IMAGE_$$(image_suffix)_no-pic_$(13))
829c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe      endif
830c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe    else
831c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe      ifeq ($(9),picimage)
832c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe        test_groups += ART_RUN_TEST_$$(uc_host_or_target)_PICIMAGE_RULES
833c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe        run_test_options += --pic-image
834c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe        ifeq ($(1),host)
83543c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray          prereq_rule += $$(HOST_CORE_IMAGE_$$(image_suffix)_pic_$(13))
836c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe        else
83743c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray          prereq_rule += $$(TARGET_CORE_IMAGE_$$(image_suffix)_pic_$(13))
838c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe        endif
839c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe      else
840dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao        ifeq ($(9),multiimage)
841dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao          test_groups += ART_RUN_TEST_$$(uc_host_or_target)_IMAGE_RULES
842dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao          run_test_options += --multi-image
8433c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain                ifeq ($(1),host)
8443c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain                        prereq_rule += $$(HOST_CORE_IMAGE_$$(image_suffix)_no-pic_multi_$(13))
8453c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain                else
8463c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain                        prereq_rule += $$(TARGET_CORE_IMAGE_$$(image_suffix)_no-pic_multi_$(13))
8473c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain                endif
848dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao        else
849dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao          ifeq ($(9),multipicimage)
850dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao            test_groups += ART_RUN_TEST_$$(uc_host_or_target)_PICIMAGE_RULES
8513c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain                        run_test_options += --pic-image --multi-image
8523c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain                        ifeq ($(1),host)
8533c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain                        prereq_rule += $$(HOST_CORE_IMAGE_$$(image_suffix)_pic_multi_$(13))
8543c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain                        else
8553c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain                        prereq_rule += $$(TARGET_CORE_IMAGE_$$(image_suffix)_pic_multi_$(13))
8563c36f66f3e8db8837097a9e82ee36df15bbdfbdfRoland Levillain                        endif
857dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao          else
858dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao            $$(error found $(9) expected $(IMAGE_TYPES))
859dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao          endif
860dcdc85bbd569f0ee66c331b4219c19304a616214Jeff Hao        endif
861c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe      endif
862c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe    endif
863c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe  endif
864c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe  ifeq ($(10),pictest)
865c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe    run_test_options += --pic-test
866c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe  else
8671445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu Chartier    ifeq ($(10),npictest)
868c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe      # Nothing to be done.
86903a112d23694afffe9808082e7144b7e8744a4bdAlex Light    else
870c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe      $$(error found $(10) expected $(PICTEST_TYPES))
87103a112d23694afffe9808082e7144b7e8744a4bdAlex Light    endif
87203a112d23694afffe9808082e7144b7e8744a4bdAlex Light  endif
87343c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray  ifeq ($(11),debuggable)
87443c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray    test_groups += ART_RUN_TEST_$$(uc_host_or_target)_DEBUGGABLE_RULES
87543c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray    run_test_options += --debuggable
87643c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray  else
8771445dd3b3f47fcbdb722f74bcf5189249310a0b4Mathieu Chartier    ifeq ($(11),ndebuggable)
87843c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray    test_groups += ART_RUN_TEST_$$(uc_host_or_target)_NONDEBUGGABLE_RULES
87943c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray      # Nothing to be done.
88043c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray    else
88143c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray      $$(error found $(11) expected $(DEBUGGABLE_TYPES))
88243c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray    endif
88343c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray  endif
88443c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray  # $(12) is the test name.
88543c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray  test_groups += ART_RUN_TEST_$$(uc_host_or_target)_$(call name-to-var,$(12))_RULES
88643c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray  ifeq ($(13),64)
887f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    test_groups += ART_RUN_TEST_$$(uc_host_or_target)_64_RULES
888f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    run_test_options += --64
889f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  else
89043c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray    ifeq ($(13),32)
891f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers      test_groups += ART_RUN_TEST_$$(uc_host_or_target)_32_RULES
892f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    else
89343c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray      $$(error found $(13) expected $(ALL_ADDRESS_SIZES))
894f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    endif
895f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  endif
8964d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe  # Override of host instruction-set-features. Required to test advanced x86 intrinsics. The
8974d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe  # conditionals aren't really correct, they will fail to do the right thing on a 32-bit only
8984d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe  # host. However, this isn't common enough to worry here and make the conditions complicated.
8994d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe  ifneq ($(DEX2OAT_HOST_INSTRUCTION_SET_FEATURES),)
9004d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe    ifeq ($(13),64)
9014d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe      run_test_options += --instruction-set-features $(DEX2OAT_HOST_INSTRUCTION_SET_FEATURES)
9024d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe    endif
9034d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe  endif
9044d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe  ifneq ($($(HOST_2ND_ARCH_VAR_PREFIX)DEX2OAT_HOST_INSTRUCTION_SET_FEATURES),)
9054d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe    ifeq ($(13),32)
9064d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe      run_test_options += --instruction-set-features $($(HOST_2ND_ARCH_VAR_PREFIX)DEX2OAT_HOST_INSTRUCTION_SET_FEATURES)
9074d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe    endif
9084d2ef33723c1d7df269ee82cdfac98e59d95b53dAndreas Gampe  endif
90943c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray  run_test_rule_name := test-art-$(1)-run-test-$(2)-$(3)-$(4)-$(5)-$(6)-$(7)-$(8)-$(9)-$(10)-$(11)-$(12)$(13)
910f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  run_test_options := --output-path $(ART_HOST_TEST_DIR)/run-test-output/$$(run_test_rule_name) \
9115242c0ab0505f0f038b15c3d934a79a6b4e5ef17Ian Rogers      $$(run_test_options)
912c8f23fc19726245da6a11fa2d92e319b9d26c019Nicolas Geoffray  ifneq ($(ART_TEST_ANDROID_ROOT),)
913c8f23fc19726245da6a11fa2d92e319b9d26c019Nicolas Geoffray    run_test_options := --android-root $(ART_TEST_ANDROID_ROOT) $$(run_test_options)
914c8f23fc19726245da6a11fa2d92e319b9d26c019Nicolas Geoffray  endif
91591de25fd88ed755be5d72db80c93da364d97e16fAlex Light  ifeq ($(ART_TEST_QUIET),true)
91691de25fd88ed755be5d72db80c93da364d97e16fAlex Light    run_test_options += --quiet
91791de25fd88ed755be5d72db80c93da364d97e16fAlex Light  endif
918afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$$(run_test_rule_name): PRIVATE_RUN_TEST_OPTIONS := $$(run_test_options)
91919ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz$$(run_test_rule_name): PRIVATE_JACK_CLASSPATH := $$(jack_classpath)
920afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers.PHONY: $$(run_test_rule_name)
92105b91251870533aae58670cd073643ae700c8521Yohann Roussel$$(run_test_rule_name): $(TEST_ART_RUN_TEST_DEPENDENCIES) $(HOST_OUT_EXECUTABLES)/hprof-conv $$(prereq_rule) | $(TEST_ART_RUN_TEST_ORDERONLY_DEPENDENCIES)
922afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers	$(hide) $$(call ART_TEST_SKIP,$$@) && \
92319ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz	  DX=$(abspath $(DX)) \
92419ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz	    JASMIN=$(abspath $(HOST_OUT_EXECUTABLES)/jasmin) \
9258fda9f2aec6820ebf1bd550412ec99d9eb3ffa9eAndreas Gampe	    SMALI=$(abspath $(HOST_OUT_EXECUTABLES)/smali) \
9268fda9f2aec6820ebf1bd550412ec99d9eb3ffa9eAndreas Gampe	    DXMERGER=$(abspath $(HOST_OUT_EXECUTABLES)/dexmerger) \
927cc6bb939d00016bfa342fa8cbfc7540b7abc89f2Yohann Roussel	    JACK_VERSION=$(JACK_DEFAULT_VERSION) \
92819ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz	    JACK=$(abspath $(JACK)) \
929aaa779a0a5f7afc23814728de68c6fe3ae1450bfYohann Roussel	    JACK_VERSION=$(JACK_DEFAULT_VERSION) \
93019ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz	    JACK_CLASSPATH=$$(PRIVATE_JACK_CLASSPATH) \
93143c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray	    art/test/run-test $$(PRIVATE_RUN_TEST_OPTIONS) $(12) \
932afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers	      && $$(call ART_TEST_PASSED,$$@) || $$(call ART_TEST_FAILED,$$@)
933afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers	$$(hide) (echo $(MAKECMDGOALS) | grep -q $$@ && \
934afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers	  echo "run-test run as top-level target, removing test directory $(ART_HOST_TEST_DIR)" && \
935afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers	  rm -r $(ART_HOST_TEST_DIR)) || true
936afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
937f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $$(foreach test_group,$$(test_groups), $$(eval $$(value test_group) += $$(run_test_rule_name)))
938afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
939afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  # Clear locally defined variables.
940f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  uc_host_or_target :=
941f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  test_groups :=
942afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  run_test_options :=
943afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  run_test_rule_name :=
944afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers  prereq_rule :=
94519ac0276208f0afef6ba8a4ab34b74a59b8d11d7Sebastien Hertz  jack_classpath :=
946afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersendef  # define-test-art-run-test
947afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
948f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
949f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach test, $(TEST_ART_RUN_TESTS), \
950bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    $(foreach run_type, $(RUN_TYPES), \
951bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray      $(foreach address_size, $(ADDRESS_SIZES_$(call name-to-var,$(target))), \
952bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray        $(foreach prebuild, $(PREBUILD_TYPES), \
953bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray          $(foreach compiler, $(COMPILER_TYPES), \
954bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray            $(foreach relocate, $(RELOCATE_TYPES), \
955bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray              $(foreach trace, $(TRACE_TYPES), \
956bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray                $(foreach gc, $(GC_TYPES), \
957bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray                  $(foreach jni, $(JNI_TYPES), \
958bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray                    $(foreach image, $(IMAGE_TYPES), \
959c23c9c93aade8dd99d23ad796888cbf2f7f96a47Andreas Gampe                      $(foreach pictest, $(PICTEST_TYPES), \
96043c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray                        $(foreach debuggable, $(DEBUGGABLE_TYPES), \
96143c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray                          $(eval $(call define-test-art-run-test,$(target),$(run_type),$(prebuild),$(compiler),$(relocate),$(trace),$(gc),$(jni),$(image),$(pictest),$(debuggable),$(test),$(address_size))) \
96243c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray                  )))))))))))))
963f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogersdefine-test-art-run-test :=
964f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
965afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# Define a phony rule whose purpose is to test its prerequisites.
966f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers# $(1): host or target
967afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers# $(2): list of prerequisites
968f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogersdefine define-test-art-run-test-group
969afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers.PHONY: $(1)
970afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers$(1): $(2)
971afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers	$(hide) $$(call ART_TEST_PREREQ_FINISHED,$$@)
972afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
973afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersendef  # define-test-art-run-test-group
974afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
975afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogers
976f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), $(eval \
977f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(call define-test-art-run-test-group,test-art-$(target)-run-test,$(ART_RUN_TEST_$(call name-to-var,$(target))_RULES))))
978f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
979f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach prebuild, $(PREBUILD_TYPES), $(eval \
980f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(call define-test-art-run-test-group,test-art-$(target)-run-test-$(prebuild),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(prebuild))_RULES)))))
981f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
982bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  $(foreach run-type, $(RUN_TYPES), $(eval \
983bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    $(call define-test-art-run-test-group,test-art-$(target)-run-test-$(run-type),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(run-type))_RULES)))))
984bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray$(foreach target, $(TARGET_TYPES), \
985f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach compiler, $(COMPILER_TYPES), $(eval \
986f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(call define-test-art-run-test-group,test-art-$(target)-run-test-$(compiler),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(compiler))_RULES)))))
987f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
988f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach relocate, $(RELOCATE_TYPES), $(eval \
989f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(call define-test-art-run-test-group,test-art-$(target)-run-test-$(relocate),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(relocate))_RULES)))))
990f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
991f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach trace, $(TRACE_TYPES), $(eval \
992f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(call define-test-art-run-test-group,test-art-$(target)-run-test-$(trace),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(trace))_RULES)))))
993f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
994f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach gc, $(GC_TYPES), $(eval \
995f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(call define-test-art-run-test-group,test-art-$(target)-run-test-$(gc),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(gc))_RULES)))))
996f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
997f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach jni, $(JNI_TYPES), $(eval \
998f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(call define-test-art-run-test-group,test-art-$(target)-run-test-$(jni),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(jni))_RULES)))))
999f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
100043c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray  $(foreach debuggable, $(DEBUGGABLE_TYPES), $(eval \
100143c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray    $(call define-test-art-run-test-group,test-art-$(target)-run-test-$(debuggable),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(debuggable))_RULES)))))
100243c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray$(foreach target, $(TARGET_TYPES), \
100303a112d23694afffe9808082e7144b7e8744a4bdAlex Light  $(foreach image, $(IMAGE_TYPES), $(eval \
100403a112d23694afffe9808082e7144b7e8744a4bdAlex Light    $(call define-test-art-run-test-group,test-art-$(target)-run-test-$(image),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(image))_RULES)))))
100503a112d23694afffe9808082e7144b7e8744a4bdAlex Light$(foreach target, $(TARGET_TYPES), \
1006f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach test, $(TEST_ART_RUN_TESTS), $(eval \
1007f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(call define-test-art-run-test-group,test-art-$(target)-run-test-$(test),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(test))_RULES)))))
1008f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
100986df3ac7603f2f50780f6c4310b24a0c38a286a9Ian Rogers  $(foreach address_size, $(ADDRESS_SIZES_$(call name-to-var,$(target))), $(eval \
1010a3cf6ce149b98b90f5f646e2a3adc5259ae0c3c6Ian Rogers    $(call define-test-art-run-test-group,test-art-$(target)-run-test$(address_size),$(ART_RUN_TEST_$(call name-to-var,$(target))_$(address_size)_RULES)))))
1011f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers
1012f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers# Clear variables now we're finished with them.
1013f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), $(eval ART_RUN_TEST_$(call name-to-var,$(target))_RULES :=))
1014f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
1015f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach prebuild, $(PREBUILD_TYPES), \
1016f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(prebuild))_RULES :=)))
1017f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
1018f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach compiler, $(COMPILER_TYPES), \
1019f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(compiler))_RULES :=)))
1020f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
1021f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach relocate, $(RELOCATE_TYPES), \
1022f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(relocate))_RULES :=)))
1023f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
1024f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach trace, $(TRACE_TYPES), \
1025f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(trace))_RULES :=)))
1026f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
1027f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach gc, $(GC_TYPES), \
1028f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(gc))_RULES :=)))
1029f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
1030f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach jni, $(JNI_TYPES), \
1031f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(jni))_RULES :=)))
1032f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
103343c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray  $(foreach debuggable, $(DEBUGGABLE_TYPES), \
103443c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(debuggable))_RULES :=)))
103543c162f059e6463119aa1efd0841374ca7b4f789Nicolas Geoffray$(foreach target, $(TARGET_TYPES), \
103603a112d23694afffe9808082e7144b7e8744a4bdAlex Light  $(foreach image, $(IMAGE_TYPES), \
103703a112d23694afffe9808082e7144b7e8744a4bdAlex Light    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(image))_RULES :=)))
103803a112d23694afffe9808082e7144b7e8744a4bdAlex Light$(foreach target, $(TARGET_TYPES), \
1039f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach test, $(TEST_ART_RUN_TESTS), \
1040f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(test))_RULES :=)))
1041f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers$(foreach target, $(TARGET_TYPES), \
1042f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers  $(foreach address_size, $(ALL_ADDRESS_SIZES), \
1043f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian Rogers    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(address_size))_RULES :=)))
1044bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray$(foreach target, $(TARGET_TYPES), \
1045bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray  $(foreach run_type, $(RUN_TYPES), \
1046bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas Geoffray    $(eval ART_RUN_TEST_$(call name-to-var,$(target))_$(call name-to-var,$(run_type))_RULES :=)))
1047afd9acc30bdd11cdd12d8209eb994cb371c65e33Ian Rogersdefine-test-art-run-test-group :=
1048f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian RogersTARGET_TYPES :=
1049f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian RogersPREBUILD_TYPES :=
1050f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian RogersCOMPILER_TYPES :=
1051f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian RogersRELOCATE_TYPES :=
1052f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian RogersTRACE_TYPES :=
1053f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian RogersGC_TYPES :=
1054f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian RogersJNI_TYPES :=
105503a112d23694afffe9808082e7144b7e8744a4bdAlex LightIMAGE_TYPES :=
105686df3ac7603f2f50780f6c4310b24a0c38a286a9Ian RogersADDRESS_SIZES_TARGET :=
105786df3ac7603f2f50780f6c4310b24a0c38a286a9Ian RogersADDRESS_SIZES_HOST :=
1058f5c44b37131e7c54675db7d4446cfb256f6bd0f7Ian RogersALL_ADDRESS_SIZES :=
1059bd2c63ca277a6f7659bc0821e0af1521ce45928eNicolas GeoffrayRUN_TYPES :=
106043c162f059e6463119aa1efd0841374ca7b4f789Nicolas GeoffrayDEBUGGABLE_TYPES :=
10619fcaa4b46789650c42d819f163781312e463b6ceIan Rogers
10629fcaa4b46789650c42d819f163781312e463b6ceIan Rogersinclude $(LOCAL_PATH)/Android.libarttest.mk
10639fcaa4b46789650c42d819f163781312e463b6ceIan Rogersinclude art/test/Android.libnativebridgetest.mk
1064