blob: 034e47544641e428d0c32be2505b33b6b629f8ba [file] [log] [blame]
Brian Carlstrombbf1e412011-09-18 14:14:51 -07001#
2# Copyright (C) 2011 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17########################################################################
18
Brian Carlstromb2793372012-03-17 18:27:16 -070019ART_TEST_TARGET_DEX_FILES :=
20ART_TEST_HOST_DEX_FILES :=
Brian Carlstrombbf1e412011-09-18 14:14:51 -070021
Brian Carlstrom32b4b2a2012-01-31 16:21:40 -080022# $(1): module prefix
23# $(2): input test directory
Brian Carlstromb2793372012-03-17 18:27:16 -070024# $(3): target output module path (default module path is used on host)
Brian Carlstrombbf1e412011-09-18 14:14:51 -070025define build-art-test-dex
Brian Carlstrom265091e2013-01-30 14:08:26 -080026 ifeq ($(ART_BUILD_TARGET),true)
27 include $(CLEAR_VARS)
28 LOCAL_MODULE := $(1)-$(2)
29 LOCAL_MODULE_TAGS := tests
30 LOCAL_SRC_FILES := $(call all-java-files-under, test/$(2))
31 LOCAL_JAVA_LIBRARIES := $(TARGET_CORE_JARS)
32 LOCAL_NO_STANDARD_LIBRARIES := true
33 LOCAL_MODULE_PATH := $(3)
34 LOCAL_DEX_PREOPT_IMAGE := $(TARGET_CORE_IMG_OUT)
35 LOCAL_DEX_PREOPT := false
36 include $(BUILD_JAVA_LIBRARY)
37 ART_TEST_TARGET_DEX_FILES += $(3)/$$(LOCAL_MODULE).jar
38 endif
Brian Carlstromb2793372012-03-17 18:27:16 -070039
Brian Carlstrom265091e2013-01-30 14:08:26 -080040 ifeq ($(ART_BUILD_HOST),true)
41 include $(CLEAR_VARS)
42 LOCAL_MODULE := $(1)-$(2)
43 LOCAL_SRC_FILES := $(call all-java-files-under, test/$(2))
44 LOCAL_JAVA_LIBRARIES := $(HOST_CORE_JARS)
45 LOCAL_NO_STANDARD_LIBRARIES := true
46 LOCAL_DEX_PREOPT_IMAGE := $(HOST_CORE_IMG_OUT)
47 LOCAL_BUILD_HOST_DEX := true
48 include $(BUILD_HOST_JAVA_LIBRARY)
49 ART_TEST_HOST_DEX_FILES += $$(LOCAL_MODULE_PATH)/$$(LOCAL_MODULE).jar
50 endif
Brian Carlstrombbf1e412011-09-18 14:14:51 -070051endef
jeffhao50808a32012-05-30 17:03:05 -070052$(foreach dir,$(TEST_DEX_DIRECTORIES), $(eval $(call build-art-test-dex,art-test-dex,$(dir),$(ART_NATIVETEST_OUT))))
53$(foreach dir,$(TEST_OAT_DIRECTORIES), $(eval $(call build-art-test-dex,oat-test-dex,$(dir),$(ART_TEST_OUT))))
Brian Carlstrombbf1e412011-09-18 14:14:51 -070054
55########################################################################
56
Brian Carlstromb2793372012-03-17 18:27:16 -070057ART_TEST_TARGET_OAT_TARGETS :=
58ART_TEST_HOST_OAT_TARGETS :=
Ian Rogers85d9ba62013-01-16 22:32:12 -080059ART_TEST_HOST_INTERPRETER_OAT_TARGETS :=
Brian Carlstrombbf1e412011-09-18 14:14:51 -070060
61# $(1): directory
62# $(2): arguments
Brian Carlstromb2793372012-03-17 18:27:16 -070063define declare-test-art-oat-targets
Brian Carlstrombbf1e412011-09-18 14:14:51 -070064.PHONY: test-art-target-oat-$(1)
Brian Carlstrom32b4b2a2012-01-31 16:21:40 -080065test-art-target-oat-$(1): $(ART_TEST_OUT)/oat-test-dex-$(1).jar test-art-target-sync
Brian Carlstrom47a0d5a2011-10-12 21:20:05 -070066 adb shell touch $(ART_TEST_DIR)/test-art-target-oat-$(1)
67 adb shell rm $(ART_TEST_DIR)/test-art-target-oat-$(1)
Brian Carlstrom32b4b2a2012-01-31 16:21:40 -080068 adb shell sh -c "oatexecd -Ximage:$(ART_TEST_DIR)/core.art -classpath $(ART_TEST_DIR)/oat-test-dex-$(1).jar -Djava.library.path=$(ART_TEST_DIR) $(1) $(2) && touch $(ART_TEST_DIR)/test-art-target-oat-$(1)"
Brian Carlstrom47a0d5a2011-10-12 21:20:05 -070069 $(hide) (adb pull $(ART_TEST_DIR)/test-art-target-oat-$(1) /tmp/ && echo test-art-target-oat-$(1) PASSED) || (echo test-art-target-oat-$(1) FAILED && exit 1)
Brian Carlstrombbf1e412011-09-18 14:14:51 -070070 $(hide) rm /tmp/test-art-target-oat-$(1)
71
Brian Carlstrom38a3a0c2013-02-06 16:47:36 -080072$(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).jar.oat: $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).jar $(HOST_CORE_IMG_OUT) | $(DEX2OAT)
Brian Carlstrom3f47c122013-03-07 00:02:40 -080073 $(DEX2OAT) --runtime-arg -Xms16m --runtime-arg -Xmx16m --boot-image=$(HOST_CORE_IMG_OUT) --dex-file=$$< --oat-file=$$@ --instruction-set=$(HOST_ARCH) --host --host-prefix="" --android-root=$(HOST_OUT)
Brian Carlstrom38a3a0c2013-02-06 16:47:36 -080074
Brian Carlstromb2793372012-03-17 18:27:16 -070075.PHONY: test-art-host-oat-$(1)
Brian Carlstrom38a3a0c2013-02-06 16:47:36 -080076test-art-host-oat-$(1): $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).jar.oat test-art-host-dependencies
Brian Carlstromb2793372012-03-17 18:27:16 -070077 mkdir -p /tmp/android-data/test-art-host-oat-$(1)
78 ANDROID_DATA=/tmp/android-data/test-art-host-oat-$(1) \
79 ANDROID_ROOT=$(HOST_OUT) \
80 LD_LIBRARY_PATH=$(HOST_OUT_SHARED_LIBRARIES) \
Brian Carlstrom5d93cf92012-06-12 12:05:05 -070081 oatexecd -Ximage:$(shell pwd)/$(HOST_CORE_IMG_OUT) -classpath $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).jar -Djava.library.path=$(HOST_OUT_SHARED_LIBRARIES) $(1) $(2) \
82 && echo test-art-host-oat-$(1) PASSED || (echo test-art-host-oat-$(1) FAILED && exit 1)
Brian Carlstrom3bbbe822012-03-17 23:22:53 -070083 $(hide) rm -r /tmp/android-data/test-art-host-oat-$(1)
Brian Carlstromb2793372012-03-17 18:27:16 -070084
Ian Rogers85d9ba62013-01-16 22:32:12 -080085.PHONY: test-art-host-interpreter-oat-$(1)
Brian Carlstrom38a3a0c2013-02-06 16:47:36 -080086test-art-host-interpreter-oat-$(1): $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).jar.oat test-art-host-dependencies
Ian Rogers85d9ba62013-01-16 22:32:12 -080087 mkdir -p /tmp/android-data/test-art-host-interpreter-oat-$(1)
Ian Rogers85d9ba62013-01-16 22:32:12 -080088 ANDROID_DATA=/tmp/android-data/test-art-host-interpreter-oat-$(1) \
89 ANDROID_ROOT=$(HOST_OUT) \
90 LD_LIBRARY_PATH=$(HOST_OUT_SHARED_LIBRARIES) \
91 oatexecd -Ximage:$(shell pwd)/$(HOST_CORE_IMG_OUT) -Xint -classpath $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).jar -Djava.library.path=$(HOST_OUT_SHARED_LIBRARIES) $(1) $(2) \
92 && echo test-art-host-interpreter-oat-$(1) PASSED || (echo test-art-host-interpreter-oat-$(1) FAILED && exit 1)
93 $(hide) rm -r /tmp/android-data/test-art-host-interpreter-oat-$(1)
Brian Carlstromb2793372012-03-17 18:27:16 -070094
95ART_TEST_TARGET_OAT_TARGETS += test-art-target-oat-$(1)
96ART_TEST_HOST_OAT_TARGETS += test-art-host-oat-$(1)
Ian Rogers85d9ba62013-01-16 22:32:12 -080097ART_TEST_HOST_INTERPRETER_OAT_TARGETS += test-art-host-interpreter-oat-$(1)
Brian Carlstrombbf1e412011-09-18 14:14:51 -070098endef
Brian Carlstromb2793372012-03-17 18:27:16 -070099$(foreach dir,$(TEST_OAT_DIRECTORIES), $(eval $(call declare-test-art-oat-targets,$(dir))))
Brian Carlstrombbf1e412011-09-18 14:14:51 -0700100
Brian Carlstrombbf1e412011-09-18 14:14:51 -0700101########################################################################