blob: 2f5eeb5a9a3e1e13e56719fc6623035144a476fb [file] [log] [blame]
# Copyright 2016 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/config.gni")
import("//build/fuzzing/fuzzer.gni")
import("//build/package.gni")
import("//build/test.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")
declare_args() {
# Enables the tracing feature of mdns, which can be turned on using
# "mdns-util verbose".
enable_mdns_trace = false
}
group("service") {
testonly = true
deps = [
":bin",
":mdns",
":mdns_config",
":mdns_fuzzers",
":mdns_test",
":mdns_tests",
":packet_reader_fuzzer",
":source_set",
]
}
executable("bin") {
output_name = "mdns"
sources = [ "main.cc" ]
deps = [
":source_set",
"//zircon/public/lib/async-loop-cpp",
"//zircon/public/lib/async-loop-default",
]
}
source_set("source_set") {
sources = [
"address_prober.cc",
"address_prober.h",
"address_responder.cc",
"address_responder.h",
"config.cc",
"config.h",
"dns_formatting.cc",
"dns_formatting.h",
"dns_message.cc",
"dns_message.h",
"dns_reading.cc",
"dns_reading.h",
"dns_writing.cc",
"dns_writing.h",
"host_name_resolver.cc",
"host_name_resolver.h",
"instance_prober.cc",
"instance_prober.h",
"instance_requestor.cc",
"instance_requestor.h",
"instance_responder.cc",
"instance_responder.h",
"mdns.cc",
"mdns.h",
"mdns_addresses.cc",
"mdns_addresses.h",
"mdns_agent.h",
"mdns_fidl_util.cc",
"mdns_fidl_util.h",
"mdns_interface_transceiver.cc",
"mdns_interface_transceiver.h",
"mdns_interface_transceiver_v4.cc",
"mdns_interface_transceiver_v4.h",
"mdns_interface_transceiver_v6.cc",
"mdns_interface_transceiver_v6.h",
"mdns_names.cc",
"mdns_names.h",
"mdns_service_impl.cc",
"mdns_service_impl.h",
"mdns_transceiver.cc",
"mdns_transceiver.h",
"packet_reader.cc",
"packet_reader.h",
"packet_writer.cc",
"packet_writer.h",
"prober.cc",
"prober.h",
"reply_address.cc",
"reply_address.h",
"resource_renewer.cc",
"resource_renewer.h",
]
public_deps = [
"//garnet/public/lib/fostr",
"//garnet/public/lib/json",
"//sdk/fidl/fuchsia.net.mdns",
"//sdk/fidl/fuchsia.sys",
"//sdk/lib/sys/cpp",
"//src/lib/fsl",
"//src/lib/inet",
"//src/lib/json_parser",
"//src/lib/syslog/cpp",
"//third_party/rapidjson",
"//zircon/public/lib/fit",
"//zircon/system/fidl/fuchsia-device",
"//zircon/system/fidl/fuchsia-net",
]
if (enable_mdns_trace) {
defines = [ "MDNS_TRACE" ]
}
}
test("mdns_test") {
sources = [
"test/agent_test.cc",
"test/agent_test.h",
"test/config_test.cc",
"test/dns_names_test.cc",
"test/dns_reading_test.cc",
"test/instance_responder_test.cc",
"test/interface_transceiver_test.cc",
]
deps = [
":source_set",
"//src/lib/fxl/test:gtest_main",
"//zircon/public/lib/async-loop-cpp",
"//zircon/public/lib/async-loop-default",
]
}
package("mdns") {
deps = [ ":bin" ]
binaries = [
{
name = "mdns"
},
]
meta = [
{
path = rebase_path("meta/mdns.cmx")
dest = "mdns.cmx"
},
]
}
config_data("mdns_config") {
for_pkg = "sysmgr"
outputs = [ "mdns.config" ]
sources = [ rebase_path("config/service.config") ]
}
config_data("mdns_fuchsia_udp_config") {
for_pkg = "mdns"
sources = [ rebase_path("config/fuchsia_udp.config") ]
# Ensure exclusion from production builds.
deps = [ "//build/validate:non_production_tag" ]
}
group("tests") {
testonly = true
deps = [
":mdns-netemul-multi-network-tests",
":mdns_fuzzers",
":mdns_netemul_tests",
":mdns_netemul_v6_tests",
":mdns_tests",
]
}
test_package("mdns_tests") {
deps = [ ":mdns_test" ]
tests = [
{
name = "mdns_test"
environments = [ qemu_env ]
},
]
}
fuzzer("packet_reader_fuzzer") {
sources = [
"dns_message.cc",
"dns_message.h",
"dns_reading.cc",
"dns_reading.h",
"packet_reader.cc",
"packet_reader.h",
"packet_reader_fuzzer.cc",
]
deps = [
"//src/lib/inet",
"//src/lib/syslog/cpp",
]
}
fuzzers_package("mdns_fuzzers") {
fuzzers = [ ":packet_reader_fuzzer" ]
}
executable("mdns_netemul_test_agent") {
testonly = true
sources = [ "test/mdns_netemul_test_agent.cc" ]
deps = [
"//garnet/public/lib/fostr/fidl/fuchsia.net",
"//garnet/public/lib/fostr/fidl/fuchsia.net.mdns",
"//sdk/fidl/fuchsia.net.mdns",
"//sdk/lib/sys/cpp",
"//src/lib/fsl",
"//src/lib/syslog/cpp",
"//zircon/public/lib/async-cpp",
"//zircon/public/lib/async-loop-cpp",
"//zircon/public/lib/async-loop-default",
]
}
test_package("mdns_netemul_tests") {
deps = [
":mdns_netemul_test_agent",
":netemul_empty_binaries",
"//src/connectivity/network/tests:device_name_provider",
]
meta = [
{
path = rebase_path("meta/mdns_netemul_test_agent.cmx")
dest = "mdns_netemul_test_agent.cmx"
},
]
binaries = [
{
name = "mdns_netemul_test_agent"
},
]
tests = [
{
name = "mdns_netemul_test"
},
]
}
group("netemul_empty_binaries") {
write_file("$root_out_dir/mdns_netemul_test", "")
}
test_package("mdns_netemul_v6_tests") {
deps = [
":mdns_netemul_test_agent",
":netemul_empty_v6_binaries",
"//src/connectivity/network/tests:device_name_provider",
]
meta = [
{
path = rebase_path("meta/mdns_netemul_test_agent.cmx")
dest = "mdns_netemul_test_agent.cmx"
},
]
binaries = [
{
name = "mdns_netemul_test_agent"
},
]
tests = [
{
name = "mdns_netemul_v6_test"
},
]
}
group("netemul_empty_v6_binaries") {
write_file("$root_out_dir/mdns_netemul_v6_test", "")
}
executable("mdns_netemul_multi_network_test_agent") {
testonly = true
sources = [ "test/mdns_netemul_multi_network_test_agent.cc" ]
deps = [
":source_set",
"//sdk/lib/sys/cpp",
"//src/connectivity/network/testing/netemul/lib/fidl:sync",
"//zircon/public/lib/async-cpp",
"//zircon/public/lib/async-loop-cpp",
"//zircon/public/lib/async-loop-default",
"//zircon/system/fidl/fuchsia-net",
]
}
test_package("mdns-netemul-multi-network-tests") {
deps = [
":mdns_netemul_multi_network_test_agent",
":netemul_empty_multi_network_binaries",
"//src/connectivity/network/tests:device_name_provider",
]
meta = [
{
path = rebase_path("meta/mdns_netemul_multi_network_test_agent.cmx")
dest = "mdns_netemul_multi_network_test_agent.cmx"
},
]
binaries = [
{
name = "mdns_netemul_multi_network_test_agent"
},
]
tests = [
{
name = "mdns_netemul_multi_network_test"
environments = [ qemu_env ]
},
]
}
group("netemul_empty_multi_network_binaries") {
write_file("$root_out_dir/mdns_netemul_multi_network_test", "")
}