Revert "linux: call g_thread_init() at relevant startup points"

This reverts commit r24203, Mac breakage.

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24204 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: ce4f3bda0b09ed2cfd4773d493aeb432428a4cfc
diff --git a/base/process_util_unittest.cc b/base/process_util_unittest.cc
index 23e33ee..7b30be6 100644
--- a/base/process_util_unittest.cc
+++ b/base/process_util_unittest.cc
@@ -27,11 +27,6 @@
 namespace base {
 
 class ProcessUtilTest : public MultiProcessTest {
-#if defined(OS_POSIX)
- public:
-  // Spawn a child process that counts how many file descriptors are open.
-  int CountOpenFDsInChild();
-#endif
 };
 
 MULTIPROCESS_TEST_MAIN(SimpleChildProcess) {
@@ -205,6 +200,14 @@
     }
   }
 
+  // InitLogging always opens a file at startup.
+  int expected_num_open_fds = 1;
+#if defined(OS_LINUX)
+  // On Linux, '/etc/localtime' is opened before the test's main() enters.
+  expected_num_open_fds += 1;
+#endif  // defined(OS_LINUX)
+  num_open_files -= expected_num_open_fds;
+
   int written = HANDLE_EINTR(write(write_pipe, &num_open_files,
                                    sizeof(num_open_files)));
   DCHECK_EQ(static_cast<size_t>(written), sizeof(num_open_files));
@@ -213,34 +216,13 @@
   return 0;
 }
 
-int ProcessUtilTest::CountOpenFDsInChild() {
+TEST_F(ProcessUtilTest, FDRemapping) {
+  // Open some files to check they don't get leaked to the child process.
   int fds[2];
   if (pipe(fds) < 0)
     NOTREACHED();
-
-  file_handle_mapping_vector fd_mapping_vec;
-  fd_mapping_vec.push_back(std::pair<int,int>(fds[1], kChildPipe));
-  ProcessHandle handle = this->SpawnChild(L"ProcessUtilsLeakFDChildProcess",
-                                          fd_mapping_vec,
-                                          false);
-  CHECK(static_cast<ProcessHandle>(NULL) != handle);
-  HANDLE_EINTR(close(fds[1]));
-
-  // Read number of open files in client process from pipe;
-  int num_open_files = -1;
-  ssize_t bytes_read =
-      HANDLE_EINTR(read(fds[0], &num_open_files, sizeof(num_open_files)));
-  CHECK(bytes_read == static_cast<ssize_t>(sizeof(num_open_files)));
-
-  CHECK(WaitForSingleProcess(handle, 1000));
-  base::CloseProcessHandle(handle);
-  HANDLE_EINTR(close(fds[0]));
-
-  return num_open_files;
-}
-
-TEST_F(ProcessUtilTest, FDRemapping) {
-  int fds_before = CountOpenFDsInChild();
+  int pipe_read_fd = fds[0];
+  int pipe_write_fd = fds[1];
 
   // open some dummy fds to make sure they don't propogate over to the
   // child process.
@@ -248,10 +230,26 @@
   int sockets[2];
   socketpair(AF_UNIX, SOCK_STREAM, 0, sockets);
 
-  int fds_after = CountOpenFDsInChild();
+  file_handle_mapping_vector fd_mapping_vec;
+  fd_mapping_vec.push_back(std::pair<int,int>(pipe_write_fd, kChildPipe));
+  ProcessHandle handle = this->SpawnChild(L"ProcessUtilsLeakFDChildProcess",
+                                          fd_mapping_vec,
+                                          false);
+  ASSERT_NE(static_cast<ProcessHandle>(NULL), handle);
+  HANDLE_EINTR(close(pipe_write_fd));
 
-  ASSERT_EQ(fds_after, fds_before);
+  // Read number of open files in client process from pipe;
+  int num_open_files = -1;
+  ssize_t bytes_read =
+      HANDLE_EINTR(read(pipe_read_fd, &num_open_files, sizeof(num_open_files)));
+  ASSERT_EQ(bytes_read, static_cast<ssize_t>(sizeof(num_open_files)));
 
+  // Make sure 0 fds are leaked to the client.
+  ASSERT_EQ(0, num_open_files);
+
+  EXPECT_TRUE(WaitForSingleProcess(handle, 1000));
+  base::CloseProcessHandle(handle);
+  HANDLE_EINTR(close(fds[0]));
   HANDLE_EINTR(close(sockets[0]));
   HANDLE_EINTR(close(sockets[1]));
   HANDLE_EINTR(close(dev_null));
diff --git a/base/test_suite.h b/base/test_suite.h
index 236c3ed..352c0b8 100644
--- a/base/test_suite.h
+++ b/base/test_suite.h
@@ -41,7 +41,6 @@
     CommandLine::Init(argc, argv);
     testing::InitGoogleTest(&argc, argv);
 #if defined(OS_LINUX)
-    g_thread_init(NULL);
     gtk_init_check(&argc, &argv);
 #endif
     // Don't add additional code to this constructor.  Instead add it to