xref: /aosp_15_r20/external/cronet/base/test/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1# Copyright 2013 The Chromium Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/compiled_action.gni")
6import("//build/config/chromeos/ui_mode.gni")
7import("//build/config/features.gni")
8import("//build/config/nacl/config.gni")
9import("//build/config/ui.gni")
10import("//build_overrides/build.gni")
11import("//third_party/protobuf/proto_library.gni")
12
13if (is_android) {
14  import("//build/config/android/rules.gni")
15  import("//third_party/jni_zero/jni_zero.gni")
16}
17
18if (is_ios) {
19  import("//build/config/ios/rules.gni")
20}
21
22if (enable_base_tracing) {
23  import("//third_party/perfetto/gn/perfetto_cc_proto_descriptor.gni")
24}
25
26static_library("test_config") {
27  testonly = true
28  sources = [
29    "test_switches.cc",
30    "test_switches.h",
31    "test_timeouts.cc",
32    "test_timeouts.h",
33  ]
34  deps = [
35    "//base",
36    "//base:clang_profiling_buildflags",
37    "//build:chromeos_buildflags",
38  ]
39}
40
41static_library("test_support") {
42  testonly = true
43  sources = [
44    "../task/sequence_manager/test/fake_task.cc",
45    "../task/sequence_manager/test/fake_task.h",
46    "../task/sequence_manager/test/mock_time_domain.cc",
47    "../task/sequence_manager/test/mock_time_domain.h",
48    "../task/sequence_manager/test/mock_time_message_pump.cc",
49    "../task/sequence_manager/test/mock_time_message_pump.h",
50    "../task/sequence_manager/test/sequence_manager_for_test.cc",
51    "../task/sequence_manager/test/sequence_manager_for_test.h",
52    "../task/sequence_manager/test/test_task_time_observer.h",
53    "../timer/mock_timer.cc",
54    "../timer/mock_timer.h",
55    "allow_check_is_test_for_testing.h",
56    "bind.cc",
57    "bind.h",
58    "copy_only_int.cc",
59    "copy_only_int.h",
60    "gmock_callback_support.h",
61    "gmock_expected_support.h",
62    "gmock_move_support.h",
63    "gtest_links.cc",
64    "gtest_links.h",
65    "gtest_tags.cc",
66    "gtest_tags.h",
67    "gtest_util.cc",
68    "gtest_util.h",
69    "gtest_xml_unittest_result_printer.cc",
70    "gtest_xml_unittest_result_printer.h",
71    "gtest_xml_util.cc",
72    "gtest_xml_util.h",
73    "icu_test_util.cc",
74    "icu_test_util.h",
75    "launcher/test_result.cc",
76    "launcher/test_result.h",
77    "launcher/test_results_tracker.h",
78    "launcher/unit_test_launcher.h",
79    "metrics/histogram_enum_reader.cc",
80    "metrics/histogram_enum_reader.h",
81    "metrics/histogram_tester.cc",
82    "metrics/histogram_tester.h",
83    "metrics/histogram_variants_reader.cc",
84    "metrics/histogram_variants_reader.h",
85    "metrics/user_action_tester.cc",
86    "metrics/user_action_tester.h",
87    "mock_callback.h",
88    "mock_devices_changed_observer.cc",
89    "mock_devices_changed_observer.h",
90    "mock_entropy_provider.cc",
91    "mock_entropy_provider.h",
92    "mock_log.cc",
93    "mock_log.h",
94    "move_only_int.h",
95    "multiprocess_test.h",
96    "null_task_runner.cc",
97    "null_task_runner.h",
98    "perf_log.cc",
99    "perf_log.h",
100    "perf_test_suite.cc",
101    "perf_test_suite.h",
102    "perf_time_logger.cc",
103    "perf_time_logger.h",
104    "power_monitor_test.cc",
105    "power_monitor_test.h",
106    "power_monitor_test_utils.cc",
107    "power_monitor_test_utils.h",
108    "protobuf_matchers.cc",
109    "protobuf_matchers.h",
110    "rectify_callback.h",
111    "rectify_callback_internal.h",
112    "repeating_test_future.h",
113    "run_until.cc",
114    "run_until.h",
115    "scoped_amount_of_physical_memory_override.cc",
116    "scoped_amount_of_physical_memory_override.h",
117    "scoped_block_tests_writing_to_special_dirs.cc",
118    "scoped_block_tests_writing_to_special_dirs.h",
119    "scoped_command_line.cc",
120    "scoped_command_line.h",
121    "scoped_feature_list.cc",
122    "scoped_feature_list.h",
123    "scoped_mock_clock_override.cc",
124    "scoped_mock_clock_override.h",
125    "scoped_mock_time_message_loop_task_runner.cc",
126    "scoped_mock_time_message_loop_task_runner.h",
127    "scoped_path_override.cc",
128    "scoped_path_override.h",
129    "scoped_run_loop_timeout.cc",
130    "scoped_run_loop_timeout.h",
131    "sequenced_task_runner_test_template.cc",
132    "sequenced_task_runner_test_template.h",
133    "simple_test_clock.cc",
134    "simple_test_clock.h",
135    "simple_test_tick_clock.cc",
136    "simple_test_tick_clock.h",
137    "task_environment.cc",
138    "task_environment.h",
139    "task_runner_test_template.cc",
140    "task_runner_test_template.h",
141    "test_discardable_memory_allocator.cc",
142    "test_discardable_memory_allocator.h",
143    "test_file_util.cc",
144    "test_file_util.h",
145    "test_future.h",
146    "test_future_internal.h",
147    "test_io_thread.cc",
148    "test_io_thread.h",
149    "test_message_loop.cc",
150    "test_message_loop.h",
151    "test_mock_time_task_runner.cc",
152    "test_mock_time_task_runner.h",
153    "test_pending_task.cc",
154    "test_pending_task.h",
155    "test_shared_memory_util.cc",
156    "test_shared_memory_util.h",
157    "test_simple_task_runner.cc",
158    "test_simple_task_runner.h",
159    "test_suite.cc",
160    "test_suite.h",
161    "test_waitable_event.cc",
162    "test_waitable_event.h",
163    "thread_test_helper.cc",
164    "thread_test_helper.h",
165    "values_test_util.cc",
166    "values_test_util.h",
167    "with_feature_override.cc",
168    "with_feature_override.h",
169  ]
170
171  configs += [ "//build/config:precompiled_headers" ]
172
173  public_deps = [
174    ":test_config",
175    "//base",
176    "//base:base_static",
177    "//base:i18n",
178    "//build:blink_buildflags",
179    "//testing/gmock",
180    "//testing/gtest",
181  ]
182
183  deps = [
184    ":proto_test_support",
185    "//build:chromeos_buildflags",
186    "//third_party/google_benchmark",
187    "//third_party/icu:icuuc",
188    "//third_party/libxml:libxml_utils",
189    "//third_party/libxml:xml_reader",
190  ]
191
192  if (enable_base_tracing) {
193    public_deps += [ "//third_party/perfetto:perfetto_test_support" ]
194    public_deps += [ ":test_trace_processor" ]
195    sources += [
196      "test_trace_processor.cc",
197      "test_trace_processor.h",
198    ]
199    deps += [
200      ":amalgamated_perfetto_sql_stdlib",
201      ":gen_cc_chrome_track_event_descriptor",
202    ]
203    if (is_ios) {
204      deps += [
205        ":test_trace_processor+bundle",
206        ":test_trace_processor+link",
207      ]
208    }
209  }
210
211  if (is_win) {
212    sources += [
213      "async_results_test_values_win.h",
214      "fake_iasync_operation_win.h",
215      "file_path_reparse_point_win.cc",
216      "file_path_reparse_point_win.h",
217      "scoped_os_info_override_win.cc",
218      "scoped_os_info_override_win.h",
219      "test_file_util_win.cc",
220      "test_reg_util_win.cc",
221      "test_reg_util_win.h",
222      "test_shortcut_win.cc",
223      "test_shortcut_win.h",
224    ]
225  }
226
227  if (is_chromeos) {
228    sources += [
229      "scoped_chromeos_version_info.cc",
230      "scoped_chromeos_version_info.h",
231      "scoped_running_on_chromeos.cc",
232      "scoped_running_on_chromeos.h",
233    ]
234  }
235
236  if (is_linux || is_chromeos) {
237    sources += [ "test_file_util_linux.cc" ]
238    public_deps += [ "//third_party/test_fonts/fontconfig:test_support" ]
239  }
240
241  if (is_mac) {
242    frameworks = [ "AppKit.framework" ]
243    sources += [
244      "mock_chrome_application_mac.h",
245      "mock_chrome_application_mac.mm",
246      "test_file_util_mac.cc",
247    ]
248  }
249
250  if (is_android) {
251    sources += [
252      "android/java_handler_thread_helpers.cc",
253      "android/java_handler_thread_helpers.h",
254      "android/url_utils.cc",
255      "android/url_utils.h",
256      "multiprocess_test_android.cc",
257      "test_file_util_android.cc",
258      "test_file_util_linux.cc",
259      "test_support_android.cc",
260      "test_support_android.h",
261      "thread_pool_test_helpers_android.cc",
262    ]
263    deps += [
264      ":base_unittests_jni_headers",
265      ":test_support_jni_headers",
266    ]
267  }
268
269  if (is_ios) {
270    sources += [
271      "ios/wait_util.h",
272      "ios/wait_util.mm",
273      "test_file_util_mac.cc",
274      "test_listener_ios.h",
275      "test_listener_ios.mm",
276      "test_support_ios.h",
277      "test_support_ios.mm",
278    ]
279    deps += [
280      ":google_test_runner_shared_headers",
281      "//build:blink_buildflags",
282      "//build:ios_buildflags",
283    ]
284
285    # With blink, we use the standard unit_test_launcher.cc.
286    if (!use_blink) {
287      sources += [ "launcher/unit_test_launcher_ios.cc" ]
288    }
289  }
290
291  if (is_posix || is_fuchsia) {
292    sources += [
293      "scoped_locale.cc",
294      "scoped_locale.h",
295      "test_file_util_posix.cc",
296    ]
297  }
298
299  if (is_fuchsia) {
300    deps += [
301      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.io:fuchsia.io_cpp_hlcpp_conversion",
302      "//third_party/fuchsia-sdk/sdk/pkg/zx",
303    ]
304    public_deps += [ "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp" ]
305    sources += [
306      "../fuchsia/test_component_context_for_process.cc",
307      "../fuchsia/test_component_context_for_process.h",
308      "fidl_matchers.h",
309      "scoped_dev_zero_fuchsia.cc",
310      "scoped_dev_zero_fuchsia.h",
311    ]
312  }
313
314  if (use_blink) {
315    sources += [
316      "launcher/test_launcher.cc",
317      "launcher/test_launcher.h",
318      "launcher/test_launcher_test_utils.cc",
319      "launcher/test_launcher_test_utils.h",
320      "launcher/test_launcher_tracer.cc",
321      "launcher/test_launcher_tracer.h",
322      "launcher/test_results_tracker.cc",
323      "launcher/unit_test_launcher.cc",
324      "multiprocess_test.cc",
325    ]
326  }
327
328  if (enable_base_tracing) {
329    sources += [
330      "../trace_event/trace_config_memory_test_util.h",
331      "trace_event_analyzer.cc",
332      "trace_event_analyzer.h",
333      "trace_test_utils.cc",
334      "trace_test_utils.h",
335      "trace_to_file.cc",
336      "trace_to_file.h",
337    ]
338  }
339}
340
341component("proto_test_support") {
342  testonly = true
343
344  sources = [
345    "test_proto_loader.cc",
346    "test_proto_loader.h",
347  ]
348
349  defines = [ "PROTO_TEST_IMPLEMENTATION" ]
350
351  deps = [
352    "//base",
353    "//third_party/protobuf:protobuf_full",
354  ]
355}
356
357proto_library("test_proto") {
358  sources = [ "test.proto" ]
359  cc_generator_options = "lite"
360}
361
362proto_library("test_proto_descriptor") {
363  sources = [ "test.proto" ]
364  generate_cc = false
365  generate_python = false
366  generate_descriptor = "test_proto.descriptor"
367}
368
369config("base_test_implementation") {
370  defines = [ "IS_BASE_TEST_IMPL" ]
371}
372
373config("perf_test_config") {
374  defines = [ "PERF_TEST" ]
375}
376
377# This is a source set instead of a static library because it seems like some
378# linkers get confused when "main" is in a static library, and if you link to
379# this, you always want the object file anyway.
380source_set("test_support_perf") {
381  testonly = true
382  sources = [ "run_all_perftests.cc" ]
383  deps = [
384    ":test_support",
385    "//base",
386    "//testing/gtest",
387  ]
388
389  public_configs = [ ":perf_test_config" ]
390}
391
392static_library("run_all_unittests") {
393  testonly = true
394  sources = [ "run_all_unittests.cc" ]
395  deps = [ ":test_support" ]
396}
397
398# These sources are linked into both the base_unittests binary and the test
399# shared library target below.
400source_set("native_library_test_utils") {
401  testonly = true
402  sources = [
403    "native_library_test_utils.cc",
404    "native_library_test_utils.h",
405  ]
406}
407
408# This shared library is dynamically loaded by ImmediateCrash unittests.
409shared_library("immediate_crash_test_helper") {
410  sources = [ "immediate_crash_test_helper.cc" ]
411
412  # Note: the helper has a header-only dependency on //base/immediate_helper.h.
413  # However, the build rule intentionally omits an explicit //base dependency
414  # to avoid potential ODR violations and minimize the amount of code linked in.
415  # We do however need to depend upon a buildflag header included in
416  # base/immediate_crash.h.
417  deps = [ "//base:fuzzing_buildflags" ]
418
419  # Try to minimize the risk of non-official builds generating different code.
420  if (!is_official_build) {
421    configs -= [ "//build/config/compiler:default_optimization" ]
422    configs += [ "//build/config/compiler:optimize_max" ]
423  }
424
425  # Disable sanitization: sanitized builds are assumed to be saner than normal,
426  # and can affect codegen in surprising ways, which breaks the tests.
427  configs -= [ "//build/config/sanitizers:default_sanitizer_flags" ]
428
429  if (is_android) {
430    configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
431  }
432}
433
434# This shared library is dynamically loaded by NativeLibrary unittests.
435shared_library("test_shared_library") {
436  testonly = true
437  sources = [ "test_shared_library.cc" ]
438
439  deps = [ ":native_library_test_utils" ]
440}
441
442if (is_fuchsia || is_linux || is_chromeos) {
443  shared_library("malloc_wrapper") {
444    testonly = true
445    sources = [
446      "malloc_wrapper.cc",
447      "malloc_wrapper.h",
448    ]
449  }
450}
451
452if (is_android) {
453  generate_jni("base_unittests_jni_headers") {
454    testonly = true
455    sources = [
456      "android/java/src/org/chromium/base/ContentUriTestUtils.java",
457      "android/java/src/org/chromium/base/JavaHandlerThreadHelpers.java",
458    ]
459  }
460
461  generate_jni("test_support_jni_headers") {
462    testonly = true
463    sources = [
464      "android/java/src/org/chromium/base/MainReturnCodeResult.java",
465      "android/java/src/org/chromium/base/MultiprocessTestClientLauncher.java",
466      "android/javatests/src/org/chromium/base/test/task/ThreadPoolTestHelpers.java",
467      "android/javatests/src/org/chromium/base/test/util/UrlUtils.java",
468    ]
469  }
470
471  # Used by all base test targets: gtests, robolectric, and instrumentation tests.
472  android_library("test_support_java") {
473    testonly = true
474
475    deps = [
476      "//base:base_java",
477      "//base:process_launcher_java",
478      "//testing/android/native_test:native_main_runner_java",
479      "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
480      "//third_party/jni_zero:jni_zero_java",
481    ]
482
483    srcjar_deps = [ ":test_support_java_aidl" ]
484    sources = [
485      "android/java/src/org/chromium/base/GarbageCollectionTestUtils.java",
486      "android/java/src/org/chromium/base/MainReturnCodeResult.java",
487      "android/java/src/org/chromium/base/MultiprocessTestClientLauncher.java",
488      "android/java/src/org/chromium/base/MultiprocessTestClientService.java",
489      "android/java/src/org/chromium/base/MultiprocessTestClientService0.java",
490      "android/java/src/org/chromium/base/MultiprocessTestClientService1.java",
491      "android/java/src/org/chromium/base/MultiprocessTestClientService2.java",
492      "android/java/src/org/chromium/base/MultiprocessTestClientService3.java",
493      "android/java/src/org/chromium/base/MultiprocessTestClientService4.java",
494      "android/java/src/org/chromium/base/MultiprocessTestClientService5.java",
495      "android/java/src/org/chromium/base/MultiprocessTestClientService6.java",
496      "android/java/src/org/chromium/base/MultiprocessTestClientService7.java",
497      "android/java/src/org/chromium/base/MultiprocessTestClientService8.java",
498      "android/java/src/org/chromium/base/MultiprocessTestClientService9.java",
499      "android/java/src/org/chromium/base/MultiprocessTestClientServiceDelegate.java",
500    ]
501  }
502
503  android_aidl("test_support_java_aidl") {
504    testonly = true
505    import_include = [
506      "android/java/src",
507      "//base/android/java/src",
508    ]
509    sources = [
510      "android/java/src/org/chromium/base/ITestCallback.aidl",
511      "android/java/src/org/chromium/base/ITestController.aidl",
512    ]
513  }
514}
515
516if (is_ios) {
517  source_set("google_test_runner_shared_headers") {
518    sources = [ "ios/google_test_runner_delegate.h" ]
519  }
520
521  source_set("google_test_runner") {
522    sources = [ "ios/google_test_runner.mm" ]
523    deps = [ ":google_test_runner_shared_headers" ]
524    frameworks = [ "UIKit.framework" ]
525    configs += [ "//build/config/ios:xctest_config" ]
526  }
527}
528
529# Trivial executable which outputs space-delimited argv to stdout,
530# used for testing.
531executable("test_child_process") {
532  testonly = true
533  sources = [ "test_child_process.cc" ]
534}
535
536if (enable_base_tracing) {
537  perfetto_cc_proto_descriptor("gen_cc_chrome_track_event_descriptor") {
538    descriptor_name = "chrome_track_event.descriptor"
539    descriptor_target = "//base/tracing/protos:chrome_track_event"
540  }
541
542  import("//base/tracing/stdlib/chrome/perfetto_sql_files.gni")
543  action("amalgamated_perfetto_sql_stdlib") {
544    script = "//third_party/perfetto/tools/gen_amalgamated_sql.py"
545    sources = rebase_path(chrome_stdlib_sql_files,
546                          ".",
547                          "//base/tracing/stdlib/chrome")
548    stdlib_header = "$root_gen_dir/base/test/perfetto_sql_stdlib.h"
549    outputs = [ stdlib_header ]
550    args = [
551             "--namespace",
552             "chrome_stdlib",
553             "--cpp-out",
554             rebase_path(stdlib_header, root_build_dir),
555           ] + rebase_path(sources, root_build_dir)
556  }
557
558  # We encapsulate the trace processor in a separate shared library to prevent
559  # any duplicate symbol issues. Perfetto symbols are exported by chromium’s
560  # base via a public_dep on libperfetto; libtrace_processor also depends on
561  # these symbols. So we “hide” the perfetto symbols exported from this
562  # interface. Also, chrome targets depend on chromium_sqlite and the trace
563  # processor depends on dev_sqlite. The two share the same symbols but have
564  # different implementations, so we need to hide dev_sqlite in this shared
565  # library even in non-component builds to prevent duplicate symbols.
566  _target_type = "shared_library"
567  if (is_ios) {
568    _target_type = "ios_framework_bundle"
569  }
570
571  target(_target_type, "test_trace_processor") {
572    defines = [ "TEST_TRACE_PROCESSOR_IMPL" ]
573    testonly = true
574    sources = [
575      "test_trace_processor_export.h",
576      "test_trace_processor_impl.cc",
577      "test_trace_processor_impl.h",
578    ]
579    deps = [
580      "//third_party/abseil-cpp:absl",
581      "//third_party/perfetto:libtrace_processor",
582    ]
583    if (is_android) {
584      configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
585    }
586
587    if (is_ios) {
588      info_plist = "test_trace_processor_impl.plist"
589      output_name = "TestTraceProcessor"
590      bundle_deps_filter = [ "//third_party/icu:icudata" ]
591    }
592
593    # Set rpath on dependent tests so that they can find the shared library
594    # in a non-component build.
595    if (!is_component_build) {
596      all_dependent_configs = []
597      if (is_linux || is_chromeos) {
598        all_dependent_configs +=
599            [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
600      }
601      if (is_mac) {
602        # We need the lib to be in $root_out_dir/Libraries so the library is where
603        # the linker expects it, since we set the install_name flag. We need to
604        # set this flag so that the library can be found when it is bundled in the
605        # Content Shell Framework (see test_trace_processor_bundle_data).
606        output_dir = "$root_out_dir/Libraries"
607        ldflags = [ "-Wl,-install_name,@loader_path/Libraries/libtest_trace_processor.dylib" ]
608      }
609    }
610  }
611
612  if (!is_component_build && is_mac) {
613    bundle_data("test_trace_processor_bundle_data") {
614      testonly = true
615      sources = [ "$root_out_dir/Libraries/libtest_trace_processor.dylib" ]
616      outputs = [ "{{bundle_contents_dir}}/Libraries/{{source_file_part}}" ]
617      public_deps = [ ":test_trace_processor" ]
618    }
619  }
620} else if (!is_component_build && is_mac) {
621  # Provide a dummy target in order for clients to not have to special-case
622  # the dependency.
623  group("test_trace_processor_bundle_data") {
624    testonly = true
625  }
626}
627
628if (is_android) {
629  android_library("public_transit_java") {
630    testonly = true
631
632    deps = [
633      "//base:base_java",
634      "//base:base_java_test_support",
635      "//build/android:build_java",
636      "//third_party/android_deps:com_google_errorprone_error_prone_annotations_java",
637      "//third_party/android_deps:espresso_java",
638      "//third_party/android_deps:guava_android_java",
639      "//third_party/androidx:androidx_annotation_annotation_java",
640      "//third_party/androidx:androidx_core_core_java",
641      "//third_party/androidx:androidx_test_monitor_java",
642      "//third_party/hamcrest:hamcrest_java",
643      "//third_party/junit",
644    ]
645
646    sources = [
647      "android/javatests/src/org/chromium/base/test/transit/BatchedPublicTransitRule.java",
648      "android/javatests/src/org/chromium/base/test/transit/CallbackCondition.java",
649      "android/javatests/src/org/chromium/base/test/transit/Condition.java",
650      "android/javatests/src/org/chromium/base/test/transit/ConditionChecker.java",
651      "android/javatests/src/org/chromium/base/test/transit/ConditionStatus.java",
652      "android/javatests/src/org/chromium/base/test/transit/ConditionWaiter.java",
653      "android/javatests/src/org/chromium/base/test/transit/ConditionalState.java",
654      "android/javatests/src/org/chromium/base/test/transit/ElementInState.java",
655      "android/javatests/src/org/chromium/base/test/transit/Elements.java",
656      "android/javatests/src/org/chromium/base/test/transit/FacilityCheckIn.java",
657      "android/javatests/src/org/chromium/base/test/transit/FacilityCheckOut.java",
658      "android/javatests/src/org/chromium/base/test/transit/InstrumentationThreadCondition.java",
659      "android/javatests/src/org/chromium/base/test/transit/LogicalElement.java",
660      "android/javatests/src/org/chromium/base/test/transit/PublicTransitConfig.java",
661      "android/javatests/src/org/chromium/base/test/transit/StationFacility.java",
662      "android/javatests/src/org/chromium/base/test/transit/StatusStore.java",
663      "android/javatests/src/org/chromium/base/test/transit/TrafficControl.java",
664      "android/javatests/src/org/chromium/base/test/transit/TransitAsserts.java",
665      "android/javatests/src/org/chromium/base/test/transit/TransitStation.java",
666      "android/javatests/src/org/chromium/base/test/transit/Transition.java",
667      "android/javatests/src/org/chromium/base/test/transit/TravelException.java",
668      "android/javatests/src/org/chromium/base/test/transit/Trip.java",
669      "android/javatests/src/org/chromium/base/test/transit/UiThreadCondition.java",
670      "android/javatests/src/org/chromium/base/test/transit/ViewConditions.java",
671      "android/javatests/src/org/chromium/base/test/transit/ViewElement.java",
672      "android/javatests/src/org/chromium/base/test/transit/ViewElementInState.java",
673    ]
674  }
675}
676