| # 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", "") |
| } |