# Copyright 2017 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/config/jumbo.gni")
import("//third_party/blink/renderer/platform/platform.gni")
import("//third_party/protobuf/proto_library.gni")
import("//testing/libfuzzer/fuzzer_test.gni")

blink_platform_sources("scheduler") {
  sources = [
    "common/background_scheduler.cc",
    "common/cancelable_closure_holder.cc",
    "common/cancelable_closure_holder.h",
    "common/features.cc",
    "common/features.h",
    "common/frame_or_worker_scheduler.cc",
    "common/idle_canceled_delayed_task_sweeper.cc",
    "common/idle_canceled_delayed_task_sweeper.h",
    "common/idle_helper.cc",
    "common/idle_helper.h",
    "common/metrics_helper.cc",
    "common/metrics_helper.h",
    "common/pollable_thread_safe_flag.cc",
    "common/pollable_thread_safe_flag.h",
    "common/process_state.cc",
    "common/process_state.h",
    "common/scheduler_helper.cc",
    "common/scheduler_helper.h",
    "common/scheduling_lifecycle_state.cc",
    "common/simple_thread_scheduler.cc",
    "common/simple_thread_scheduler.h",
    "common/single_thread_idle_task_runner.cc",
    "common/thread.cc",
    "common/thread_cpu_throttler.cc",
    "common/thread_load_tracker.cc",
    "common/thread_load_tracker.h",
    "common/thread_scheduler.cc",
    "common/thread_scheduler_impl.cc",
    "common/thread_scheduler_impl.h",
    "common/throttling/budget_pool.cc",
    "common/throttling/budget_pool.h",
    "common/throttling/cpu_time_budget_pool.cc",
    "common/throttling/cpu_time_budget_pool.h",
    "common/throttling/task_queue_throttler.cc",
    "common/throttling/task_queue_throttler.h",
    "common/throttling/throttled_time_domain.cc",
    "common/throttling/throttled_time_domain.h",
    "common/throttling/wake_up_budget_pool.cc",
    "common/throttling/wake_up_budget_pool.h",
    "common/tracing_helper.cc",
    "common/tracing_helper.h",
    "common/unprioritized_resource_loading_task_runner_handle.cc",
    "common/unprioritized_resource_loading_task_runner_handle.h",
    "common/web_resource_loading_task_runner_handle.cc",
    "common/web_thread_scheduler.cc",
    "main_thread/auto_advancing_virtual_time_domain.cc",
    "main_thread/auto_advancing_virtual_time_domain.h",
    "main_thread/deadline_task_runner.cc",
    "main_thread/deadline_task_runner.h",
    "main_thread/frame_origin_type.cc",
    "main_thread/frame_origin_type.h",
    "main_thread/frame_scheduler_impl.cc",
    "main_thread/frame_scheduler_impl.h",
    "main_thread/frame_status.cc",
    "main_thread/frame_task_queue_controller.cc",
    "main_thread/frame_task_queue_controller.h",
    "main_thread/idle_time_estimator.cc",
    "main_thread/idle_time_estimator.h",
    "main_thread/main_thread.cc",
    "main_thread/main_thread.h",
    "main_thread/main_thread_metrics_helper.cc",
    "main_thread/main_thread_metrics_helper.h",
    "main_thread/main_thread_scheduler_helper.cc",
    "main_thread/main_thread_scheduler_helper.h",
    "main_thread/main_thread_scheduler_impl.cc",
    "main_thread/main_thread_scheduler_impl.h",
    "main_thread/main_thread_task_queue.cc",
    "main_thread/main_thread_task_queue.h",
    "main_thread/page_scheduler_impl.cc",
    "main_thread/page_scheduler_impl.h",
    "main_thread/page_visibility_state.cc",
    "main_thread/page_visibility_state.h",
    "main_thread/prioritize_compositing_after_input_experiment.cc",
    "main_thread/prioritize_compositing_after_input_experiment.h",
    "main_thread/queueing_time_estimator.cc",
    "main_thread/queueing_time_estimator.h",
    "main_thread/render_widget_signals.cc",
    "main_thread/render_widget_signals.h",
    "main_thread/resource_loading_task_runner_handle_impl.cc",
    "main_thread/resource_loading_task_runner_handle_impl.h",
    "main_thread/task_cost_estimator.cc",
    "main_thread/task_cost_estimator.h",
    "main_thread/task_type_names.cc",
    "main_thread/task_type_names.h",
    "main_thread/use_case.h",
    "main_thread/user_model.cc",
    "main_thread/user_model.h",
    "main_thread/web_render_widget_scheduling_state.cc",
    "main_thread/web_scoped_virtual_time_pauser.cc",
    "public/aggregated_metric_reporter.h",
    "public/background_scheduler.h",
    "public/frame_or_worker_scheduler.h",
    "public/frame_scheduler.h",
    "public/frame_status.h",
    "public/page_lifecycle_state.h",
    "public/page_scheduler.h",
    "public/scheduling_lifecycle_state.h",
    "public/thread.h",
    "public/thread_cpu_throttler.h",
    "public/thread_scheduler.h",
    "public/worker_scheduler.h",
    "worker/compositor_metrics_helper.cc",
    "worker/compositor_metrics_helper.h",
    "worker/compositor_thread.cc",
    "worker/compositor_thread.h",
    "worker/compositor_thread_scheduler.cc",
    "worker/compositor_thread_scheduler.h",
    "worker/non_main_thread_scheduler_helper.cc",
    "worker/non_main_thread_scheduler_helper.h",
    "worker/non_main_thread_scheduler_impl.cc",
    "worker/non_main_thread_scheduler_impl.h",
    "worker/non_main_thread_task_queue.cc",
    "worker/non_main_thread_task_queue.h",
    "worker/worker_metrics_helper.cc",
    "worker/worker_metrics_helper.h",
    "worker/worker_scheduler.cc",
    "worker/worker_scheduler_proxy.cc",
    "worker/worker_scheduler_proxy.h",
    "worker/worker_thread.cc",
    "worker/worker_thread.h",
    "worker/worker_thread_scheduler.cc",
    "worker/worker_thread_scheduler.h",
  ]

  deps = [
    "//base",
    "//cc",
    "//components/scheduling_metrics",
    "//device/base/synchronization",
    "//services/metrics/public/cpp:ukm_builders",
    "//services/metrics/public/mojom",
    "//third_party/blink/renderer/platform:make_platform_generated",
    "//third_party/blink/renderer/platform/wtf",
  ]
}

