diff options
author | Brian Carlstrom <bdc@google.com> | 2013-07-12 13:46:57 -0700 |
---|---|---|
committer | Brian Carlstrom <bdc@google.com> | 2013-07-12 17:49:01 -0700 |
commit | 7940e44f4517de5e2634a7e07d58d0fb26160513 (patch) | |
tree | ac90242d96229a6942f6e24ab137bc1f8f2e0025 /test | |
parent | 5cd9e3b122f276f610980cbaf0d2ad6ed4cd9088 (diff) | |
download | android_art-7940e44f4517de5e2634a7e07d58d0fb26160513.tar.gz android_art-7940e44f4517de5e2634a7e07d58d0fb26160513.tar.bz2 android_art-7940e44f4517de5e2634a7e07d58d0fb26160513.zip |
Create separate Android.mk for main build targets
The runtime, compiler, dex2oat, and oatdump now are in seperate trees
to prevent dependency creep. They can now be individually built
without rebuilding the rest of the art projects. dalvikvm and jdwpspy
were already this way. Builds in the art directory should behave as
before, building everything including tests.
Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81
Diffstat (limited to 'test')
-rw-r--r-- | test/Android.mk | 132 |
1 files changed, 130 insertions, 2 deletions
diff --git a/test/Android.mk b/test/Android.mk index 6c7b26e7b6..fdb7273bcc 100644 --- a/test/Android.mk +++ b/test/Android.mk @@ -1,4 +1,4 @@ -# Copyright (C) 2012 The Android Open Source Project +# Copyright (C) 2011 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,6 +15,131 @@ LOCAL_PATH := $(call my-dir) +include art/build/Android.common.mk + +######################################################################## + +# subdirectories which are used as inputs for gtests +TEST_DEX_DIRECTORIES := \ + AbstractMethod \ + AllFields \ + CreateMethodSignature \ + ExceptionHandle \ + Interfaces \ + Main \ + MyClass \ + MyClassNatives \ + Nested \ + NonStaticLeafMethods \ + ProtoCompare \ + ProtoCompare2 \ + StaticLeafMethods \ + Statics \ + StaticsFromCode \ + XandY + +# subdirectories of which are used with test-art-target-oat +# Declare the simplest tests (Main, HelloWorld) first, the rest are alphabetical +TEST_OAT_DIRECTORIES := \ + Main \ + HelloWorld \ + \ + ParallelGC \ + ReferenceMap \ + StackWalk \ + ThreadStress + +# TODO: Enable when the StackWalk2 tests are passing +# StackWalk2 \ + +ART_TEST_TARGET_DEX_FILES := +ART_TEST_HOST_DEX_FILES := + +# $(1): module prefix +# $(2): input test directory +# $(3): target output module path (default module path is used on host) +define build-art-test-dex + ifeq ($(ART_BUILD_TARGET),true) + include $(CLEAR_VARS) + LOCAL_MODULE := $(1)-$(2) + LOCAL_MODULE_TAGS := tests + LOCAL_SRC_FILES := $(call all-java-files-under, $(2)) + LOCAL_JAVA_LIBRARIES := $(TARGET_CORE_JARS) + LOCAL_NO_STANDARD_LIBRARIES := true + LOCAL_MODULE_PATH := $(3) + LOCAL_DEX_PREOPT_IMAGE := $(TARGET_CORE_IMG_OUT) + LOCAL_DEX_PREOPT := false + LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common.mk + LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk + include $(BUILD_JAVA_LIBRARY) + ART_TEST_TARGET_DEX_FILES += $(3)/$$(LOCAL_MODULE).jar + endif + + ifeq ($(ART_BUILD_HOST),true) + include $(CLEAR_VARS) + LOCAL_MODULE := $(1)-$(2) + LOCAL_SRC_FILES := $(call all-java-files-under, $(2)) + LOCAL_JAVA_LIBRARIES := $(HOST_CORE_JARS) + LOCAL_NO_STANDARD_LIBRARIES := true + LOCAL_DEX_PREOPT_IMAGE := $(HOST_CORE_IMG_OUT) + LOCAL_BUILD_HOST_DEX := true + LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common.mk + LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk + include $(BUILD_HOST_JAVA_LIBRARY) + ART_TEST_HOST_DEX_FILES += $$(LOCAL_MODULE_PATH)/$$(LOCAL_MODULE).jar + endif +endef +$(foreach dir,$(TEST_DEX_DIRECTORIES), $(eval $(call build-art-test-dex,art-test-dex,$(dir),$(ART_NATIVETEST_OUT)))) +$(foreach dir,$(TEST_OAT_DIRECTORIES), $(eval $(call build-art-test-dex,oat-test-dex,$(dir),$(ART_TEST_OUT)))) + +######################################################################## + +ART_TEST_TARGET_OAT_TARGETS := +ART_TEST_HOST_OAT_TARGETS := +ART_TEST_HOST_INTERPRETER_OAT_TARGETS := + +# $(1): directory +# $(2): arguments +define declare-test-art-oat-targets +.PHONY: test-art-target-oat-$(1) +test-art-target-oat-$(1): $(ART_TEST_OUT)/oat-test-dex-$(1).jar test-art-target-sync + adb shell touch $(ART_TEST_DIR)/test-art-target-oat-$(1) + adb shell rm $(ART_TEST_DIR)/test-art-target-oat-$(1) + adb shell sh -c "dalvikvm -XXlib:libartd.so -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)" + $(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) + $(hide) rm /tmp/test-art-target-oat-$(1) + +$(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).odex: $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).jar $(HOST_CORE_IMG_OUT) | $(DEX2OAT) + $(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) + +.PHONY: test-art-host-oat-$(1) +test-art-host-oat-$(1): $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).odex test-art-host-dependencies + mkdir -p /tmp/android-data/test-art-host-oat-$(1) + ANDROID_DATA=/tmp/android-data/test-art-host-oat-$(1) \ + ANDROID_ROOT=$(HOST_OUT) \ + LD_LIBRARY_PATH=$(HOST_OUT_SHARED_LIBRARIES) \ + dalvikvm -XXlib:libartd.so -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) \ + && echo test-art-host-oat-$(1) PASSED || (echo test-art-host-oat-$(1) FAILED && exit 1) + $(hide) rm -r /tmp/android-data/test-art-host-oat-$(1) + +.PHONY: test-art-host-interpreter-oat-$(1) +test-art-host-interpreter-oat-$(1): $(HOST_OUT_JAVA_LIBRARIES)/oat-test-dex-$(1).odex test-art-host-dependencies + mkdir -p /tmp/android-data/test-art-host-interpreter-oat-$(1) + ANDROID_DATA=/tmp/android-data/test-art-host-interpreter-oat-$(1) \ + ANDROID_ROOT=$(HOST_OUT) \ + LD_LIBRARY_PATH=$(HOST_OUT_SHARED_LIBRARIES) \ + dalvikvm -XXlib:libartd.so -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) \ + && echo test-art-host-interpreter-oat-$(1) PASSED || (echo test-art-host-interpreter-oat-$(1) FAILED && exit 1) + $(hide) rm -r /tmp/android-data/test-art-host-interpreter-oat-$(1) + +ART_TEST_TARGET_OAT_TARGETS += test-art-target-oat-$(1) +ART_TEST_HOST_OAT_TARGETS += test-art-host-oat-$(1) +ART_TEST_HOST_INTERPRETER_OAT_TARGETS += test-art-host-interpreter-oat-$(1) +endef +$(foreach dir,$(TEST_OAT_DIRECTORIES), $(eval $(call declare-test-art-oat-targets,$(dir)))) + +######################################################################## + TEST_ART_RUN_TEST_MAKE_TARGETS := # Helper to create individual build targets for tests. @@ -27,12 +152,13 @@ $$(dmart_target): $(DX) $(HOST_OUT_EXECUTABLES)/jasmin $(hide) DX=$(abspath $(DX)) JASMIN=$(abspath $(HOST_OUT_EXECUTABLES)/jasmin) $(LOCAL_PATH)/run-test --build-only --output-path $$(abspath $$(dir $$@)) $(1) $(hide) touch $$@ + TEST_ART_RUN_TEST_MAKE_TARGETS += $$(dmart_target) dmart_target := endef # Expand all tests. -$(foreach test, $(wildcard art/test/[0-9]*), $(eval $(call declare-make-art-run-test,$(notdir $(test))))) +$(foreach test, $(wildcard $(LOCAL_PATH)/[0-9]*), $(eval $(call declare-make-art-run-test,$(notdir $(test))))) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := tests @@ -43,3 +169,5 @@ include $(BUILD_PHONY_PACKAGE) # clear temp vars TEST_ART_RUN_TEST_MAKE_TARGETS := declare-make-art-run-test := + +######################################################################## |