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();
+}