Builds CTS sources in standalone build

Minor change to spot refactoring bugs earlier.
Builds the CTS code also in standalone builds, without running it.
Also makes the perfetto_cts_deps target auto-generated, to keep
deps in sync.

Change-Id: I9be6577f8732dd17e8940d1d296891e87459cc62
diff --git a/Android.bp b/Android.bp
index ef8d66b..27da003 100644
--- a/Android.bp
+++ b/Android.bp
@@ -686,6 +686,260 @@
   ],
 }
 
+// GN: //test/cts:perfetto_cts_deps
+cc_library_static {
+  name: "perfetto_cts_deps",
+  srcs: [
+    ":perfetto_include_perfetto_base_base",
+    ":perfetto_include_perfetto_ext_base_base",
+    ":perfetto_include_perfetto_ext_ipc_ipc",
+    ":perfetto_include_perfetto_ext_traced_sys_stats_counters",
+    ":perfetto_include_perfetto_ext_traced_traced",
+    ":perfetto_include_perfetto_ext_tracing_core_core",
+    ":perfetto_include_perfetto_ext_tracing_ipc_ipc",
+    ":perfetto_include_perfetto_protozero_protozero",
+    ":perfetto_include_perfetto_tracing_core_core",
+    ":perfetto_include_perfetto_tracing_core_forward_decls",
+    ":perfetto_include_perfetto_tracing_tracing",
+    ":perfetto_protos_perfetto_common_cpp_gen",
+    ":perfetto_protos_perfetto_common_lite_gen",
+    ":perfetto_protos_perfetto_common_zero_gen",
+    ":perfetto_protos_perfetto_config_android_cpp_gen",
+    ":perfetto_protos_perfetto_config_android_lite_gen",
+    ":perfetto_protos_perfetto_config_android_zero_gen",
+    ":perfetto_protos_perfetto_config_cpp_gen",
+    ":perfetto_protos_perfetto_config_ftrace_cpp_gen",
+    ":perfetto_protos_perfetto_config_ftrace_lite_gen",
+    ":perfetto_protos_perfetto_config_ftrace_zero_gen",
+    ":perfetto_protos_perfetto_config_gpu_cpp_gen",
+    ":perfetto_protos_perfetto_config_gpu_lite_gen",
+    ":perfetto_protos_perfetto_config_gpu_zero_gen",
+    ":perfetto_protos_perfetto_config_inode_file_cpp_gen",
+    ":perfetto_protos_perfetto_config_inode_file_lite_gen",
+    ":perfetto_protos_perfetto_config_inode_file_zero_gen",
+    ":perfetto_protos_perfetto_config_lite_gen",
+    ":perfetto_protos_perfetto_config_power_cpp_gen",
+    ":perfetto_protos_perfetto_config_power_lite_gen",
+    ":perfetto_protos_perfetto_config_power_zero_gen",
+    ":perfetto_protos_perfetto_config_process_stats_cpp_gen",
+    ":perfetto_protos_perfetto_config_process_stats_lite_gen",
+    ":perfetto_protos_perfetto_config_process_stats_zero_gen",
+    ":perfetto_protos_perfetto_config_profiling_cpp_gen",
+    ":perfetto_protos_perfetto_config_profiling_lite_gen",
+    ":perfetto_protos_perfetto_config_profiling_zero_gen",
+    ":perfetto_protos_perfetto_config_sys_stats_cpp_gen",
+    ":perfetto_protos_perfetto_config_sys_stats_lite_gen",
+    ":perfetto_protos_perfetto_config_sys_stats_zero_gen",
+    ":perfetto_protos_perfetto_config_zero_gen",
+    ":perfetto_protos_perfetto_ipc_cpp_gen",
+    ":perfetto_protos_perfetto_ipc_ipc_gen",
+    ":perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen",
+    ":perfetto_protos_perfetto_trace_android_lite_gen",
+    ":perfetto_protos_perfetto_trace_android_zero_gen",
+    ":perfetto_protos_perfetto_trace_chrome_lite_gen",
+    ":perfetto_protos_perfetto_trace_chrome_zero_gen",
+    ":perfetto_protos_perfetto_trace_filesystem_lite_gen",
+    ":perfetto_protos_perfetto_trace_filesystem_zero_gen",
+    ":perfetto_protos_perfetto_trace_ftrace_lite_gen",
+    ":perfetto_protos_perfetto_trace_ftrace_zero_gen",
+    ":perfetto_protos_perfetto_trace_gpu_lite_gen",
+    ":perfetto_protos_perfetto_trace_gpu_zero_gen",
+    ":perfetto_protos_perfetto_trace_interned_data_lite_gen",
+    ":perfetto_protos_perfetto_trace_interned_data_zero_gen",
+    ":perfetto_protos_perfetto_trace_minimal_lite_gen",
+    ":perfetto_protos_perfetto_trace_minimal_zero_gen",
+    ":perfetto_protos_perfetto_trace_non_minimal_lite_gen",
+    ":perfetto_protos_perfetto_trace_non_minimal_zero_gen",
+    ":perfetto_protos_perfetto_trace_perfetto_lite_gen",
+    ":perfetto_protos_perfetto_trace_perfetto_zero_gen",
+    ":perfetto_protos_perfetto_trace_power_lite_gen",
+    ":perfetto_protos_perfetto_trace_power_zero_gen",
+    ":perfetto_protos_perfetto_trace_profiling_lite_gen",
+    ":perfetto_protos_perfetto_trace_profiling_zero_gen",
+    ":perfetto_protos_perfetto_trace_ps_lite_gen",
+    ":perfetto_protos_perfetto_trace_ps_zero_gen",
+    ":perfetto_protos_perfetto_trace_sys_stats_lite_gen",
+    ":perfetto_protos_perfetto_trace_sys_stats_zero_gen",
+    ":perfetto_protos_perfetto_trace_track_event_lite_gen",
+    ":perfetto_protos_perfetto_trace_track_event_zero_gen",
+    ":perfetto_src_android_internal_headers",
+    ":perfetto_src_android_internal_lazy_library_loader",
+    ":perfetto_src_base_base",
+    ":perfetto_src_base_test_support",
+    ":perfetto_src_base_unix_socket",
+    ":perfetto_src_ipc_ipc",
+    ":perfetto_src_perfetto_cmd_perfetto_atoms",
+    ":perfetto_src_protozero_protozero",
+    ":perfetto_src_traced_probes_android_log_android_log",
+    ":perfetto_src_traced_probes_data_source",
+    ":perfetto_src_traced_probes_filesystem_filesystem",
+    ":perfetto_src_traced_probes_ftrace_format_parser",
+    ":perfetto_src_traced_probes_ftrace_ftrace",
+    ":perfetto_src_traced_probes_metatrace_metatrace",
+    ":perfetto_src_traced_probes_packages_list_packages_list",
+    ":perfetto_src_traced_probes_power_power",
+    ":perfetto_src_traced_probes_probes_src",
+    ":perfetto_src_traced_probes_ps_ps",
+    ":perfetto_src_traced_probes_sys_stats_sys_stats",
+    ":perfetto_src_tracing_common",
+    ":perfetto_src_tracing_ipc",
+    ":perfetto_src_tracing_tracing",
+    ":perfetto_test_task_runner_thread",
+    ":perfetto_test_task_runner_thread_delegates",
+    ":perfetto_test_test_helper",
+    "test/cts/device_feature_test_cts.cc",
+    "test/cts/end_to_end_integrationtest_cts.cc",
+    "test/cts/heapprofd_java_test_cts.cc",
+    "test/cts/heapprofd_test_cts.cc",
+    "test/cts/utils.cc",
+  ],
+  shared_libs: [
+    "libprotobuf-cpp-lite",
+  ],
+  static_libs: [
+    "libgmock",
+    "libgtest",
+    "libperfetto_client_experimental",
+  ],
+  export_include_dirs: [
+    "include",
+    "include/perfetto/base/build_configs/android_tree",
+  ],
+  generated_headers: [
+    "perfetto_protos_perfetto_common_cpp_gen_headers",
+    "perfetto_protos_perfetto_common_lite_gen_headers",
+    "perfetto_protos_perfetto_common_zero_gen_headers",
+    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_android_lite_gen_headers",
+    "perfetto_protos_perfetto_config_android_zero_gen_headers",
+    "perfetto_protos_perfetto_config_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
+    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_gpu_lite_gen_headers",
+    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
+    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+    "perfetto_protos_perfetto_config_lite_gen_headers",
+    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_power_lite_gen_headers",
+    "perfetto_protos_perfetto_config_power_zero_gen_headers",
+    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_process_stats_lite_gen_headers",
+    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_profiling_lite_gen_headers",
+    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_sys_stats_lite_gen_headers",
+    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+    "perfetto_protos_perfetto_config_zero_gen_headers",
+    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+    "perfetto_protos_perfetto_trace_android_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_non_minimal_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_perfetto_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_power_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_profiling_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_ps_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_sys_stats_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_track_event_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+  ],
+  export_generated_headers: [
+    "perfetto_protos_perfetto_common_cpp_gen_headers",
+    "perfetto_protos_perfetto_common_lite_gen_headers",
+    "perfetto_protos_perfetto_common_zero_gen_headers",
+    "perfetto_protos_perfetto_config_android_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_android_lite_gen_headers",
+    "perfetto_protos_perfetto_config_android_zero_gen_headers",
+    "perfetto_protos_perfetto_config_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_ftrace_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_ftrace_lite_gen_headers",
+    "perfetto_protos_perfetto_config_ftrace_zero_gen_headers",
+    "perfetto_protos_perfetto_config_gpu_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_gpu_lite_gen_headers",
+    "perfetto_protos_perfetto_config_gpu_zero_gen_headers",
+    "perfetto_protos_perfetto_config_inode_file_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_inode_file_lite_gen_headers",
+    "perfetto_protos_perfetto_config_inode_file_zero_gen_headers",
+    "perfetto_protos_perfetto_config_lite_gen_headers",
+    "perfetto_protos_perfetto_config_power_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_power_lite_gen_headers",
+    "perfetto_protos_perfetto_config_power_zero_gen_headers",
+    "perfetto_protos_perfetto_config_process_stats_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_process_stats_lite_gen_headers",
+    "perfetto_protos_perfetto_config_process_stats_zero_gen_headers",
+    "perfetto_protos_perfetto_config_profiling_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_profiling_lite_gen_headers",
+    "perfetto_protos_perfetto_config_profiling_zero_gen_headers",
+    "perfetto_protos_perfetto_config_sys_stats_cpp_gen_headers",
+    "perfetto_protos_perfetto_config_sys_stats_lite_gen_headers",
+    "perfetto_protos_perfetto_config_sys_stats_zero_gen_headers",
+    "perfetto_protos_perfetto_config_zero_gen_headers",
+    "perfetto_protos_perfetto_ipc_cpp_gen_headers",
+    "perfetto_protos_perfetto_ipc_ipc_gen_headers",
+    "perfetto_protos_perfetto_ipc_wire_protocol_cpp_gen_headers",
+    "perfetto_protos_perfetto_trace_android_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_android_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_chrome_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_filesystem_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_filesystem_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_ftrace_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_ftrace_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_gpu_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_gpu_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_interned_data_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_interned_data_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_minimal_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_minimal_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_non_minimal_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_non_minimal_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_perfetto_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_perfetto_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_power_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_power_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_profiling_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_ps_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_ps_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_sys_stats_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_sys_stats_zero_gen_headers",
+    "perfetto_protos_perfetto_trace_track_event_lite_gen_headers",
+    "perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
+  ],
+  defaults: [
+    "perfetto_defaults",
+  ],
+  cflags: [
+    "-DGOOGLE_PROTOBUF_NO_RTTI",
+    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+  ],
+}
+
 // GN: //gn:default_deps
 cc_defaults {
   name: "perfetto_defaults",
@@ -932,6 +1186,7 @@
   ],
   static_libs: [
     "libgmock",
+    "libgtest",
     "libperfetto_client_experimental",
   ],
   generated_headers: [
@@ -5658,6 +5913,7 @@
   ],
   static_libs: [
     "libgmock",
+    "libgtest",
   ],
   generated_headers: [
     "gen_merged_sql_metrics",
@@ -6262,37 +6518,6 @@
 // These targets are appended to the autogenerated Android.bp by tools/gen_android_bp.
 
 cc_library_static {
-  name: "perfetto_cts_deps",
-  srcs: [
-    "src/base/test/test_task_runner.cc",
-    "src/traced/probes/ftrace/cpu_reader.cc",
-    "src/traced/probes/ftrace/event_info.cc",
-    "src/traced/probes/ftrace/format_parser.cc",
-    "src/traced/probes/ftrace/ftrace_controller.cc",
-    "src/traced/probes/ftrace/ftrace_procfs.cc",
-    "src/traced/probes/ftrace/proto_translation_table.cc",
-    "src/traced/probes/probes_producer.cc",
-    "test/end_to_end_integrationtest.cc",
-    "test/fake_producer.cc",
-    "test/task_runner_thread.cc",
-    "test/task_runner_thread_delegates.cc",
-    "test/test_helper.cc",
-  ],
-  shared_libs: [
-    "libprotobuf-cpp-lite",
-  ],
-  static_libs: [
-    "libgmock",
-    "libgtest",
-    "libperfetto_client_experimental",
-    "perfetto_trace_protos",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-}
-
-cc_library_static {
   name: "perfetto_cts_jni_deps",
   srcs: [
     "src/base/test/test_task_runner.cc",
diff --git a/Android.bp.extras b/Android.bp.extras
index 6011886..ec61a44 100644
--- a/Android.bp.extras
+++ b/Android.bp.extras
@@ -1,37 +1,6 @@
 // These targets are appended to the autogenerated Android.bp by tools/gen_android_bp.
 
 cc_library_static {
-  name: "perfetto_cts_deps",
-  srcs: [
-    "src/base/test/test_task_runner.cc",
-    "src/traced/probes/ftrace/cpu_reader.cc",
-    "src/traced/probes/ftrace/event_info.cc",
-    "src/traced/probes/ftrace/format_parser.cc",
-    "src/traced/probes/ftrace/ftrace_controller.cc",
-    "src/traced/probes/ftrace/ftrace_procfs.cc",
-    "src/traced/probes/ftrace/proto_translation_table.cc",
-    "src/traced/probes/probes_producer.cc",
-    "test/end_to_end_integrationtest.cc",
-    "test/fake_producer.cc",
-    "test/task_runner_thread.cc",
-    "test/task_runner_thread_delegates.cc",
-    "test/test_helper.cc",
-  ],
-  shared_libs: [
-    "libprotobuf-cpp-lite",
-  ],
-  static_libs: [
-    "libgmock",
-    "libgtest",
-    "libperfetto_client_experimental",
-    "perfetto_trace_protos",
-  ],
-  defaults: [
-    "perfetto_defaults",
-  ],
-}
-
-cc_library_static {
   name: "perfetto_cts_jni_deps",
   srcs: [
     "src/base/test/test_task_runner.cc",
diff --git a/BUILD.gn b/BUILD.gn
index daf73a9..7f46e10 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -125,6 +125,12 @@
   ]
 }
 
+# The CTS code is built (but not ran) also in standalone builds. This is to
+# catch refactoring breakages earlier without having to wait for treehugger.
+if (is_android && (perfetto_build_standalone || perfetto_build_with_android)) {
+  all_targets += [ "test/cts:perfetto_cts_deps" ]
+}
+
 group("all") {
   testonly = true  # allow to build also test targets
   deps = all_targets
@@ -194,7 +200,7 @@
   # on how to use the Perfetto Client API from the android tree.
   static_library("libperfetto_client_experimental") {
     complete_static_lib = true
-    deps = [
+    public_deps = [
       "gn:default_deps",
       "src/tracing",
       "src/tracing:client_api",
diff --git a/test/cts/Android.bp b/test/cts/Android.bp
index 69803de..4871ebb 100644
--- a/test/cts/Android.bp
+++ b/test/cts/Android.bp
@@ -15,15 +15,13 @@
     "libgmock",
     "libprotobuf-cpp-lite",
     "libperfetto_client_experimental",
+    "perfetto_cts_deps",
     "perfetto_trace_protos",
   ],
   shared_libs: [
     "libandroid",
     "liblog",
   ],
-  whole_static_libs: [
-    "perfetto_cts_deps"
-  ],
   test_suites: [
     "cts",
     "vts",
diff --git a/test/cts/BUILD.gn b/test/cts/BUILD.gn
new file mode 100644
index 0000000..7e04b15
--- /dev/null
+++ b/test/cts/BUILD.gn
@@ -0,0 +1,39 @@
+# Copyright (C) 2018 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.
+
+import("../../gn/perfetto.gni")
+
+assert(is_android)
+
+static_library("perfetto_cts_deps") {
+  complete_static_lib = true
+  testonly = true
+  deps = [
+    "../..:libperfetto_client_experimental",
+    "../../gn:default_deps",
+    "../../gn:gtest_and_gmock",
+    "../../include/perfetto/ext/tracing/core",
+    "../../protos/perfetto/config/profiling:lite",
+    "../../protos/perfetto/trace:lite",
+    "../../src/base:test_support",
+    "../../test:test_helper",
+  ]
+  sources = [
+    "device_feature_test_cts.cc",
+    "end_to_end_integrationtest_cts.cc",
+    "heapprofd_java_test_cts.cc",
+    "heapprofd_test_cts.cc",
+    "utils.cc",
+  ]
+}
diff --git a/test/cts/device_feature_test_cts.cc b/test/cts/device_feature_test_cts.cc
index c91fe49..3ed5bc1 100644
--- a/test/cts/device_feature_test_cts.cc
+++ b/test/cts/device_feature_test_cts.cc
@@ -23,7 +23,7 @@
 TEST(PerfettoDeviceFeatureTest, TestMaxCpusForAtraceChmod) {
   // Check that there are no more than 16 CPUs so that the assumption in the
   // atrace.rc for clearing CPU buffers is valid.
-  ASSERT_LE(get_nprocs(), 16);
+  ASSERT_LE(sysconf(_SC_NPROCESSORS_CONF), 16);
 }
 
 }  // namespace perfetto
diff --git a/test/cts/end_to_end_integrationtest_cts.cc b/test/cts/end_to_end_integrationtest_cts.cc
index e174bb4..3e7b404 100644
--- a/test/cts/end_to_end_integrationtest_cts.cc
+++ b/test/cts/end_to_end_integrationtest_cts.cc
@@ -18,16 +18,12 @@
 #include <random>
 #include "test/gtest_and_gmock.h"
 
-#include "perfetto/ext/traced/traced.h"
-#include "perfetto/ext/tracing/core/trace_packet.h"
 #include "perfetto/tracing/core/data_source_config.h"
 #include "src/base/test/test_task_runner.h"
 #include "test/test_helper.h"
 
 #include "protos/perfetto/config/test_config.gen.h"
-#include "protos/perfetto/trace/test_event.pbzero.h"
 #include "protos/perfetto/trace/trace_packet.pb.h"
-#include "protos/perfetto/trace/trace_packet.pbzero.h"
 
 namespace perfetto {
 
diff --git a/test/cts/heapprofd_java_test_cts.cc b/test/cts/heapprofd_java_test_cts.cc
index 8ac3760..23bba73 100644
--- a/test/cts/heapprofd_java_test_cts.cc
+++ b/test/cts/heapprofd_java_test_cts.cc
@@ -74,16 +74,16 @@
 }
 
 void AssertGraphPresent(std::vector<protos::TracePacket> packets) {
-  ASSERT_GT(packets.size(), 0);
+  ASSERT_GT(packets.size(), 0u);
 
   size_t objects = 0;
   size_t roots = 0;
   for (const auto& packet : packets) {
-    objects += packet.heap_graph().objects_size();
-    roots += packet.heap_graph().roots_size();
+    objects += static_cast<size_t>(packet.heap_graph().objects_size());
+    roots += static_cast<size_t>(packet.heap_graph().roots_size());
   }
-  ASSERT_GT(objects, 0);
-  ASSERT_GT(roots, 0);
+  ASSERT_GT(objects, 0u);
+  ASSERT_GT(roots, 0u);
 }
 
 void AssertNoProfileContents(std::vector<protos::TracePacket> packets) {
diff --git a/test/cts/heapprofd_test_cts.cc b/test/cts/heapprofd_test_cts.cc
index acb92c3..c1faf6c 100644
--- a/test/cts/heapprofd_test_cts.cc
+++ b/test/cts/heapprofd_test_cts.cc
@@ -128,7 +128,7 @@
 
 void AssertExpectedAllocationsPresent(
     std::vector<protos::TracePacket> packets) {
-  ASSERT_GT(packets.size(), 0);
+  ASSERT_GT(packets.size(), 0u);
 
   // TODO(rsavitski): assert particular stack frames once we clarify the
   // expected behaviour of unwinding native libs within an apk.
diff --git a/test/cts/utils.cc b/test/cts/utils.cc
index e37cbc7..1407fa1 100644
--- a/test/cts/utils.cc
+++ b/test/cts/utils.cc
@@ -82,7 +82,7 @@
         PollRunState(desired_run_state, task_runner, app_name,
                      std::move(checkpoint));
       },
-      delay_ms);
+      static_cast<uint32_t>(delay_ms));
 }
 
 void StopApp(const std::string& app_name,
diff --git a/tools/gen_android_bp b/tools/gen_android_bp
index fa689ca..c00e697 100755
--- a/tools/gen_android_bp
+++ b/tools/gen_android_bp
@@ -61,6 +61,7 @@
     '//src/profiling/perf:traced_perf',
     '//src/traced/probes:traced_probes',
     '//src/traced/service:traced',
+    '//test/cts:perfetto_cts_deps',
 ]
 
 # Host targets
@@ -169,8 +170,9 @@
 }
 
 
-def enable_gmock(module):
+def enable_gtest_and_gmock(module):
   module.static_libs.add('libgmock')
+  module.static_libs.add('libgtest')
 
 
 def enable_protobuf_full(module):
@@ -224,7 +226,7 @@
     '//gn:default_deps': lambda x: None,
     '//gn:gtest_main': lambda x: None,
     '//gn:protoc': lambda x: None,
-    '//gn:gtest_and_gmock': enable_gmock,
+    '//gn:gtest_and_gmock': enable_gtest_and_gmock,
     '//gn:libunwind': enable_libunwind,
     '//gn:protobuf_full': enable_protobuf_full,
     '//gn:protobuf_lite': enable_protobuf_lite,