Remove use of -isystem for googletest

Use standard include_dirs and a proxy header to manually suppress
warning. This solves the problem of sign conversion warning that
fire only when rolling into chrome.
Follow-up CLs will try to remove -isystem also to other
buildtools. Limiting the scope of this for now.

Change-Id: I8bc7924a95c7dd73cad54f447c122bd339e4e2a4
Bug: 129130827
diff --git a/src/base/circular_queue_unittest.cc b/src/base/circular_queue_unittest.cc
index ededf2f..2622094 100644
--- a/src/base/circular_queue_unittest.cc
+++ b/src/base/circular_queue_unittest.cc
@@ -18,7 +18,7 @@
 
 #include <random>
 
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/copyable_ptr_unittest.cc b/src/base/copyable_ptr_unittest.cc
index 205dc77..ecbd1ef 100644
--- a/src/base/copyable_ptr_unittest.cc
+++ b/src/base/copyable_ptr_unittest.cc
@@ -16,7 +16,7 @@
 
 #include "perfetto/base/copyable_ptr.h"
 
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/metatrace_unittest.cc b/src/base/metatrace_unittest.cc
index 3fbf2db..88f1a67 100644
--- a/src/base/metatrace_unittest.cc
+++ b/src/base/metatrace_unittest.cc
@@ -14,9 +14,6 @@
  * limitations under the License.
  */
 
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
-
 #include <array>
 #include <chrono>
 #include <deque>
@@ -24,6 +21,7 @@
 
 #include "perfetto/ext/base/metatrace.h"
 #include "src/base/test/test_task_runner.h"
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace {
diff --git a/src/base/no_destructor_unittest.cc b/src/base/no_destructor_unittest.cc
index 9c3460d..6fb8979 100644
--- a/src/base/no_destructor_unittest.cc
+++ b/src/base/no_destructor_unittest.cc
@@ -17,9 +17,8 @@
 
 #include <vector>
 
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
 #include "perfetto/ext/base/no_destructor.h"
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/optional_unittest.cc b/src/base/optional_unittest.cc
index 7d7c3cc..9c073ec 100644
--- a/src/base/optional_unittest.cc
+++ b/src/base/optional_unittest.cc
@@ -19,8 +19,6 @@
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wfloat-equal"
 
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
 #include <memory>
 #include <set>
 #include <string>
@@ -28,6 +26,7 @@
 
 #include "perfetto/ext/base/optional.h"
 #include "perfetto/ext/base/utils.h"
+#include "test/gtest_and_gmock.h"
 
 using ::testing::ElementsAre;
 
diff --git a/src/base/paged_memory_unittest.cc b/src/base/paged_memory_unittest.cc
index 1ccea60..97f1a74 100644
--- a/src/base/paged_memory_unittest.cc
+++ b/src/base/paged_memory_unittest.cc
@@ -18,9 +18,9 @@
 
 #include <stdint.h>
 
-#include <gtest/gtest.h>
 #include "perfetto/base/build_config.h"
 #include "src/base/test/vm_test_utils.h"
+#include "test/gtest_and_gmock.h"
 
 #if !PERFETTO_BUILDFLAG(PERFETTO_OS_MACOSX) && \
     !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) &&    \
diff --git a/src/base/scoped_file_unittest.cc b/src/base/scoped_file_unittest.cc
index 7c77641..13f1acb 100644
--- a/src/base/scoped_file_unittest.cc
+++ b/src/base/scoped_file_unittest.cc
@@ -29,7 +29,7 @@
 #define TEST_INVALID_CLOSE
 #endif
 
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/string_splitter_unittest.cc b/src/base/string_splitter_unittest.cc
index fa98434..eb80d35 100644
--- a/src/base/string_splitter_unittest.cc
+++ b/src/base/string_splitter_unittest.cc
@@ -18,8 +18,7 @@
 
 #include <vector>
 
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/string_utils_unittest.cc b/src/base/string_utils_unittest.cc
index 72471e7..58d0262 100644
--- a/src/base/string_utils_unittest.cc
+++ b/src/base/string_utils_unittest.cc
@@ -15,9 +15,7 @@
  */
 
 #include "perfetto/ext/base/string_utils.h"
-
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/string_view_unittest.cc b/src/base/string_view_unittest.cc
index 4e1ef06..b1e7bdf 100644
--- a/src/base/string_view_unittest.cc
+++ b/src/base/string_view_unittest.cc
@@ -20,8 +20,7 @@
 #include <unordered_map>
 #include <unordered_set>
 
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/string_writer_unittest.cc b/src/base/string_writer_unittest.cc
index 12a7872..1df52bf 100644
--- a/src/base/string_writer_unittest.cc
+++ b/src/base/string_writer_unittest.cc
@@ -16,8 +16,7 @@
 
 #include "perfetto/ext/base/string_writer.h"
 
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/task_runner_unittest.cc b/src/base/task_runner_unittest.cc
index 6eb01f6..a8368b5 100644
--- a/src/base/task_runner_unittest.cc
+++ b/src/base/task_runner_unittest.cc
@@ -16,7 +16,6 @@
 
 #include "perfetto/ext/base/unix_task_runner.h"
 
