# Copyright 2014 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/buildflag_header.gni")
import("//build/config/chromeos/rules.gni")
import("//build/config/ui.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
import("//third_party/protobuf/proto_library.gni")

assert(is_chromeos, "Non-Chrome-OS builds must not depend on //chromeos")

# Used by targets that compile into the implementation.
config("chromeos_implementation") {
  defines = [ "CHROMEOS_IMPLEMENTATION" ]
}

buildflag_header("chromeos_buildflags") {
  header = "chromeos_buildflags.h"
  flags = [ "IS_CROS_CHROME_SDK=$is_cros_chrome_sdk" ]
}

component("chromeos") {
  configs += [
    ":chromeos_implementation",
    "//build/config/linux/nss:system_nss_no_ssl_config",
    "//build/config/compiler:use_orderfile_for_hugepage",
  ]
  public_deps = [
    "//chromeos/constants",
  ]
  deps = [
    ":chromeos_export",
    "//base",
    "//base:i18n",
    "//chromeos/dbus",
    "//chromeos/dbus/constants",
    "//components/policy/proto",
    "//google_apis",
    "//services/network/public/cpp:cpp",
    "//third_party/protobuf:protobuf_lite",
  ]
  sources = [
    "hugepage_text/hugepage_text.cc",
    "hugepage_text/hugepage_text.h",
    "memory/kstaled.cc",
    "memory/kstaled.h",
    "memory/memory.cc",
    "memory/memory.h",
    "memory/swap_configuration.cc",
    "memory/swap_configuration.h",
    "policy/weekly_time/time_utils.cc",
    "policy/weekly_time/time_utils.h",
    "policy/weekly_time/weekly_time.cc",
    "policy/weekly_time/weekly_time.h",
    "policy/weekly_time/weekly_time_interval.cc",
    "policy/weekly_time/weekly_time_interval.h",
    "printing/epson_driver_matching.cc",
    "printing/epson_driver_matching.h",
    "printing/ppd_cache.cc",
    "printing/ppd_cache.h",
    "printing/ppd_line_reader.cc",
    "printing/ppd_line_reader.h",
    "printing/ppd_provider.cc",
    "printing/ppd_provider.h",
    "printing/printer_configuration.cc",
    "printing/printer_configuration.h",
    "printing/printer_translator.cc",
    "printing/printer_translator.h",
    "printing/uri_components.cc",
    "printing/uri_components.h",
    "printing/usb_printer_id.cc",
    "printing/usb_printer_id.h",
    "process_proxy/process_output_watcher.cc",
    "process_proxy/process_output_watcher.h",
    "process_proxy/process_proxy.cc",
    "process_proxy/process_proxy.h",
    "process_proxy/process_proxy_registry.cc",
    "process_proxy/process_proxy_registry.h",
  ]
  if (current_cpu == "arm" || current_cpu == "x86") {
    defines = [ "BINDER_IPC_32BIT" ]
  }
}

source_set("chromeos_export") {
  deps = [
    "//base",
  ]
  sources = [
    "chromeos_export.h",
  ]
}

# This must be a static library instead of a source set because some of the
# files pull in things with dependencies that aren't linked in all cases.
#
# TODO this should probably be changed such that it links in all cases and
# can be converted to a source set.
static_library("test_support") {
  testonly = true
  public_deps = [
    ":test_support_source_set",
  ]
}

source_set("test_support_source_set") {
  testonly = true
  public_deps = [
    ":chromeos",
    ":test_utils",
  ]
  deps = [
    "//chromeos/attestation:test_support",
    "//chromeos/cryptohome:test_support",
    "//chromeos/dbus:test_support",
    "//chromeos/disks:test_support",
    "//chromeos/login/auth:test_support",
    "//chromeos/login/login_state:test_support",
    "//chromeos/network:test_support",
    "//chromeos/tpm:test_support",
    "//google_apis",
    "//net:test_support",
    "//services/network:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
}

source_set("test_utils") {
  deps = [
    "//base",
  ]
  sources = [
    "test/chromeos_test_utils.cc",
    "test/chromeos_test_utils.h",
  ]
}

test("chromeos_unittests") {
  configs += [
    "//build/config/linux/dbus",
    "//build/config/linux/nss:system_nss_no_ssl_config",
  ]
  deps = [
    ":chromeos_buildflags",
    ":test_support",
    "//base/test:test_support",
    "//chromeos/attestation:unit_tests",
    "//chromeos/audio:unit_tests",
    "//chromeos/cryptohome:unit_tests",
    "//chromeos/dbus:test_support",
    "//chromeos/dbus:unit_tests",
    "//chromeos/dbus/services:unit_tests",
    "//chromeos/disks:unit_tests",
    "//chromeos/geolocation:unit_tests",
    "//chromeos/login/auth:unit_tests",
    "//chromeos/login/login_state:unit_tests",
    "//chromeos/login/session:unit_tests",
    "//chromeos/network:test_support",
    "//chromeos/network:unit_tests",
    "//chromeos/services:unit_tests",
    "//chromeos/settings:unit_tests",
    "//chromeos/system:unit_tests",
    "//chromeos/timezone:unit_tests",
    "//chromeos/tpm:unit_tests",
    "//components/onc",
    "//components/policy:generated",
    "//components/policy/proto",
    "//components/prefs:test_support",
    "//components/proxy_config",
    "//dbus:test_support",
    "//google_apis",
    "//mojo/core/embedder",
    "//net",
    "//net:test_support",
    "//services/network:test_support",
    "//services/network/public/cpp",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/icu",
    "//url",
  ]
  sources = [
    "policy/weekly_time/time_utils_unittest.cc",
    "policy/weekly_time/weekly_time_interval_unittest.cc",
    "policy/weekly_time/weekly_time_unittest.cc",
    "printing/epson_driver_matching_unittest.cc",
    "printing/ppd_cache_unittest.cc",
    "printing/ppd_line_reader_unittest.cc",
    "printing/ppd_provider_unittest.cc",
    "printing/printer_configuration_unittest.cc",
    "printing/printer_translator_unittest.cc",
    "printing/usb_printer_id_unittest.cc",
    "process_proxy/process_output_watcher_unittest.cc",
    "process_proxy/process_proxy_unittest.cc",
    "test/run_all_unittests.cc",
  ]

  data = [
    "test/data/",
  ]
}

# The following definitions only apply when building for a CrOS board (ie: not
# linux-chromeos). See the following for reference:
# https://chromium.googlesource.com/chromium/src/+/master/docs/chromeos_build_instructions.md
# https://chromium.googlesource.com/chromiumos/docs/+/master/simple_chrome_workflow.md
if (is_cros_chrome_sdk) {
  # This builds a tool that prepares a DUT or VM for testing, which can be
  # utilized by wrapping a host-side script test.
  generate_runner_script("cros_test_wrapper") {
    generated_script = "$root_build_dir/bin/cros_test_wrapper"

    # Assume every time we build cros_test_wrapper, we also build chrome and
    # want to deploy it to the DUT.
    deploy_chrome = true
  }

  # The sanity test's actual binary is baked into the OS image. All we need to
  # do is build the test wrapper and build our own browser to push to the DUT
  # before testing it.
  generate_runner_script("cros_browser_sanity_test") {
    testonly = true
    test_exe = "cros_browser_sanity_test"
    generated_script = "$root_build_dir/bin/run_cros_browser_sanity_test"
    runtime_deps_file = "$root_out_dir/cros_browser_sanity_test.runtime_deps"

    data_deps = [
      ":cros_chrome_deploy",
      "//:chromiumos_preflight",  # Builds the browser.
    ]
  }

  tast_test("chrome_login_tast_tests") {
    tast_tests = [
      "ui.ChromeLogin",
      "ui.ChromeCrashLoggedIn",
      "ui.ChromeCrashNotLoggedIn",
    ]
  }

  # Tast test sources live in the Chromium OS repository.
  # To diagnose tast failures or disable tests, see go/tast-failures
  tast_test("chrome_all_tast_tests") {
    # To disable a specific test, add it the following list and cite a bug.
    tast_disabled_tests = [
      # crbug.com/1000351
      "crostini.SanityArtifact",

      # crbug.com/1006681
      "crostini.GPUEnabledDownload",
      "crostini.SanityDownload",
    ]
  }

  tast_test("chrome_all_tast_tests_informational") {
    enable_tast_informational_tests = true
  }

  group("cros_chrome_deploy") {
    # The following run-time dependencies are needed to deploy chrome to a
    # ChromeOS device. See the link for the full list:
    # https://codesearch.chromium.org/chromium/src/third_party/chromite/lib/chrome_util.py?l=341
    # Most of these are copy targets, for which GN doesn't add their outputs
    # as runtime-deps. See the link below for more details:
    # https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/reference.md#actions-and-copies
    data_deps = [
      "//chrome:xdg_mime",
      "//mojo/core:shared_library_arc32",
      "//mojo/core:shared_library_arc64",
    ]

    # TODO(bpastene): Figure out what's generating resources/chromeos/ and
    # declare it as a dep instead of adding the dir directly.
    data = [
      "$root_out_dir/resources/chromeos/",
    ]
  }
}

fuzzer_test("ppd_line_reader_fuzzer") {
  sources = [
    "printing/ppd_line_reader_fuzzer.cc",
  ]
  deps = [
    ":chromeos",
  ]
}
