| # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/compiled_action.gni") |
| import("//build/config/ui.gni") |
| import("//build/config/nacl/config.gni") |
| |
| if (is_android) { |
| import("//build/config/android/rules.gni") |
| } |
| |
| static_library("test_config") { |
| testonly = true |
| sources = [ |
| "test_switches.cc", |
| "test_switches.h", |
| "test_timeouts.cc", |
| "test_timeouts.h", |
| ] |
| deps = [ |
| "//base", |
| ] |
| } |
| |
| static_library("test_support") { |
| testonly = true |
| sources = [ |
| "../memory/fake_memory_pressure_monitor.cc", |
| "../memory/fake_memory_pressure_monitor.h", |
| "../task/sequence_manager/test/fake_task.cc", |
| "../task/sequence_manager/test/fake_task.h", |
| "../task/sequence_manager/test/lazy_thread_controller_for_test.cc", |
| "../task/sequence_manager/test/lazy_thread_controller_for_test.h", |
| "../task/sequence_manager/test/mock_time_domain.cc", |
| "../task/sequence_manager/test/mock_time_domain.h", |
| "../task/sequence_manager/test/sequence_manager_for_test.cc", |
| "../task/sequence_manager/test/sequence_manager_for_test.h", |
| "../task/sequence_manager/test/test_task_queue.cc", |
| "../task/sequence_manager/test/test_task_queue.h", |
| "../task/sequence_manager/test/test_task_time_observer.h", |
| "../timer/mock_timer.cc", |
| "../timer/mock_timer.h", |
| "../trace_event/trace_config_memory_test_util.h", |
| "android/java_handler_thread_helpers.cc", |
| "android/java_handler_thread_helpers.h", |
| "android/url_utils.cc", |
| "android/url_utils.h", |
| "bind_test_util.h", |
| "copy_only_int.h", |
| "fuzzed_data_provider.cc", |
| "fuzzed_data_provider.h", |
| "gtest_util.cc", |
| "gtest_util.h", |
| "gtest_xml_unittest_result_printer.cc", |
| "gtest_xml_unittest_result_printer.h", |
| "gtest_xml_util.cc", |
| "gtest_xml_util.h", |
| "icu_test_util.cc", |
| "icu_test_util.h", |
| "ios/wait_util.h", |
| "ios/wait_util.mm", |
| "launcher/test_result.cc", |
| "launcher/test_result.h", |
| "launcher/test_results_tracker.h", |
| "launcher/unit_test_launcher.h", |
| "metrics/histogram_enum_reader.cc", |
| "metrics/histogram_enum_reader.h", |
| "metrics/histogram_tester.cc", |
| "metrics/histogram_tester.h", |
| "metrics/user_action_tester.cc", |
| "metrics/user_action_tester.h", |
| "mock_callback.h", |
| "mock_chrome_application_mac.h", |
| "mock_chrome_application_mac.mm", |
| "mock_devices_changed_observer.cc", |
| "mock_devices_changed_observer.h", |
| "mock_entropy_provider.cc", |
| "mock_entropy_provider.h", |
| "mock_log.cc", |
| "mock_log.h", |
| "move_only_int.h", |
| "multiprocess_test.h", |
| "multiprocess_test_android.cc", |
| "null_task_runner.cc", |
| "null_task_runner.h", |
| "perf_log.cc", |
| "perf_log.h", |
| "perf_test_suite.cc", |
| "perf_test_suite.h", |
| "perf_time_logger.cc", |
| "perf_time_logger.h", |
| "power_monitor_test_base.cc", |
| "power_monitor_test_base.h", |
| "scoped_command_line.cc", |
| "scoped_command_line.h", |
| "scoped_environment_variable_override.cc", |
| "scoped_environment_variable_override.h", |
| "scoped_feature_list.cc", |
| "scoped_feature_list.h", |
| "scoped_mock_clock_override.cc", |
| "scoped_mock_clock_override.h", |
| "scoped_mock_time_message_loop_task_runner.cc", |
| "scoped_mock_time_message_loop_task_runner.h", |
| "scoped_os_info_override_win.cc", |
| "scoped_os_info_override_win.h", |
| "scoped_path_override.cc", |
| "scoped_path_override.h", |
| "scoped_task_environment.cc", |
| "scoped_task_environment.h", |
| "sequenced_task_runner_test_template.cc", |
| "sequenced_task_runner_test_template.h", |
| "simple_test_clock.cc", |
| "simple_test_clock.h", |
| "simple_test_tick_clock.cc", |
| "simple_test_tick_clock.h", |
| "task_runner_test_template.cc", |
| "task_runner_test_template.h", |
| "test_discardable_memory_allocator.cc", |
| "test_discardable_memory_allocator.h", |
| "test_file_util.cc", |
| "test_file_util.h", |
| "test_file_util_android.cc", |
| "test_file_util_linux.cc", |
| "test_file_util_mac.cc", |
| "test_file_util_win.cc", |
| "test_io_thread.cc", |
| "test_io_thread.h", |
| "test_listener_ios.h", |
| "test_listener_ios.mm", |
| "test_message_loop.cc", |
| "test_message_loop.h", |
| "test_mock_time_task_runner.cc", |
| "test_mock_time_task_runner.h", |
| "test_pending_task.cc", |
| "test_pending_task.h", |
| "test_reg_util_win.cc", |
| "test_reg_util_win.h", |
| "test_shared_memory_util.cc", |
| "test_shared_memory_util.h", |
| "test_shortcut_win.cc", |
| "test_shortcut_win.h", |
| "test_simple_task_runner.cc", |
| "test_simple_task_runner.h", |
| "test_suite.cc", |
| "test_suite.h", |
| "test_support_android.cc", |
| "test_support_android.h", |
| "test_support_ios.h", |
| "test_support_ios.mm", |
| "thread_test_helper.cc", |
| "thread_test_helper.h", |
| "trace_event_analyzer.cc", |
| "trace_event_analyzer.h", |
| "trace_to_file.cc", |
| "trace_to_file.h", |
| "values_test_util.cc", |
| "values_test_util.h", |
| ] |
| |
| if (is_ios && !is_starboard) { |
| sources += [ "launcher/unit_test_launcher_ios.cc" ] |
| } else if (!is_nacl_nonsfi && !is_starboard) { |
| sources += [ |
| "launcher/test_launcher.cc", |
| "launcher/test_launcher.h", |
| "launcher/test_launcher_tracer.cc", |
| "launcher/test_launcher_tracer.h", |
| "launcher/test_results_tracker.cc", |
| "launcher/unit_test_launcher.cc", |
| "multiprocess_test.cc", |
| ] |
| } |
| |
| configs += [ "//build/config:precompiled_headers" ] |
| |
| data = [ |
| # The isolate needs this script for setting up the test. It's not actually |
| # needed to run this target locally. |
| "//testing/test_env.py", |
| ] |
| |
| public_deps = [ |
| ":test_config", |
| "//base", |
| "//base:base_static", |
| "//base:i18n", |
| ] |
| deps = [ |
| "//base/third_party/dynamic_annotations", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//third_party/icu:icuuc", |
| "//third_party/libxml", |
| ] |
| |
| if (is_starboard) { |
| sources -= [ |
| "android/java_handler_thread_helpers.cc", |
| "android/java_handler_thread_helpers.h", |
| "android/url_utils.cc", |
| "android/url_utils.h", |
| "gtest_xml_unittest_result_printer.cc", |
| "gtest_xml_unittest_result_printer.h", |
| "gtest_xml_util.cc", |
| "gtest_xml_util.h", |
| "ios/wait_util.h", |
| "ios/wait_util.mm", |
| "launcher/test_result.cc", |
| "launcher/test_result.h", |
| "launcher/test_results_tracker.h", |
| "launcher/unit_test_launcher.h", |
| "metrics/histogram_enum_reader.cc", |
| "metrics/histogram_enum_reader.h", |
| "mock_chrome_application_mac.h", |
| "mock_chrome_application_mac.mm", |
| "mock_entropy_provider.cc", |
| "mock_entropy_provider.h", |
| "move_only_int.h", |
| "multiprocess_test.h", |
| "multiprocess_test_android.cc", |
| "perf_log.cc", |
| "perf_log.h", |
| "perf_test_suite.cc", |
| "perf_test_suite.h", |
| "perf_time_logger.cc", |
| "perf_time_logger.h", |
| "scoped_command_line.cc", |
| "scoped_command_line.h", |
| "scoped_environment_variable_override.cc", |
| "scoped_environment_variable_override.h", |
| "scoped_os_info_override_win.cc", |
| "scoped_os_info_override_win.h", |
| "scoped_path_override.cc", |
| "scoped_path_override.h", |
| "test_discardable_memory_allocator.cc", |
| "test_discardable_memory_allocator.h", |
| "test_file_util.cc", |
| "test_file_util.h", |
| "test_file_util_android.cc", |
| "test_file_util_linux.cc", |
| "test_file_util_mac.cc", |
| "test_file_util_win.cc", |
| "test_listener_ios.h", |
| "test_listener_ios.mm", |
| "test_message_loop.cc", |
| "test_message_loop.h", |
| "test_reg_util_win.cc", |
| "test_reg_util_win.h", |
| "test_shared_memory_util.cc", |
| "test_shared_memory_util.h", |
| "test_shortcut_win.cc", |
| "test_shortcut_win.h", |
| "test_support_android.cc", |
| "test_support_android.h", |
| "test_support_ios.h", |
| "test_support_ios.mm", |
| "thread_test_helper.cc", |
| "thread_test_helper.h", |
| ] |
| sources += [ |
| "time_helpers.cc", |
| "time_helpers.h", |
| ] |
| deps += [ "//third_party/libxml:libxml_utils" ] |
| } |
| |
| if ((is_posix || is_fuchsia) && !is_starboard) { |
| sources += [ |
| "scoped_locale.cc", |
| "scoped_locale.h", |
| "test_file_util_posix.cc", |
| ] |
| } |
| |
| if (is_fuchsia) { |
| deps += [ "//third_party/fuchsia-sdk:zx" ] |
| } |
| |
| if (is_linux && !is_starboard) { |
| public_deps += [ ":fontconfig_util_linux" ] |
| data_deps = [ |
| "//third_party/test_fonts", |
| ] |
| if (current_toolchain == host_toolchain) { |
| data_deps += [ ":do_generate_fontconfig_caches" ] |
| } |
| } |
| |
| if (is_ios) { |
| set_sources_assignment_filter([]) |
| sources += [ "test_file_util_mac.cc" ] |
| set_sources_assignment_filter(sources_assignment_filter) |
| } |
| |
| if (is_mac && !is_starboard) { |
| libs = [ "AppKit.framework" ] |
| } |
| |
| if (is_android && !is_starboard) { |
| set_sources_assignment_filter([]) |
| sources += [ "test_file_util_linux.cc" ] |
| set_sources_assignment_filter(sources_assignment_filter) |
| deps += [ |
| ":base_unittests_jni_headers", |
| ":test_support_jni_headers", |
| ] |
| public_deps += [ ":test_support_java" ] |
| } |
| |
| if (is_nacl_nonsfi && !is_starboard) { |
| sources += [ |
| "launcher/test_launcher.h", |
| "launcher/test_result.h", |
| "launcher/unit_test_launcher.h", |
| "launcher/unit_test_launcher_nacl_nonsfi.cc", |
| ] |
| sources -= [ |
| "gtest_xml_util.cc", |
| "gtest_xml_util.h", |
| "icu_test_util.cc", |
| "icu_test_util.h", |
| "metrics/histogram_enum_reader.cc", |
| "metrics/histogram_enum_reader.h", |
| "perf_test_suite.cc", |
| "perf_test_suite.h", |
| "scoped_path_override.cc", |
| "scoped_path_override.h", |
| "test_discardable_memory_allocator.cc", |
| "test_discardable_memory_allocator.h", |
| "test_file_util.cc", |
| "test_file_util.h", |
| "test_file_util_posix.cc", |
| "test_suite.cc", |
| "test_suite.h", |
| "trace_to_file.cc", |
| "trace_to_file.h", |
| ] |
| public_deps -= [ "//base:i18n" ] |
| deps -= [ |
| "//third_party/icu:icuuc", |
| "//third_party/libxml", |
| ] |
| } |
| } |
| |
| config("perf_test_config") { |
| defines = [ "PERF_TEST" ] |
| } |
| |
| # This is a source set instead of a static library because it seems like some |
| # linkers get confused when "main" is in a static library, and if you link to |
| # this, you always want the object file anyway. |
| source_set("test_support_perf") { |
| testonly = true |
| sources = [ |
| "run_all_perftests.cc", |
| ] |
| deps = [ |
| ":test_support", |
| "//base", |
| "//testing/gtest", |
| ] |
| |
| public_configs = [ ":perf_test_config" ] |
| } |
| |
| if (!is_starboard) { |
| static_library("test_launcher_nacl_nonsfi") { |
| testonly = true |
| sources = [ |
| "launcher/test_launcher_nacl_nonsfi.cc", |
| "launcher/test_launcher_nacl_nonsfi.h", |
| ] |
| deps = [ |
| ":test_support", |
| ] |
| } |
| } |
| |
| # TODO: b/315170518 - Revert to static library after fixing |
| # symbol visibility issues for windows based modular platform builds. |
| source_set("run_all_unittests") { |
| testonly = true |
| sources = [ |
| "run_all_unittests.cc", |
| ] |
| deps = [ |
| ":test_support", |
| ] |
| } |
| |
| if (!is_starboard && !is_win) { |
| # These sources are linked into both the base_unittests binary and the test |
| # shared library target below. |
| source_set("native_library_test_utils") { |
| testonly = true |
| sources = [ |
| "native_library_test_utils.cc", |
| "native_library_test_utils.h", |
| ] |
| } |
| |
| # This shared library is dynamically loaded by NativeLibrary unittests. |
| shared_library("test_shared_library") { |
| testonly = true |
| sources = [ |
| "test_shared_library.cc", |
| ] |
| |
| deps = [ |
| ":native_library_test_utils", |
| ] |
| } |
| } |
| |
| if (!is_starboard) { |
| static_library("run_all_base_unittests") { |
| # Only targets in base should depend on this, targets outside base |
| # should depend on run_all_unittests above. |
| visibility = [ "//base/*" ] |
| testonly = true |
| sources = [ |
| "run_all_base_unittests.cc", |
| ] |
| deps = [ |
| ":test_support", |
| ] |
| } |
| } |
| |
| if (is_linux && !is_starboard) { |
| source_set("fontconfig_util_linux") { |
| sources = [ |
| "fontconfig_util_linux.cc", |
| "fontconfig_util_linux.h", |
| ] |
| deps = [ |
| "//base", |
| "//third_party/fontconfig", |
| ] |
| } |
| |
| if (current_toolchain == host_toolchain) { |
| executable("generate_fontconfig_caches") { |
| testonly = true |
| sources = [ |
| "generate_fontconfig_caches.cc", |
| ] |
| deps = [ |
| ":fontconfig_util_linux", |
| "//base", |
| ] |
| } |
| |
| compiled_action("do_generate_fontconfig_caches") { |
| testonly = true |
| tool = ":generate_fontconfig_caches" |
| data_deps = [ |
| "//third_party/test_fonts", |
| ] |
| args = [] |
| outputs = [ |
| "$root_out_dir/fontconfig_caches/df1acc8c-39d5-4a8b-8507-b1a7396ac3ac-le64.cache-7", |
| "$root_out_dir/test_fonts/.uuid", |
| ] |
| } |
| } |
| |
| shared_library("malloc_wrapper") { |
| testonly = true |
| sources = [ |
| "malloc_wrapper.cc", |
| ] |
| deps = [ |
| "//base", |
| ] |
| } |
| } |
| |
| if (is_android && !is_starboard) { |
| generate_jni("base_unittests_jni_headers") { |
| sources = [ |
| "android/java/src/org/chromium/base/ContentUriTestUtils.java", |
| "android/java/src/org/chromium/base/JavaHandlerThreadHelpers.java", |
| ] |
| jni_package = "base" |
| } |
| |
| generate_jni("test_support_jni_headers") { |
| sources = [ |
| "android/java/src/org/chromium/base/MainReturnCodeResult.java", |
| "android/java/src/org/chromium/base/MultiprocessTestClientLauncher.java", |
| "android/javatests/src/org/chromium/base/test/util/UrlUtils.java", |
| ] |
| jni_package = "base" |
| } |
| |
| android_library("test_support_java") { |
| testonly = true |
| deps = [ |
| "//base:base_java", |
| "//base:base_java_test_support", |
| "//testing/android/native_test:native_main_runner_java", |
| "//third_party/android_deps:android_support_annotations_java", |
| "//third_party/jsr-305:jsr_305_javalib", |
| ] |
| srcjar_deps = [ ":test_support_java_aidl" ] |
| java_files = [ |
| "android/java/src/org/chromium/base/MainReturnCodeResult.java", |
| "android/java/src/org/chromium/base/MultiprocessTestClientLauncher.java", |
| "android/java/src/org/chromium/base/MultiprocessTestClientService.java", |
| "android/java/src/org/chromium/base/MultiprocessTestClientService0.java", |
| "android/java/src/org/chromium/base/MultiprocessTestClientService1.java", |
| "android/java/src/org/chromium/base/MultiprocessTestClientService2.java", |
| "android/java/src/org/chromium/base/MultiprocessTestClientService3.java", |
| "android/java/src/org/chromium/base/MultiprocessTestClientService4.java", |
| "android/java/src/org/chromium/base/MultiprocessTestClientServiceDelegate.java", |
| ] |
| } |
| |
| android_aidl("test_support_java_aidl") { |
| testonly = true |
| import_include = [ |
| "android/java/src", |
| "//base/android/java/src", |
| ] |
| sources = [ |
| "android/java/src/org/chromium/base/ITestCallback.aidl", |
| "android/java/src/org/chromium/base/ITestController.aidl", |
| ] |
| } |
| } |
| |
| if (!is_starboard) { |
| # Trivial executable which outputs space-delimited argv to stdout, |
| # used for testing. |
| executable("test_child_process") { |
| testonly = true |
| sources = [ |
| "test_child_process.cc", |
| ] |
| } |
| } |