-#include <gtest/gtest.h>
 #include <thread>
 
 #include "perfetto/base/build_config.h"
@@ -25,6 +24,7 @@
 #include "perfetto/ext/base/scoped_file.h"
 #include "perfetto/ext/base/utils.h"
 #include "src/base/test/gtest_test_suite.h"
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/temp_file_unittest.cc b/src/base/temp_file_unittest.cc
index 8f5dc22..c2e2f4d 100644
--- a/src/base/temp_file_unittest.cc
+++ b/src/base/temp_file_unittest.cc
@@ -19,7 +19,7 @@
 #include <sys/stat.h>
 #include <unistd.h>
 
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/test/gtest_test_suite.h b/src/base/test/gtest_test_suite.h
index b8b7561..4d1d550 100644
--- a/src/base/test/gtest_test_suite.h
+++ b/src/base/test/gtest_test_suite.h
@@ -17,7 +17,7 @@
 #ifndef SRC_BASE_TEST_GTEST_TEST_SUITE_H_
 #define SRC_BASE_TEST_GTEST_TEST_SUITE_H_
 
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 // Define newer TEST_SUITE googletest APIs as aliases of the older APIs where
 // necessary. This makes it possible to migrate Perfetto to the newer APIs and
diff --git a/src/base/thread_checker_unittest.cc b/src/base/thread_checker_unittest.cc
index 46ffcd3..f63ec5d 100644
--- a/src/base/thread_checker_unittest.cc
+++ b/src/base/thread_checker_unittest.cc
@@ -21,7 +21,7 @@
 #include <functional>
 #include <memory>
 
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/thread_task_runner_unittest.cc b/src/base/thread_task_runner_unittest.cc
index c4356fe..0e7f2af 100644
--- a/src/base/thread_task_runner_unittest.cc
+++ b/src/base/thread_task_runner_unittest.cc
@@ -18,8 +18,8 @@
 
 #include <thread>
 
-#include <gtest/gtest.h>
 #include "perfetto/ext/base/thread_checker.h"
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/time_unittest.cc b/src/base/time_unittest.cc
index cac79bd..31abf55 100644
--- a/src/base/time_unittest.cc
+++ b/src/base/time_unittest.cc
@@ -16,7 +16,7 @@
 
 #include "perfetto/ext/base/time.h"
 
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/unix_socket_unittest.cc b/src/base/unix_socket_unittest.cc
index e7b3d1a..8f54cab 100644
--- a/src/base/unix_socket_unittest.cc
+++ b/src/base/unix_socket_unittest.cc
@@ -24,8 +24,6 @@
 #include <list>
 #include <thread>
 
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
 #include "perfetto/base/build_config.h"
 #include "perfetto/base/logging.h"
 #include "perfetto/ext/base/file_utils.h"
@@ -34,6 +32,7 @@
 #include "perfetto/ext/base/utils.h"
 #include "src/base/test/test_task_runner.h"
 #include "src/ipc/test/test_socket.h"
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
@@ -424,7 +423,7 @@
             EXPECT_EQ(geteuid(), static_cast<uint32_t>(srv_conn->peer_uid()));
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
-            EXPECT_EQ(getpid(), static_cast<uint32_t>(srv_conn->peer_pid()));
+            EXPECT_EQ(getpid(), static_cast<pid_t>(srv_conn->peer_pid()));
 #endif
             srv_connected();
           }));
@@ -454,7 +453,7 @@
   EXPECT_EQ(geteuid(), static_cast<uint32_t>(srv_client_conn->peer_uid()));
 #if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
     PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
-  EXPECT_EQ(getpid(), static_cast<uint32_t>(srv_client_conn->peer_pid()));
+  EXPECT_EQ(getpid(), static_cast<pid_t>(srv_client_conn->peer_pid()));
 #endif
 }
 
@@ -574,19 +573,19 @@
   EXPECT_NE(hdr.msg_iov, nullptr);
   EXPECT_EQ(hdr.msg_iov[0].iov_base, &hello[1]);
   EXPECT_EQ(hdr.msg_iov[1].iov_base, &world[0]);
-  EXPECT_EQ(hdr.msg_iovlen, 2);
+  EXPECT_EQ(static_cast<int>(hdr.msg_iovlen), 2);
   EXPECT_STREQ(reinterpret_cast<char*>(hdr.msg_iov[0].iov_base), "ello");
   EXPECT_EQ(iov[0].iov_len, base::ArraySize(hello) - 1);
 
   UnixSocketRaw::ShiftMsgHdr(base::ArraySize(hello) - 1, &hdr);
   EXPECT_EQ(hdr.msg_iov, &iov[1]);
