Test changes to support tradefed
- move jar files for gtest support to /data/nativetest/art
- tag jar files in /data/art-test as "tests"
Change-Id: I43fe38bee4a47096754ee41c3207a93a3d3ad830
diff --git a/Android.mk b/Android.mk
index c41d031..fa8349b 100644
--- a/Android.mk
+++ b/Android.mk
@@ -65,8 +65,8 @@
ART_TARGET_DEPENDENCIES := $(ART_TARGET_EXECUTABLES) $(TARGET_OUT_JAVA_LIBRARIES)/core.jar $(TARGET_OUT_SHARED_LIBRARIES)/libjavacore.so
-ART_HOST_TEST_DEPENDENCIES := $(ART_HOST_DEPENDENCIES) $(ART_HOST_TEST_EXECUTABLES) $(ART_TEST_OAT_FILES)
-ART_TARGET_TEST_DEPENDENCIES := $(ART_TARGET_DEPENDENCIES) $(ART_TARGET_TEST_EXECUTABLES) $(ART_TEST_OAT_FILES)
+ART_HOST_TEST_DEPENDENCIES := $(ART_HOST_DEPENDENCIES) $(ART_HOST_TEST_EXECUTABLES) $(ART_TEST_DEX_FILES) $(ART_TEST_OAT_FILES)
+ART_TARGET_TEST_DEPENDENCIES := $(ART_TARGET_DEPENDENCIES) $(ART_TARGET_TEST_EXECUTABLES) $(ART_TEST_DEX_FILES) $(ART_TEST_OAT_FILES)
########################################################################
# host test targets
diff --git a/build/Android.common.mk b/build/Android.common.mk
index bd0e0be..d233ab0 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -18,6 +18,10 @@
ART_CACHE_DIR := /data/art-cache
ART_CACHE_OUT := $(TARGET_OUT_DATA)/art-cache
+# directory used for gtests on device
+ART_NATIVETEST_DIR := /data/nativetest/art
+ART_NATIVETEST_OUT := $(TARGET_OUT_DATA_NATIVE_TESTS)/art
+
# directory used for tests on device
ART_TEST_DIR := /data/art-test
ART_TEST_OUT := $(TARGET_OUT_DATA)/art-test
@@ -254,37 +258,46 @@
$(TEST_COMMON_SRC_FILES) \
src/assembler_x86_test.cc
-# subdirectories of test/
+# subdirectories of test/ which are used as inputs for gtests
TEST_DEX_DIRECTORIES := \
AbstractMethod \
AllFields \
CreateMethodSignature \
ExceptionHandle \
- ExceptionTest \
- Fibonacci \
- GrowthLimit \
- HelloWorld \
IntMath \
Interfaces \
Main \
- MemUsage \
MyClass \
MyClassNatives \
Nested \
- ParallelGC \
ProtoCompare \
ProtoCompare2 \
- ReferenceMap \
- ReflectionTest \
- StackWalk \
- StackWalk2 \
StaticLeafMethods \
Statics \
StaticsFromCode \
- ThreadStress \
- Invoke \
XandY
+# subdirectories of test/ which are used with test-art-target-oat
+# Declare the simplest tests (Main, HelloWorld, and Fibonacci) first, the rest are alphabetical
+TEST_OAT_DIRECTORIES := \
+ Main \
+ HelloWorld \
+ Fibonacci \
+ \
+ ExceptionTest \
+ GrowthLimit \
+ IntMath \
+ Invoke \
+ MemUsage \
+ ParallelGC \
+ ReferenceMap \
+ ReflectionTest \
+ StackWalk \
+ ThreadStress
+
+# TODO: Enable when the StackWalk2 tests are passing
+# StackWalk2 \
+
ART_BUILD_TARGET := false
ART_BUILD_HOST := false
ifeq ($(ART_BUILD_TARGET_NDEBUG),true)
diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk
index ca80ae8..92fd96a 100644
--- a/build/Android.gtest.mk
+++ b/build/Android.gtest.mk
@@ -55,7 +55,7 @@
LOCAL_CFLAGS := $(ART_TARGET_CFLAGS) $(ART_TARGET_DEBUG_CFLAGS)
LOCAL_SHARED_LIBRARIES += libdl libicuuc libicui18n libnativehelper libstlport libz
LOCAL_STATIC_LIBRARIES := libgtest libgtest_main
- LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_NATIVE_TESTS)/art
+ LOCAL_MODULE_PATH := $(ART_NATIVETEST_OUT)
include $(BUILD_EXECUTABLE)
art_gtest_exe := $$(LOCAL_MODULE_PATH)/$$(LOCAL_MODULE)
ART_TARGET_TEST_EXECUTABLES += $$(art_gtest_exe)
@@ -79,7 +79,7 @@
$$(art_gtest_target): $$(art_gtest_exe) test-art-target-sync
adb shell touch $(ART_TEST_DIR)/$$@
adb shell rm $(ART_TEST_DIR)/$$@
- adb shell sh -c "/data/nativetest/art/$$(notdir $$<) && touch $(ART_TEST_DIR)/$$@"
+ adb shell sh -c "$(ART_NATIVETEST_DIR)/$$(notdir $$<) && touch $(ART_TEST_DIR)/$$@"
$(hide) (adb pull $(ART_TEST_DIR)/$$@ /tmp/ && echo $$@ PASSED) || (echo $$@ FAILED && exit 1)
$(hide) rm /tmp/$$@
diff --git a/build/Android.oattest.mk b/build/Android.oattest.mk
index 86349a2..49700f2 100644
--- a/build/Android.oattest.mk
+++ b/build/Android.oattest.mk
@@ -18,19 +18,22 @@
ART_TEST_DEX_FILES :=
-# $(1): directory
+# $(1): module prefix
+# $(2): input test directory
+# $(3): output module path
define build-art-test-dex
include $(CLEAR_VARS)
- LOCAL_MODULE := art-test-dex-$(1)
- LOCAL_MODULE_TAGS := optional
- LOCAL_SRC_FILES := $(call all-java-files-under, test/$(1))
+ LOCAL_MODULE := $(1)-$(2)
+ LOCAL_MODULE_TAGS := tests
+ LOCAL_SRC_FILES := $(call all-java-files-under, test/$(2))
LOCAL_JAVA_LIBRARIES := core
LOCAL_NO_STANDARD_LIBRARIES := true
- LOCAL_MODULE_PATH := $(ART_TEST_OUT)
+ LOCAL_MODULE_PATH := $(3)
include $(BUILD_JAVA_LIBRARY)
- ART_TEST_DEX_FILES += $(TARGET_OUT_JAVA_LIBRARIES)/$$(LOCAL_MODULE).jar
+ ART_TEST_DEX_FILES += $(3)/$$(LOCAL_MODULE).jar
endef
-$(foreach dir,$(TEST_DEX_DIRECTORIES), $(eval $(call build-art-test-dex,$(dir))))
+$(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))))
########################################################################
@@ -49,10 +52,10 @@
# $(1): directory
define build-art-test-oat
- $(call build-art-oat,$(ART_TEST_OUT)/art-test-dex-$(1).jar,$(ART_TEST_OUT)/art-test-dex-$(1).jar.oat,$(TARGET_CORE_IMG))
- ART_TEST_OAT_FILES += $(ART_TEST_OUT)/art-test-dex-$(1).jar.oat
+ $(call build-art-oat,$(ART_TEST_OUT)/oat-test-dex-$(1).jar,$(ART_TEST_OUT)/oat-test-dex-$(1).jar.oat,$(TARGET_CORE_IMG))
+ ART_TEST_OAT_FILES += $(ART_TEST_OUT)/oat-test-dex-$(1).jar.oat
endef
-$(foreach dir,$(TEST_DEX_DIRECTORIES), $(eval $(call build-art-test-oat,$(dir))))
+$(foreach dir,$(TEST_OAT_DIRECTORIES), $(eval $(call build-art-test-oat,$(dir))))
########################################################################
@@ -62,33 +65,15 @@
# $(2): arguments
define declare-test-test-target
.PHONY: test-art-target-oat-$(1)
-test-art-target-oat-$(1): $(ART_TEST_OUT)/art-test-dex-$(1).jar test-art-target-sync
+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 "oatexecd -Ximage:$(ART_TEST_DIR)/core.art -classpath $(ART_TEST_DIR)/art-test-dex-$(1).jar -Djava.library.path=$(ART_TEST_DIR) $(1) $(2) && touch $(ART_TEST_DIR)/test-art-target-oat-$(1)"
+ 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)"
$(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)
ART_TEST_OAT_TARGETS += test-art-target-oat-$(1)
endef
-
-# Declare the simplest test first
-$(eval $(call declare-test-test-target,HelloWorld,))
-$(eval $(call declare-test-test-target,Fibonacci,10))
-
-# The rest are alphabetical
-$(eval $(call declare-test-test-target,ExceptionTest,))
-$(eval $(call declare-test-test-target,GrowthLimit,))
-$(eval $(call declare-test-test-target,IntMath,))
-$(eval $(call declare-test-test-target,Invoke,))
-$(eval $(call declare-test-test-target,MemUsage,))
-$(eval $(call declare-test-test-target,ParallelGC,))
-$(eval $(call declare-test-test-target,ReferenceMap,))
-$(eval $(call declare-test-test-target,ReflectionTest,))
-$(eval $(call declare-test-test-target,StackWalk,))
-$(eval $(call declare-test-test-target,ThreadStress,))
-
-# TODO: Enable when the StackWalk2 tests are passing
-# $(eval $(call declare-test-test-target,StackWalk2,))
+$(foreach dir,$(TEST_OAT_DIRECTORIES), $(eval $(call declare-test-test-target,$(dir))))
########################################################################
diff --git a/src/common_test.h b/src/common_test.h
index 11d3118..6adb02d 100644
--- a/src/common_test.h
+++ b/src/common_test.h
@@ -406,7 +406,7 @@
// on the host, just read target dex file
filename += getenv("ANDROID_PRODUCT_OUT");
}
- filename += "/data/art-test/art-test-dex-";
+ filename += "/data/nativetest/art/art-test-dex-";
filename += name;
filename += ".jar";
const DexFile* dex_file = DexFile::Open(filename, "");