Use our own 'main' for gtest tests.
This lets us include the test name in crashes.
Change-Id: Id8ed130589b5bc058bedc835a7fe06bbc6178be5
diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk
index 96f6dc3..5a9f613 100644
--- a/build/Android.gtest.mk
+++ b/build/Android.gtest.mk
@@ -54,7 +54,7 @@
LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION)
LOCAL_MODULE := $$(art_gtest_name)
LOCAL_MODULE_TAGS := tests
- LOCAL_SRC_FILES := $$(art_gtest_filename)
+ LOCAL_SRC_FILES := $$(art_gtest_filename) src/common_test.cc
LOCAL_C_INCLUDES += $(ART_C_INCLUDES)
LOCAL_SHARED_LIBRARIES := libartd
ifeq ($$(art_target_or_host),target)
@@ -78,7 +78,7 @@
ifeq ($$(art_target_or_host),target)
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_STATIC_LIBRARIES += libgtest
LOCAL_MODULE_PATH := $(ART_NATIVETEST_OUT)
include $(BUILD_EXECUTABLE)
art_gtest_exe := $$(LOCAL_MODULE_PATH)/$$(LOCAL_MODULE)
@@ -86,12 +86,9 @@
else # host
LOCAL_CFLAGS += $(ART_HOST_CFLAGS) $(ART_HOST_DEBUG_CFLAGS)
LOCAL_SHARED_LIBRARIES += libicuuc-host libicui18n-host libnativehelper libz-host
- # glibc complains about double frees if you include both libraries, but Mac OS
- # complains about unresolved symbols if you don't!
- ifeq ($(HOST_OS),linux)
- LOCAL_WHOLE_STATIC_LIBRARIES := libgtest_main_host
- else
- LOCAL_WHOLE_STATIC_LIBRARIES := libgtest_host libgtest_main_host
+ ifeq ($(HOST_OS),darwin)
+ # Mac OS complains about unresolved symbols if you don't include this.
+ LOCAL_WHOLE_STATIC_LIBRARIES := libgtest_host
endif
include $(BUILD_HOST_EXECUTABLE)
art_gtest_exe := $(HOST_OUT_EXECUTABLES)/$$(LOCAL_MODULE)
diff --git a/src/common_test.cc b/src/common_test.cc
new file mode 100644
index 0000000..55dbb2d
--- /dev/null
+++ b/src/common_test.cc
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2012 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "gtest/gtest.h"
+#include "logging.h"
+
+int main(int argc, char **argv) {
+ art::InitLogging(argv);
+ LOG(INFO) << "Running main() from common_test.cc...";
+ testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+}