Use LOCAL_CTS_GTEST_LIST_EXECUTABLE

Instead of assuming where a host native test will be installed, let the
module tell us. This does mean that the _list executable needs to be
defined first.

Change-Id: I5cd83da1c2c774decdb5ff3d5b6feeb1bf021d11
diff --git a/build/test_executable.mk b/build/test_executable.mk
index 979f59e..8b93a04 100644
--- a/build/test_executable.mk
+++ b/build/test_executable.mk
@@ -33,11 +33,15 @@
   $(eval $(call copy-one-file, $(fp), $(installed)))\
   $(eval cts_executable_bin += $(installed)))
 
+ifndef LOCAL_CTS_GTEST_LIST_EXECUTABLE
+LOCAL_CTS_GTEST_LIST_EXECUTABLE := $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE)_list
+endif
+
 cts_executable_xml := $(CTS_TESTCASES_OUT)/$(LOCAL_MODULE).xml
 $(cts_executable_xml): PRIVATE_TEST_PACKAGE := $(LOCAL_CTS_TEST_PACKAGE)
 $(cts_executable_xml): PRIVATE_EXECUTABLE := $(LOCAL_MODULE)
-$(cts_executable_xml): PRIVATE_LIST_EXECUTABLE := $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE)_list
-$(cts_executable_xml): $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE)_list
+$(cts_executable_xml): PRIVATE_LIST_EXECUTABLE := $(LOCAL_CTS_GTEST_LIST_EXECUTABLE)
+$(cts_executable_xml): $(LOCAL_CTS_GTEST_LIST_EXECUTABLE)
 $(cts_executable_xml): $(cts_executable_bin)
 $(cts_executable_xml): $(cts_module_test_config)
 $(cts_executable_xml): $(addprefix $(LOCAL_PATH)/,$(LOCAL_SRC_FILES)) $(CTS_EXPECTATIONS) $(CTS_UNSUPPORTED_ABIS) $(CTS_NATIVE_TEST_SCANNER) $(CTS_XML_GENERATOR)
diff --git a/tests/tests/bionic/Android.mk b/tests/tests/bionic/Android.mk
index 8c5e1e0..114d94e 100644
--- a/tests/tests/bionic/Android.mk
+++ b/tests/tests/bionic/Android.mk
@@ -3,32 +3,6 @@
 test_executable := bionic-unit-tests-cts
 list_executable := $(test_executable)_list
 
-include $(CLEAR_VARS)
-LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-
-LOCAL_MODULE := $(test_executable)
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativetest
-LOCAL_MULTILIB := both
-LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)32
-LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64
-
-LOCAL_SHARED_LIBRARIES += \
-    libdl \
-
-LOCAL_WHOLE_STATIC_LIBRARIES += \
-    libBionicTests \
-    libBionicCtsGtestMain \
-
-LOCAL_STATIC_LIBRARIES += \
-    libbase \
-    libtinyxml2 \
-    liblog \
-    libgtest \
-
-LOCAL_CTS_TEST_PACKAGE := android.bionic
-include $(BUILD_CTS_EXECUTABLE)
-
 ifeq ($(HOST_OS)-$(HOST_ARCH),$(filter $(HOST_OS)-$(HOST_ARCH),linux-x86 linux-x86_64))
 include $(CLEAR_VARS)
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
@@ -56,3 +30,32 @@
 
 include $(BUILD_HOST_NATIVE_TEST)
 endif  # ifeq ($(HOST_OS)-$(HOST_ARCH),$(filter $(HOST_OS)-$(HOST_ARCH),linux-x86 linux-x86_64))
+
+include $(CLEAR_VARS)
+LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
+
+LOCAL_MODULE := $(test_executable)
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativetest
+LOCAL_MULTILIB := both
+LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)32
+LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64
+
+LOCAL_SHARED_LIBRARIES += \
+    libdl \
+
+LOCAL_WHOLE_STATIC_LIBRARIES += \
+    libBionicTests \
+    libBionicCtsGtestMain \
+
+LOCAL_STATIC_LIBRARIES += \
+    libbase \
+    libtinyxml2 \
+    liblog \
+    libgtest \
+
+# Use the 32 bit list executable since it will include some 32 bit only tests.
+LOCAL_CTS_GTEST_LIST_EXECUTABLE := $(ALL_MODULES.$(list_executable)$(HOST_2ND_ARCH_MODULE_SUFFIX).INSTALLED)
+
+LOCAL_CTS_TEST_PACKAGE := android.bionic
+include $(BUILD_CTS_EXECUTABLE)
diff --git a/tests/tests/nativemedia/sl/Android.mk b/tests/tests/nativemedia/sl/Android.mk
index 57f609d..4c43030 100644
--- a/tests/tests/nativemedia/sl/Android.mk
+++ b/tests/tests/nativemedia/sl/Android.mk
@@ -8,6 +8,23 @@
 include $(CLEAR_VARS)
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
 
+LOCAL_MODULE := $(list_executable)
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_SRC_FILES := \
+    src/SLObjectCreationTest.cpp
+
+LOCAL_CFLAGS := \
+    -DBUILD_ONLY \
+
+LOCAL_SHARED_LIBRARIES := \
+    liblog \
+
+include $(BUILD_HOST_NATIVE_TEST)
+
+include $(CLEAR_VARS)
+LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
+
 LOCAL_MODULE := $(test_executable)
 LOCAL_MODULE_TAGS := optional
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativetest
@@ -31,22 +48,7 @@
     libOpenSLESUT \
     libgtest
 