-  EXPECT_EQ(hdr.msg_iovlen, 1);
+  EXPECT_EQ(static_cast<int>(hdr.msg_iovlen), 1);
   EXPECT_STREQ(reinterpret_cast<char*>(hdr.msg_iov[0].iov_base), world);
   EXPECT_EQ(hdr.msg_iov[0].iov_len, base::ArraySize(world));
 
   UnixSocketRaw::ShiftMsgHdr(base::ArraySize(world), &hdr);
   EXPECT_EQ(hdr.msg_iov, nullptr);
-  EXPECT_EQ(hdr.msg_iovlen, 0);
+  EXPECT_EQ(static_cast<int>(hdr.msg_iovlen), 0);
 }
 
 TEST_F(UnixSocketTest, ShiftMsgHdrSendFirstAndPartial) {
@@ -606,13 +605,13 @@
 
   UnixSocketRaw::ShiftMsgHdr(base::ArraySize(hello) + 1, &hdr);
   EXPECT_NE(hdr.msg_iov, nullptr);
-  EXPECT_EQ(hdr.msg_iovlen, 1);
+  EXPECT_EQ(static_cast<int>(hdr.msg_iovlen), 1);
   EXPECT_STREQ(reinterpret_cast<char*>(hdr.msg_iov[0].iov_base), "orld");
   EXPECT_EQ(hdr.msg_iov[0].iov_len, base::ArraySize(world) - 1);
 
   UnixSocketRaw::ShiftMsgHdr(base::ArraySize(world) - 1, &hdr);
   EXPECT_EQ(hdr.msg_iov, nullptr);
-  EXPECT_EQ(hdr.msg_iovlen, 0);
+  EXPECT_EQ(static_cast<int>(hdr.msg_iovlen), 0);
 }
 
 TEST_F(UnixSocketTest, ShiftMsgHdrSendEverything) {
@@ -633,7 +632,7 @@
   UnixSocketRaw::ShiftMsgHdr(base::ArraySize(world) + base::ArraySize(hello),
                              &hdr);
   EXPECT_EQ(hdr.msg_iov, nullptr);
-  EXPECT_EQ(hdr.msg_iovlen, 0);
+  EXPECT_EQ(static_cast<int>(hdr.msg_iovlen), 0);
 }
 
 void Handler(int) {}
@@ -709,7 +708,7 @@
   hdr.msg_iov = iov;
   hdr.msg_iovlen = base::ArraySize(iov);
 
-  ASSERT_EQ(send_sock.SendMsgAll(&hdr), sizeof(send_buf));
+  ASSERT_EQ(send_sock.SendMsgAll(&hdr), static_cast<ssize_t>(sizeof(send_buf)));
   send_sock.Shutdown();
   th.join();
   // Make sure the re-entry logic was actually triggered.
@@ -743,7 +742,8 @@
 
   char buf[sizeof("test")];
   ASSERT_TRUE(raw_sock);
-  ASSERT_EQ(raw_sock.Receive(buf, sizeof(buf)), sizeof(buf));
+  ASSERT_EQ(raw_sock.Receive(buf, sizeof(buf)),
+            static_cast<ssize_t>(sizeof(buf)));
   ASSERT_STREQ(buf, "test");
 }
 
diff --git a/src/base/utils_unittest.cc b/src/base/utils_unittest.cc
index a1c04af..5fcc27a 100644
--- a/src/base/utils_unittest.cc
+++ b/src/base/utils_unittest.cc
@@ -21,10 +21,9 @@
 #include <stdint.h>
 #include <unistd.h>
 
-#include <gtest/gtest.h>
-
 #include "perfetto/ext/base/file_utils.h"
 #include "perfetto/ext/base/pipe.h"
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/uuid_unittest.cc b/src/base/uuid_unittest.cc
index aa03837..bbcf77b 100644
--- a/src/base/uuid_unittest.cc
+++ b/src/base/uuid_unittest.cc
@@ -16,7 +16,7 @@
 
 #include "perfetto/ext/base/uuid.h"
 
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {
diff --git a/src/base/watchdog_unittest.cc b/src/base/watchdog_unittest.cc
index e8acaf7..f3bc850 100644
--- a/src/base/watchdog_unittest.cc
+++ b/src/base/watchdog_unittest.cc
@@ -16,11 +16,11 @@
 
 #include "perfetto/ext/base/watchdog.h"
 
-#include <gtest/gtest.h>
 #include "perfetto/base/logging.h"
 #include "perfetto/ext/base/paged_memory.h"
 #include "perfetto/ext/base/scoped_file.h"
 #include "perfetto/ext/base/thread_utils.h"
+#include "test/gtest_and_gmock.h"
 
 #include <signal.h>
 #include <time.h>
diff --git a/src/base/weak_ptr_unittest.cc b/src/base/weak_ptr_unittest.cc
index 4b63d4e..1656574 100644
--- a/src/base/weak_ptr_unittest.cc
+++ b/src/base/weak_ptr_unittest.cc
@@ -16,7 +16,7 @@
 
 #include "perfetto/ext/base/weak_ptr.h"
 
-#include <gtest/gtest.h>
+#include "test/gtest_and_gmock.h"
 
 namespace perfetto {
 namespace base {