chromium/chromeos/ash/components/system/BUILD.gn

# Copyright 2022 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/chromeos/ui_mode.gni")
import("//testing/libfuzzer/fuzzer_test.gni")

assert(is_chromeos_ash,
       "Non Chrome OS or Lacros builds must not depend on //chromeos/ash")

component("system") {
  output_name = "chromeos_ash_components_system"
  defines = [ "IS_CHROMEOS_ASH_COMPONENTS_SYSTEM_IMPL" ]

  public_deps = [ "//base" ]
  deps = [ "//ash/constants" ]
  sources = [
    "factory_ping_embargo_check.cc",
    "factory_ping_embargo_check.h",
    "kiosk_oem_manifest_parser.cc",
    "kiosk_oem_manifest_parser.h",

    # Used when running mash, both on Linux and on real devices.
    "fake_statistics_provider.cc",
    "fake_statistics_provider.h",
    "name_value_pairs_parser.cc",
    "name_value_pairs_parser.h",
    "scheduler_configuration_manager_base.cc",
    "scheduler_configuration_manager_base.h",
    "statistics_provider.cc",
    "statistics_provider.h",
    "statistics_provider_impl.cc",
    "statistics_provider_impl.h",
  ]
}

source_set("unit_tests") {
  testonly = true
  deps = [
    ":system",
    "//ash/constants",
    "//base/test:test_support",
    "//chromeos:test_utils",
    "//testing/gtest",
  ]
  sources = [
    "factory_ping_embargo_check_unittest.cc",
    "kiosk_oem_manifest_parser_unittest.cc",
    "name_value_pairs_parser_unittest.cc",
    "statistics_provider_impl_unittest.cc",
  ]
}

fuzzer_test("name_value_pairs_parser_fuzzer") {
  sources = [ "name_value_pairs_parser_fuzzer.cc" ]
  deps = [ ":system" ]
}