Fix various test dependencies.
(cherry picked from commit 665de8a1710d2418f60d3bffdc99bdac32252530)
Change-Id: I461b1a963262d48b5caa0e3492b7b923b29755c8
diff --git a/build/Android.common.mk b/build/Android.common.mk
index 4023336..150b404 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -48,6 +48,8 @@
ART_TARGET_ARCH_64 :=
endif
+ART_HOST_SHLIB_EXTENSION := $(HOST_SHLIB_SUFFIX)
+ART_HOST_SHLIB_EXTENSION ?= .so
ifeq ($(HOST_PREFER_32_BIT),true)
ART_PHONY_TEST_HOST_SUFFIX := 32
2ND_ART_PHONY_TEST_HOST_SUFFIX :=
@@ -56,6 +58,8 @@
ART_HOST_ARCH := x86
2ND_ART_HOST_ARCH :=
2ND_HOST_ARCH :=
+ ART_HOST_LIBRARY_PATH := $(HOST_LIBRARY_PATH)
+ 2ND_ART_HOST_LIBRARY_PATH :=
ART_HOST_OUT_SHARED_LIBRARIES := $(2ND_HOST_OUT_SHARED_LIBRARIES)
2ND_ART_HOST_OUT_SHARED_LIBRARIES :=
else
@@ -66,6 +70,8 @@
ART_HOST_ARCH := x86_64
2ND_ART_HOST_ARCH := x86
2ND_HOST_ARCH := x86
+ ART_HOST_LIBRARY_PATH := $(HOST_LIBRARY_PATH)
+ 2ND_ART_HOST_LIBRARY_PATH := $(HOST_LIBRARY_PATH)32
ART_HOST_OUT_SHARED_LIBRARIES := $(HOST_OUT_SHARED_LIBRARIES)
2ND_ART_HOST_OUT_SHARED_LIBRARIES := $(2ND_HOST_OUT_SHARED_LIBRARIES)
endif
diff --git a/build/Android.common_build.mk b/build/Android.common_build.mk
index 90609ec..21ba962 100644
--- a/build/Android.common_build.mk
+++ b/build/Android.common_build.mk
@@ -139,9 +139,6 @@
ART_CPP_EXTENSION := .cc
-ART_HOST_SHLIB_EXTENSION := $(HOST_SHLIB_SUFFIX)
-ART_HOST_SHLIB_EXTENSION ?= .so
-
ART_C_INCLUDES := \
external/gtest/include \
external/valgrind/main/include \
diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk
index 9723b89a..a6f6298 100644
--- a/build/Android.gtest.mk
+++ b/build/Android.gtest.mk
@@ -47,7 +47,7 @@
# Dex file dependencies for each gtest.
ART_GTEST_class_linker_test_DEPS := $(ART_GTEST_Interfaces_DEX) $(ART_GTEST_MyClass_DEX) \
$(ART_GTEST_Nested_DEX) $(ART_GTEST_Statics_DEX) $(ART_GTEST_StaticsFromCode_DEX)
-ART_GTEST_compiler_test_DEPS := $(ART_GTEST_AbstractMethod_DEX)
+ART_GTEST_compiler_driver_test_DEPS := $(ART_GTEST_AbstractMethod_DEX)
ART_GTEST_dex_file_test_DEPS := $(ART_GTEST_GetMethodSignature_DEX)
ART_GTEST_exception_test_DEPS := $(ART_GTEST_ExceptionHandle_DEX)
ART_GTEST_jni_compiler_test_DEPS := $(ART_GTEST_MyClassNatives_DEX)
@@ -199,7 +199,8 @@
TEST_ART_TARGET_SYNC_DEPS += \
$$(ART_GTEST_$(1)_DEPS) \
$$(ART_TARGET_NATIVETEST_OUT)/$$(TARGET_$(2)ARCH)/$(1) \
- $$(TARGET_CORE_DEX_LOCATIONS)
+ $$(TARGET_CORE_DEX_LOCATIONS) \
+ $$($(2)TARGET_OUT_SHARED_LIBRARIES)/libjavacore.so
.PHONY: $$(gtest_rule)
$$(gtest_rule): test-art-target-sync
@@ -227,9 +228,13 @@
define define-art-gtest-rule-host
gtest_rule := test-art-host-gtest-$(1)$$($(2)ART_PHONY_TEST_HOST_SUFFIX)
gtest_exe := $$(HOST_OUT_EXECUTABLES)/$(1)$$($(2)ART_PHONY_TEST_HOST_SUFFIX)
+ # Dependencies for all host gtests.
+ gtest_deps := $$(HOST_CORE_DEX_LOCATIONS) \
+ $$($(2)ART_HOST_LIBRARY_PATH)/libjavacore$$(ART_HOST_SHLIB_EXTENSION)
+
.PHONY: $$(gtest_rule)
-$$(gtest_rule): $$(gtest_exe) $$(ART_GTEST_$(1)_DEPS) $$(HOST_CORE_DEX_LOCATIONS)
+$$(gtest_rule): $$(gtest_exe) $$(ART_GTEST_$(1)_DEPS) $$(gtest_deps)
$(hide) ($$(call ART_TEST_SKIP,$$@) && $$< && $$(call ART_TEST_PASSED,$$@)) \
|| $$(call ART_TEST_FAILED,$$@)
@@ -238,7 +243,7 @@
ART_TEST_HOST_GTEST_$(1)_RULES += $$(gtest_rule)
.PHONY: valgrind-$$(gtest_rule)
-valgrind-$$(gtest_rule): $$(gtest_exe) test-art-host-dependencies $$(ART_GTEST_$(1)_DEPS)
+valgrind-$$(gtest_rule): $$(gtest_exe) $$(ART_GTEST_$(1)_DEPS) $$(gtest_deps)
$(hide) $$(call ART_TEST_SKIP,$$@) && \
valgrind --leak-check=full --error-exitcode=1 $$< && $$(call ART_TEST_PASSED,$$@) \
|| $$(call ART_TEST_FAILED,$$@)
@@ -251,6 +256,7 @@
valgrind_gtest_rule :=
gtest_rule :=
gtest_exe :=
+ gtest_deps :=
endef # define-art-gtest-rule-host
# Define the rules to build and run host and target gtests.
@@ -443,7 +449,7 @@
ART_TEST_TARGET_GTEST$(2ND_ART_PHONY_TEST_TARGET_SUFFIX)_RULES :=
ART_TEST_TARGET_GTEST_RULES :=
ART_GTEST_class_linker_test_DEPS :=
-ART_GTEST_compiler_test_DEPS :=
+ART_GTEST_compiler_driver_test_DEPS :=
ART_GTEST_dex_file_test_DEPS :=
ART_GTEST_exception_test_DEPS :=
ART_GTEST_jni_compiler_test_DEPS :=
diff --git a/test/Android.oat.mk b/test/Android.oat.mk
index 6e43ab6..4e4f62c 100644
--- a/test/Android.oat.mk
+++ b/test/Android.oat.mk
@@ -163,9 +163,14 @@
# All tests require the host executables, libarttest and the core images.
ART_TEST_HOST_OAT_DEPENDENCIES := \
$(ART_HOST_EXECUTABLES) \
- $(HOST_LIBRARY_PATH)/libarttest$(ART_HOST_SHLIB_EXTENSION) \
- $(HOST_CORE_IMG_OUT) \
+ $(ART_HOST_LIBRARY_PATH)/libarttest$(ART_HOST_SHLIB_EXTENSION) \
+ $(HOST_CORE_IMG_OUT)
+
+ifneq ($(HOST_PREFER_32_BIT),true)
+ART_TEST_HOST_OAT_DEPENDENCIES += \
+ $(2ND_ART_HOST_LIBRARY_PATH)/libarttest$(ART_HOST_SHLIB_EXTENSION) \
$(2ND_HOST_CORE_IMG_OUT)
+endif
# Define rule to run an individual oat test on the host. Output from the test is written to the
# host in /tmp/android-data in a directory named after test's rule name (its target) and the parent
diff --git a/test/Android.run-test.mk b/test/Android.run-test.mk
index add97be..d359fb0 100644
--- a/test/Android.run-test.mk
+++ b/test/Android.run-test.mk
@@ -109,7 +109,13 @@
ART_TEST_HOST_RUN_TEST_DEPENDENCIES := \
$(ART_HOST_EXECUTABLES) \
$(HOST_CORE_IMG_OUT) \
+ $(ART_HOST_LIBRARY_PATH)/libjavacore$(ART_HOST_SHLIB_EXTENSION)
+
+ifneq ($(HOST_PREFER_32_BIT),true)
+ART_TEST_HOST_RUN_TEST_DEPENDENCIES += \
+ $(2ND_ART_HOST_LIBRARY_PATH)/libjavacore$(ART_HOST_SHLIB_EXTENSION) \
$(2ND_HOST_CORE_IMG_OUT)
+endif
# For a given test create all the combinations of host/target, compiler and suffix such as:
# test-art-host-run-test-optimizing-003-omnibus-opcodes32