jumbo_source_set("test_support") {
  testonly = true

  sources = [
    "test/fake_frame_scheduler.h",
    "test/fake_page_scheduler.h",
    "test/fake_renderer_scheduler.cc",
    "test/fake_task_runner.cc",
    "test/fake_task_runner.h",
    "test/renderer_scheduler_test_support.cc",
    "test/test_queueing_time_estimator_client.cc",
    "test/test_queueing_time_estimator_client.h",
  ]

  deps = [
    "//base",
    "//base/test:test_support",
    "//mojo/public/cpp/bindings",
    "//third_party/blink/public/mojom:mojom_platform_blink_headers",
  ]

  configs += [ "//third_party/blink/renderer/platform:blink_platform_config" ]
}

jumbo_source_set("unit_tests") {
  testonly = true

  sources = [
    "common/background_scheduler_unittest.cc",
    "common/idle_canceled_delayed_task_sweeper_unittest.cc",
    "common/idle_helper_unittest.cc",
    "common/metrics_helper_unittest.cc",
    "common/scheduler_helper_unittest.cc",
    "common/thread_load_tracker_unittest.cc",
    "common/throttling/budget_pool_unittest.cc",
    "common/throttling/task_queue_throttler_unittest.cc",
    "common/tracing_helper_unittest.cc",
    "main_thread/auto_advancing_virtual_time_domain_unittest.cc",
    "main_thread/deadline_task_runner_unittest.cc",
    "main_thread/frame_scheduler_impl_unittest.cc",
    "main_thread/frame_task_queue_controller_unittest.cc",
    "main_thread/idle_time_estimator_unittest.cc",
    "main_thread/main_thread_metrics_helper_unittest.cc",
    "main_thread/main_thread_scheduler_impl_unittest.cc",
    "main_thread/main_thread_unittest.cc",
    "main_thread/page_scheduler_impl_unittest.cc",
    "main_thread/queueing_time_estimator_unittest.cc",
    "main_thread/render_widget_signals_unittest.cc",
    "main_thread/task_cost_estimator_unittest.cc",
    "main_thread/user_model_unittest.cc",
    "worker/compositor_thread_scheduler_unittest.cc",
    "worker/worker_scheduler_proxy_unittest.cc",
    "worker/worker_scheduler_unittest.cc",
    "worker/worker_thread_scheduler_unittest.cc",
    "worker/worker_thread_unittest.cc",
  ]

  deps = [
    "//base",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/blink/public:test_support",
  ]

  configs += [ "//third_party/blink/renderer/platform:blink_platform_config" ]
}

source_set("perf_tests") {
  testonly = true

  sources = [
    "test/queueing_time_estimator_perf_test.cc",
  ]

  deps = [
    "//base",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//testing/perf",
    "//third_party/blink/public:test_support",
  ]

  configs += [ "//third_party/blink/renderer/platform:blink_platform_config" ]
}

source_set("scheduler_fuzzer_tests") {
  testonly = true

  sources = []
  deps = [
    "//base",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/blink/renderer/platform/scheduler:test_support",
  ]

  if (is_linux) {
    sources += [
      "test/fuzzer/sequence_manager_fuzzer_processor.cc",
      "test/fuzzer/sequence_manager_fuzzer_processor.h",
      "test/fuzzer/sequence_manager_fuzzer_processor_unittest.cc",
      "test/fuzzer/simple_thread_impl.cc",
      "test/fuzzer/simple_thread_impl.h",
      "test/fuzzer/task_queue_with_voters.h",
      "test/fuzzer/thread_manager.cc",
      "test/fuzzer/thread_manager.h",
      "test/fuzzer/thread_pool_manager.cc",
      "test/fuzzer/thread_pool_manager.h",
    ]

    deps += [
      ":sequence_manager_test_description_proto",
      "//third_party/libprotobuf-mutator",
    ]
  }

  configs += [ "//third_party/blink/renderer/platform:blink_platform_config" ]
}

fuzzer_test("sequence_manager_fuzzer") {
  sources = [
    "test/fuzzer/sequence_manager_fuzzer.cc",
    "test/fuzzer/sequence_manager_fuzzer_processor.cc",
    "test/fuzzer/sequence_manager_fuzzer_processor.h",
    "test/fuzzer/simple_thread_impl.cc",
    "test/fuzzer/simple_thread_impl.h",
    "test/fuzzer/task_queue_with_voters.h",
    "test/fuzzer/thread_manager.cc",
    "test/fuzzer/thread_manager.h",
    "test/fuzzer/thread_pool_manager.cc",
    "test/fuzzer/thread_pool_manager.h",
  ]

  deps = [
    ":sequence_manager_test_description_proto",
    "//third_party/blink/renderer/platform:blink_fuzzer_test_support",
    "//third_party/blink/renderer/platform:test_support",
    "//third_party/libprotobuf-mutator",
  ]
}

proto_library("sequence_manager_test_description_proto") {
  sources = [
    "test/fuzzer/proto/sequence_manager_test_description.proto",
  ]
}
