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, "");