blob: f2fe945584e142f45fd7c680805febd1e89ef1fe [file] [log] [blame]
# Copyright 2021 The Fuchsia 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/components/fuchsia_component.gni")
# Both the "real" and "test" engines used in fuzzers and fuzzer tests,
# respectively, use the adapter-client code to connect to the fuzz target
# adapter component.
source_set("adapter-client") {
visibility = [ "../*" ]
testonly = true
sources = [
"adapter-client.cc",
"adapter-client.h",
"corpus.cc",
"corpus.h",
]
public_deps = [
"//sdk/lib/fidl/cpp",
"//src/lib/fxl",
"//src/sys/fuzzing/common",
"//src/sys/fuzzing/fidl:fuchsia.fuzzer_hlcpp",
"//zircon/system/ulib/sync",
]
deps = [
"//sdk/lib/syslog/cpp",
"//src/lib/files",
]
}
# This source set is the core of the "real" engine and includes the coverage
# processing and input mutation.
source_set("engine-lib") {
visibility = [ "../*" ]
testonly = true
sources = [
"coverage-data-provider-client.cc",
"coverage-data-provider-client.h",
"coverage-data.cc",
"coverage-data.h",
"dictionary.cc",
"dictionary.h",
"module-pool.cc",
"module-pool.h",
"module-proxy.cc",
"module-proxy.h",
"mutagen.cc",
"mutagen.h",
"process-proxy.cc",
"process-proxy.h",
"runner.cc",
"runner.h",
]
public_deps = [
":adapter-client",
"//sdk/lib/fidl/cpp",
"//sdk/lib/fit",
"//src/lib/fxl",
"//src/sys/fuzzing/common",
"//src/sys/fuzzing/fidl:fuchsia.fuzzer_hlcpp",
"//src/sys/fuzzing/realmfuzzer/target:no_hooks",
"//zircon/system/ulib/sync",
]
deps = [
"//sdk/lib/syslog/cpp",
"//third_party/modp_b64",
"//third_party/re2",
"//zircon/system/ulib/inspector",
]
}
executable("engine-bin") {
output_name = "realmfuzzer_engine"
testonly = true
sources = [ "engine-main.cc" ]
deps = [ ":engine-lib" ]
}
fuchsia_component("engine") {
testonly = true
manifest = "meta/engine.cml"
deps = [ ":engine-bin" ]
}
# Tests and test support.
source_set("testing") {
visibility = [ ":*" ]
testonly = true
sources = [
"process-proxy-test.cc",
"process-proxy-test.h",
"runner-test.cc",
"runner-test.h",
]
public_deps = [
":engine-lib",
"//src/sys/fuzzing/common:runner-unittests",
"//src/sys/fuzzing/common/testing",
"//src/sys/fuzzing/fidl:fuchsia.fuzzer_hlcpp",
"//src/sys/fuzzing/realmfuzzer/target:no_hooks",
"//src/sys/fuzzing/realmfuzzer/testing",
"//third_party/googletest:gtest",
]
}
source_set("unittests") {
visibility = [ "../*" ]
testonly = true
sources = [
"adapter-client-unittest.cc",
"corpus-unittest.cc",
"coverage-data-provider-client-unittest.cc",
"coverage-data-unittest.cc",
"dictionary-unittest.cc",
"module-pool-unittest.cc",
"module-proxy-unittest.cc",
"mutagen-unittest.cc",
"process-proxy-unittest.cc",
"runner-unittest.cc",
]
deps = [
":testing",
"//src/lib/files",
"//src/sys/fuzzing/common:runner-unittests",
"//src/sys/fuzzing/realmfuzzer/testing:test-target",
]
}
# These unit tests emit fatal logs.
source_set("fatal-unittests") {
visibility = [ "../*" ]
testonly = true
sources = [
"process-proxy-fatal-unittest.cc",
"runner-fatal-unittest.cc",
]
deps = [
":testing",
"//src/sys/fuzzing/common:runner-fatal-unittests",
"//src/sys/fuzzing/realmfuzzer/testing:test-target",
]
}