+LOCAL_CTS_GTEST_LIST_EXECUTABLE := $(ALL_MODULES.$(list_executable).INSTALLED)
+
 LOCAL_CTS_TEST_PACKAGE := android.nativemedia.sl
 include $(BUILD_CTS_EXECUTABLE)
-
-include $(CLEAR_VARS)
-LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-
-LOCAL_MODULE := $(list_executable)
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_SRC_FILES := \
-    src/SLObjectCreationTest.cpp
-
-LOCAL_CFLAGS := \
-    -DBUILD_ONLY \
-
-LOCAL_SHARED_LIBRARIES := \
-    liblog \
-
-include $(BUILD_HOST_NATIVE_TEST)
diff --git a/tests/tests/nativemedia/xa/Android.mk b/tests/tests/nativemedia/xa/Android.mk
index 4badf3c..4bf8b81 100644
--- a/tests/tests/nativemedia/xa/Android.mk
+++ b/tests/tests/nativemedia/xa/Android.mk
@@ -8,6 +8,23 @@
 include $(CLEAR_VARS)
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
 
+LOCAL_MODULE := $(list_executable)
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_SRC_FILES := \
+    src/XAObjectCreationTest.cpp
+
+LOCAL_CFLAGS := \
+    -DBUILD_ONLY \
+
+LOCAL_SHARED_LIBRARIES := \
+    liblog \
+
+include $(BUILD_HOST_NATIVE_TEST)
+
+include $(CLEAR_VARS)
+LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
+
 LOCAL_MODULE:= $(test_executable)
 LOCAL_MODULE_TAGS := optional
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativetest
@@ -30,22 +47,7 @@
 LOCAL_STATIC_LIBRARIES := \
   libgtest \
 
+LOCAL_CTS_GTEST_LIST_EXECUTABLE := $(ALL_MODULES.$(list_executable).INSTALLED)
+
 LOCAL_CTS_TEST_PACKAGE := android.nativemedia.xa
 include $(BUILD_CTS_EXECUTABLE)
-
-include $(CLEAR_VARS)
-LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-
-LOCAL_MODULE := $(list_executable)
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_SRC_FILES := \
-    src/XAObjectCreationTest.cpp
-
-LOCAL_CFLAGS := \
-    -DBUILD_ONLY \
-
-LOCAL_SHARED_LIBRARIES := \
-    liblog \
-
-include $(BUILD_HOST_NATIVE_TEST)
diff --git a/tests/tests/simpleperf/Android.mk b/tests/tests/simpleperf/Android.mk
index 0f04110..dac932d 100644
--- a/tests/tests/simpleperf/Android.mk
+++ b/tests/tests/simpleperf/Android.mk
@@ -8,6 +8,37 @@
 include $(LLVM_ROOT_PATH)/llvm.mk
 
 include $(CLEAR_VARS)
+LOCAL_MODULE := $(list_executable)
+LOCAL_MODULE_HOST_OS := linux
+LOCAL_MULTILIB := first
+LOCAL_LDLIBS = -lrt
+
+LOCAL_WHOLE_STATIC_LIBRARIES += \
+  libsimpleperf_cts_test \
+
+LOCAL_STATIC_LIBRARIES += \
+  libbacktrace_offline \
+  libbacktrace \
+  libunwind \
+  libziparchive-host \
+  libz \
+  liblzma \
+  libbase \
+  liblog \
+  libcutils \
+  libutils \
+  libLLVMObject \
+  libLLVMBitReader \
+  libLLVMMC \
+  libLLVMMCParser \
+  libLLVMCore \
+  libLLVMSupport \
+
+include $(LLVM_HOST_BUILD_MK)
+include $(BUILD_HOST_NATIVE_TEST)
+
+
+include $(CLEAR_VARS)
 LOCAL_MODULE := $(test_executable)
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/nativetest
 LOCAL_MULTILIB := both
@@ -43,38 +74,9 @@
   $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_OBJCOPY) --add-section .testzipdata=$$TMP_FILE $(linked_module) && \
   rm -f $$TMP_FILE
 
+LOCAL_CTS_GTEST_LIST_EXECUTABLE := $(ALL_MODULES.$(list_executable).INSTALLED)
+
 LOCAL_CTS_TEST_PACKAGE := android.simpleperf
 LOCAL_FORCE_STATIC_EXECUTABLE := true
 include $(LLVM_DEVICE_BUILD_MK)
 include $(BUILD_CTS_EXECUTABLE)
-
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := $(list_executable)
-LOCAL_MODULE_HOST_OS := linux
-LOCAL_MULTILIB := first
-LOCAL_LDLIBS = -lrt
-
-LOCAL_WHOLE_STATIC_LIBRARIES += \
-  libsimpleperf_cts_test \
-
-LOCAL_STATIC_LIBRARIES += \
-  libbacktrace_offline \
-  libbacktrace \
-  libunwind \
-  libziparchive-host \
-  libz \
-  liblzma \
-  libbase \
-  liblog \
-  libcutils \
-  libutils \
-  libLLVMObject \
-  libLLVMBitReader \
-  libLLVMMC \
-  libLLVMMCParser \
-  libLLVMCore \
-  libLLVMSupport \
-
-include $(LLVM_HOST_BUILD_MK)
-include $(BUILD_HOST_NATIVE_TEST)