123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- # 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/ui.gni")
- import("//testing/libfuzzer/fuzzer_test.gni")
- import("//testing/test.gni")
- import("./features.gni")
- import("./tast_control.gni")
- if (is_chromeos_device) {
- import("//build/config/chromeos/rules.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("features") {
- header = "features.h"
- flags = [ "USE_REAL_CHROMEOS_SERVICES=$use_real_chromeos_services" ]
- }
- component("chromeos") {
- deps = [ "//chromeos/dbus/constants" ]
- sources = []
- if (is_chromeos_ash) {
- configs += [ ":chromeos_implementation" ]
- if (is_chromeos_device) {
- configs += [ "//build/config/compiler:use_orderfile_for_hugepage" ]
- }
- deps += [
- ":chromeos_export",
- "//base",
- ]
- sources += [
- "hugepage_text/hugepage_text.cc",
- "hugepage_text/hugepage_text.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 = [
- "//testing/gmock",
- "//testing/gtest",
- ]
- if (is_chromeos_ash) {
- deps += [
- "//chromeos/ash/components/dbus:test_support",
- "//chromeos/ash/components/network:test_support",
- "//chromeos/login/login_state:test_support",
- "//google_apis",
- "//net:test_support",
- "//services/network:test_support",
- ]
- }
- }
- 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" ]
- deps = [
- "//base/test:test_support",
- "//build:chromeos_buildflags",
- "//mojo/core/embedder",
- ]
- sources = [ "test/run_all_unittests.cc" ]
- # Tests that common to Ash and Lacros.
- deps += [
- "//chromeos/constants:unit_tests",
- "//chromeos/system:unit_tests",
- ]
- if (is_chromeos_ash) {
- deps += [
- ":test_support",
- "//chromeos/ash/components:unit_tests",
- "//chromeos/ash/components/dbus:test_support",
- "//chromeos/ash/components/network:test_support",
- "//chromeos/ash/services:unit_tests",
- "//chromeos/crosapi/cpp:unit_tests",
- "//chromeos/crosapi/mojom:unit_tests",
- "//chromeos/dbus:unit_tests",
- "//chromeos/language/language_packs:unit_tests",
- "//chromeos/login/login_state:unit_tests",
- "//chromeos/printing:unit_tests",
- "//chromeos/process_proxy:unit_tests",
- "//chromeos/services:unit_tests",
- "//chromeos/startup:unit_tests",
- "//chromeos/ui/base:unit_tests",
- "//chromeos/utils:unit_tests",
- "//chromeos/version:unit_tests",
- "//components/onc",
- "//components/prefs:test_support",
- "//components/proxy_config",
- "//crypto",
- "//dbus:test_support",
- "//google_apis",
- "//net",
- "//net:test_support",
- "//services/network/public/cpp",
- "//url",
- ]
- }
- 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/+/main/docs/chromeos_build_instructions.md
- # https://chromium.googlesource.com/chromiumos/docs/+/main/simple_chrome_workflow.md
- if (is_chromeos_ash && is_chromeos_device) {
- # 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 only targets that currently use cros_test_wrapper are Telemetry-based
- # tests, which have their own crash/symbolization handling code. So, strip
- # Chrome before deploying in order to save disk space and avoid potential
- # memory issues on 32-bit devices.
- strip_chrome = true
- }
- tast_test("chrome_login_tast_tests") {
- tast_tests = [
- "ui.ChromeCrashLoggedIn",
- "ui.ChromeCrashNotLoggedIn",
- ]
- }
- # Used to report the size of various partitions. For more details, see:
- # https://source.chromium.org/search?q=report_disk_usage.go
- tast_test("disk_usage_tast_test") {
- tast_tests = [ "platform.ReportDiskUsage" ]
- }
- # 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 to the
- # tast_disabled_tests_from_chrome_all list in "tast_control.gni" and cite
- # a bug.
- tast_disabled_tests = tast_disabled_tests_from_chrome_all
- }
- tast_test("chrome_all_tast_tests_informational") {
- enable_tast_informational_tests = true
- }
- tast_test("chrome_variations_tast_tests") {
- tast_tests = [ "ui.ChromeVariationsSmoke" ]
- }
- 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/+/main/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/" ]
- }
- }
|