# Copyright 2024 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/sanitizers/sanitizers.gni") import("//testing/libfuzzer/fuzzer_test.gni") import("//third_party/libprotobuf-mutator/fuzzable_proto_library.gni") assert(is_chromeos) if (use_fuzzing_engine_with_lpm) { fuzzer_test("policy_fuzzer") { sources = [ "policy_fuzzer.cc" ] deps = [ ":policy_fuzzer_proto", ":policy_fuzzer_proto_fuzzable", # :policy_fuzzer_proto should be the first dependency to avoid duplicate # symbols when linking. "//base", "//base:i18n", "//base/test:test_support", "//chrome/browser", "//chrome/browser/ash/dbus", "//chrome/browser/ash/policy/core", "//chrome/browser/ash/settings", "//chrome/common:constants", "//chromeos/ash/components/attestation", "//chromeos/ash/components/install_attributes", "//components/exo/wayland:ui_controls_protocol_stub", "//components/policy:generated", "//components/policy/core/browser", "//components/policy/core/common", "//components/policy/core/common:common_constants", "//components/prefs", "//third_party/libprotobuf-mutator", "//ui/base", ] data_deps = [ # .pak files loaded by the fuzzer. "//components:components_tests_pak", "//ui/resources:ui_test_pak_data", ] # TODO(crbug.com/505034799): Migrate to FUZZ_TEST. is_fuzztest_compatible = false } fuzzable_proto_library("policy_fuzzer_proto") { sources = [ "policy_fuzzer.proto" ] import_dirs = [ # Add the fuzzable (full-protobuf) .pb.h files into include directories. # This item should come first, so that regular (lite-protobuf) .pb.h # analogs don't get included, as this would cause compilation issues due # to missing symbols. "//components/policy/proto/fuzzer", # For imports of proto files from the source tree. "//components/policy/proto", # For imports of autogenerated proto files. "$root_gen_dir/components/policy/proto", ] deps = [ "//components/policy/proto/fuzzer:chrome_device_policy_full_runtime_proto", "//components/policy/proto/fuzzer:cloud_policy_full_runtime_proto", ] } }