| # 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/assembly/config_data_for_assembly.gni") |
| import("//build/components.gni") |
| import("//build/fuzz.gni") |
| import("//build/test.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 = [ |
| ":mdns", |
| ":source_set", |
| ] |
| } |
| |
| executable("bin") { |
| output_name = "mdns" |
| |
| sources = [ "main.cc" ] |
| |
| deps = [ |
| ":source_set", |
| "//zircon/system/ulib/async-loop:async-loop-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-default", |
| ] |
| |
| if (enable_mdns_trace) { |
| defines = [ "MDNS_TRACE" ] |
| } |
| } |
| |
| source_set("source_set") { |
| sources = [ |
| "agents/address_prober.cc", |
| "agents/address_prober.h", |
| "agents/address_responder.cc", |
| "agents/address_responder.h", |
| "agents/host_name_requestor.cc", |
| "agents/host_name_requestor.h", |
| "agents/host_name_resolver.cc", |
| "agents/host_name_resolver.h", |
| "agents/instance_prober.cc", |
| "agents/instance_prober.h", |
| "agents/instance_requestor.cc", |
| "agents/instance_requestor.h", |
| "agents/instance_responder.cc", |
| "agents/instance_responder.h", |
| "agents/mdns_agent.h", |
| "agents/prober.cc", |
| "agents/prober.h", |
| "agents/resource_renewer.cc", |
| "agents/resource_renewer.h", |
| "agents/service_instance_resolver.cc", |
| "agents/service_instance_resolver.h", |
| "common/formatters.cc", |
| "common/formatters.h", |
| "common/mdns_addresses.cc", |
| "common/mdns_addresses.h", |
| "common/mdns_fidl_util.cc", |
| "common/mdns_fidl_util.h", |
| "common/mdns_names.cc", |
| "common/mdns_names.h", |
| "common/reply_address.cc", |
| "common/reply_address.h", |
| "common/service_instance.cc", |
| "common/service_instance.h", |
| "common/type_converters.h", |
| "common/types.h", |
| "config.cc", |
| "config.h", |
| "encoding/dns_formatting.cc", |
| "encoding/dns_formatting.h", |
| "encoding/dns_message.cc", |
| "encoding/dns_message.h", |
| "encoding/dns_reading.cc", |
| "encoding/dns_reading.h", |
| "encoding/dns_writing.cc", |
| "encoding/dns_writing.h", |
| "encoding/packet_reader.cc", |
| "encoding/packet_reader.h", |
| "encoding/packet_writer.cc", |
| "encoding/packet_writer.h", |
| "mdns.cc", |
| "mdns.h", |
| "services/host_name_resolver_service_impl.cc", |
| "services/host_name_resolver_service_impl.h", |
| "services/host_name_subscriber_service_impl.cc", |
| "services/host_name_subscriber_service_impl.h", |
| "services/mdns_deprecated_service_impl.cc", |
| "services/mdns_deprecated_service_impl.h", |
| "services/mdns_service_impl.cc", |
| "services/mdns_service_impl.h", |
| "services/proxy_host_publisher_service_impl.cc", |
| "services/proxy_host_publisher_service_impl.h", |
| "services/service_impl_base.h", |
| "services/service_impl_manager.h", |
| "services/service_instance_publisher_service_impl.cc", |
| "services/service_instance_publisher_service_impl.h", |
| "services/service_instance_resolver_service_impl.cc", |
| "services/service_instance_resolver_service_impl.h", |
| "services/service_subscriber_service_impl.cc", |
| "services/service_subscriber_service_impl.h", |
| "transport/mdns_interface_transceiver.cc", |
| "transport/mdns_interface_transceiver.h", |
| "transport/mdns_interface_transceiver_v4.cc", |
| "transport/mdns_interface_transceiver_v4.h", |
| "transport/mdns_interface_transceiver_v6.cc", |
| "transport/mdns_interface_transceiver_v6.h", |
| "transport/mdns_transceiver.cc", |
| "transport/mdns_transceiver.h", |
| ] |
| |
| public_deps = [ |
| "//sdk/fidl/fuchsia.device:fuchsia.device_hlcpp", |
| "//sdk/fidl/fuchsia.net:fuchsia.net_hlcpp", |
| "//sdk/fidl/fuchsia.net.interfaces:fuchsia.net.interfaces_hlcpp", |
| "//sdk/fidl/fuchsia.net.mdns:fuchsia.net.mdns_hlcpp", |
| "//sdk/lib/fit", |
| "//sdk/lib/sys/cpp", |
| "//sdk/lib/syslog/cpp", |
| "//src/connectivity/network/lib/net_interfaces/cpp", |
| "//src/lib/fostr", |
| "//src/lib/fsl", |
| "//src/lib/inet", |
| "//src/lib/json_parser", |
| "//src/lib/json_parser", |
| "//third_party/rapidjson", |
| ] |
| |
| if (enable_mdns_trace) { |
| defines = [ "MDNS_TRACE" ] |
| } |
| } |
| |
| test("mdns_test") { |
| sources = [ |
| "test/address_prober_test.cc", |
| "test/address_responder_test.cc", |
| "test/agent_test.cc", |
| "test/agent_test.h", |
| "test/config_test.cc", |
| "test/dns_names_test.cc", |
| "test/dns_reading_test.cc", |
| "test/dns_writing_test.cc", |
| "test/fake_clock.cc", |
| "test/host_name_requestor_test.cc", |
| "test/host_name_resolver_test.cc", |
| "test/host_name_subscriber_service_impl_test.cc", |
| "test/instance_prober_test.cc", |
| "test/instance_requestor_test.cc", |
| "test/instance_responder_test.cc", |
| "test/interface_transceiver_test.cc", |
| "test/mdns_transceiver_test.cc", |
| "test/mdns_unit_tests.cc", |
| "test/resource_renewer_test.cc", |
| "test/responder_publisher_test.cc", |
| "test/service_impl_manager_test.cc", |
| "test/service_instance_publisher_service_impl_test.cc", |
| "test/service_instance_resolver_test.cc", |
| ] |
| |
| deps = [ |
| ":source_set", |
| "//src/lib/fxl/test:gtest_main", |
| "//src/lib/testing/loop_fixture", |
| "//src/lib/testing/predicates", |
| "//zircon/system/ulib/async-loop:async-loop-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-default", |
| ] |
| |
| if (enable_mdns_trace) { |
| defines = [ "MDNS_TRACE" ] |
| } |
| } |
| |
| fuchsia_component("component") { |
| component_name = "mdns" |
| deps = [ ":bin" ] |
| manifest = "meta/mdns.cml" |
| } |
| |
| fuchsia_package("mdns") { |
| deps = [ ":component" ] |
| } |
| |
| config_data_for_assembly("mdns_fuchsia_udp_config") { |
| for_pkg = "mdns" |
| sources = [ rebase_path("config/fuchsia_udp.config") ] |
| } |
| |
| group("tests") { |
| testonly = true |
| deps = [ |
| ":mdns-fuzzers", |
| ":mdns-netemul-tests", |
| ":mdns-tests", |
| ] |
| } |
| |
| fuchsia_unittest_package("mdns-tests") { |
| deps = [ ":mdns_test" ] |
| manifest = "meta/mdns_test.cml" |
| test_specs = { |
| log_settings = { |
| max_severity = "ERROR" |
| } |
| } |
| } |
| |
| fuchsia_library_fuzzer("packet_reader_fuzzer") { |
| sources = [ |
| "encoding/dns_message.cc", |
| "encoding/dns_message.h", |
| "encoding/dns_reading.cc", |
| "encoding/dns_reading.h", |
| "encoding/packet_reader.cc", |
| "encoding/packet_reader.h", |
| "encoding/packet_reader_fuzzer.cc", |
| ] |
| deps = [ |
| "//sdk/lib/syslog/cpp", |
| "//src/lib/inet", |
| ] |
| } |
| |
| fuchsia_fuzzer_component("packet-reader-fuzzer-component") { |
| manifest = "meta/packet_reader_fuzzer.cml" |
| deps = [ ":packet_reader_fuzzer" ] |
| } |
| |
| fuchsia_fuzzer_package("mdns-fuzzers") { |
| cpp_fuzzer_components = [ ":packet-reader-fuzzer-component" ] |
| } |
| |
| executable("mdns_netemul_test_agent") { |
| testonly = true |
| |
| sources = [ "test/mdns_netemul_test_agent.cc" ] |
| |
| deps = [ |
| "//sdk/fidl/fuchsia.net.mdns:fuchsia.net.mdns_hlcpp", |
| "//sdk/lib/sys/cpp", |
| "//sdk/lib/syslog/cpp", |
| "//src/lib/fostr/fidl/fuchsia.net", |
| "//src/lib/fostr/fidl/fuchsia.net.mdns", |
| "//src/lib/fsl", |
| "//zircon/system/ulib/async:async-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-default", |
| ] |
| } |
| |
| fuchsia_test_component("test-driver") { |
| manifest = "meta/test-driver.cml" |
| deps = [ ":mdns_netemul_test_agent" ] |
| } |
| |
| fuchsia_test_component("publisher") { |
| manifest = "meta/publisher.cml" |
| deps = [ ":mdns_netemul_test_agent" ] |
| } |
| |
| fuchsia_test_component("device-name-provider-local") { |
| manifest = "meta/device-name-provider-local.cml" |
| deps = [ "//src/bringup/bin/device-name-provider" ] |
| } |
| |
| fuchsia_test_component("device-name-provider-remote") { |
| manifest = "meta/device-name-provider-remote.cml" |
| deps = [ "//src/bringup/bin/device-name-provider" ] |
| } |
| |
| fuchsia_test_component("mdns-netemul-test") { |
| manifest = "meta/mdns-netemul-test.cml" |
| deps = [ |
| ":component", |
| ":device-name-provider-local", |
| ":device-name-provider-remote", |
| ":publisher", |
| ":test-driver", |
| "//src/connectivity/network/testing/netemul/configurable-netstack", |
| ] |
| } |
| |
| fuchsia_test_component("mdns-netemul-v6-test") { |
| manifest = "meta/mdns-netemul-v6-test.cml" |
| deps = [ |
| ":component", |
| ":device-name-provider-local", |
| ":device-name-provider-remote", |
| ":publisher", |
| ":test-driver", |
| "//src/connectivity/network/testing/netemul/configurable-netstack", |
| ] |
| } |
| |
| executable("mdns_netemul_multi_network_test_agent") { |
| testonly = true |
| |
| sources = [ "test/mdns_netemul_multi_network_test_agent.cc" ] |
| |
| deps = [ |
| ":source_set", |
| "//sdk/fidl/fuchsia.net:fuchsia.net_hlcpp", |
| "//sdk/lib/sys/cpp", |
| "//src/connectivity/network/testing/netemul/sync-manager/fidl:sync_hlcpp", |
| "//zircon/system/ulib/async:async-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-cpp", |
| "//zircon/system/ulib/async-loop:async-loop-default", |
| ] |
| |
| if (enable_mdns_trace) { |
| defines = [ "MDNS_TRACE" ] |
| } |
| } |
| |
| fuchsia_test_component("test-driver-multi-network") { |
| manifest = "meta/test-driver-multi-network.cml" |
| deps = [ ":mdns_netemul_multi_network_test_agent" ] |
| } |
| |
| fuchsia_test_component("remote-multi-network") { |
| manifest = "meta/remote-multi-network.cml" |
| deps = [ ":mdns_netemul_multi_network_test_agent" ] |
| } |
| |
| fuchsia_test_component("mdns-netemul-multi-network-test") { |
| manifest = "meta/mdns-netemul-multi-network-test.cml" |
| deps = [ |
| ":remote-multi-network", |
| ":test-driver-multi-network", |
| "//src/connectivity/network/testing/netemul/configurable-netstack", |
| "//src/connectivity/network/testing/netemul/sync-manager", |
| ] |
| } |
| |
| fuchsia_test_package("mdns-netemul-tests") { |
| test_components = [ |
| ":mdns-netemul-test", |
| ":mdns-netemul-v6-test", |
| ":mdns-netemul-multi-network-test", |
| ] |
| } |