Revert "Revert "Revert "Fix device death tests.""" am: 42795cf170 am: 276e32ec33

Original change: https://android-review.googlesource.com/c/platform/external/googletest/+/2475384

Change-Id: I93c1bd0538c18e2abd5b279ac59e48a6105abe64
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/googletest/include/gtest/internal/custom/gtest.h b/googletest/include/gtest/internal/custom/gtest.h
index 3d85561..67ce67f 100644
--- a/googletest/include/gtest/internal/custom/gtest.h
+++ b/googletest/include/gtest/internal/custom/gtest.h
@@ -35,21 +35,13 @@
 #define GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_
 
 #if GTEST_OS_LINUX_ANDROID
-#include <dlfcn.h>
-#include <unistd.h>
-
-#define GTEST_CUSTOM_TEMPDIR_FUNCTION_ GetAndroidTempDir
-#define GTEST_CUSTOM_INIT_GOOGLE_TEST_FUNCTION_(argc, argv) \
-  internal::InitGoogleTestImpl(argc, argv);                 \
-  SetAndroidTestLogger()
-
+# define GTEST_CUSTOM_TEMPDIR_FUNCTION_ GetAndroidTempDir
+# include <unistd.h>
 static inline std::string GetAndroidTempDir() {
   // Android doesn't have /tmp, and /sdcard is no longer accessible from
   // an app context starting from Android O. On Android, /data/local/tmp
   // is usually used as the temporary directory, so try that first...
-  if (access("/data/local/tmp", R_OK | W_OK | X_OK) == 0) {
-    return "/data/local/tmp/";
-  }
+  if (access("/data/local/tmp", R_OK | W_OK | X_OK) == 0) return "/data/local/tmp/";
 
   // Processes running in an app context can't write to /data/local/tmp,
   // so fall back to the current directory...
@@ -62,40 +54,6 @@
   }
   return result;
 }
-
-static inline void SetAndroidTestLogger() {
-  // By default, Android log messages are only written to the log buffer, where
-  // GTest cannot see them. This breaks death tests, which need to check the
-  // crash message to ensure that the process died for the expected reason.
-  // To fix this, send log messages to both logd and stderr if we are in a death
-  // test child process.
-  struct LogMessage;
-  using LoggerFunction = void (*)(const LogMessage*);
-  using SetLoggerFunction = void (*)(LoggerFunction logger);
-
-  static void* liblog = dlopen("liblog.so", RTLD_NOW);
-  if (liblog == nullptr) {
-    return;
-  }
-
-  static SetLoggerFunction set_logger = reinterpret_cast<SetLoggerFunction>(
-      dlsym(liblog, "__android_log_set_logger"));
-  static LoggerFunction logd_logger = reinterpret_cast<LoggerFunction>(
-      dlsym(liblog, "__android_log_logd_logger"));
-  static LoggerFunction stderr_logger = reinterpret_cast<LoggerFunction>(
-      dlsym(liblog, "__android_log_stderr_logger"));
-  if (set_logger == nullptr || logd_logger == nullptr ||
-      stderr_logger == nullptr) {
-    return;
-  }
-
-  set_logger([](const LogMessage* message) {
-    logd_logger(message);
-    if (::testing::internal::InDeathTestChild()) {
-      stderr_logger(message);
-    }
-  });
-}
-#endif  // GTEST_OS_LINUX_ANDROID
+#endif //GTEST_OS_LINUX_ANDROID
 
 #endif  // GOOGLETEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_H_