| # 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/chromeos/ui_mode.gni") |
| 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 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", |
| ] |
| } |
| |
| 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", |
| ] |
| |
| proto_library_deps = [ |
| "//components/policy/proto/fuzzer:chrome_device_policy_full_runtime_proto", |
| "//components/policy/proto/fuzzer:cloud_policy_full_runtime_proto", |
| ] |
| } |
| } |