| # 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/fuchsia/zircon_images.gni") |
| import("//build/go/go_library.gni") |
| import("//build/go/go_test.gni") |
| import("//build/go/toolchain.gni") |
| import("//build/package.gni") |
| import("//build/test/test_package.gni") |
| import("//build/testing/environments.gni") |
| import("//third_party/cobalt/metrics_registry.gni") |
| |
| package("netstack") { |
| deps = [ "//garnet/go/src/grand_unified_binary" ] |
| |
| binaries = [ |
| { |
| name = "netstack" |
| source = "grand_unified_binary" |
| }, |
| ] |
| |
| meta = [ |
| { |
| path = rebase_path("meta/netstack.cmx") |
| dest = "netstack.cmx" |
| }, |
| { |
| path = rebase_path("meta/netstack_debug.cmx") |
| dest = "netstack_debug.cmx" |
| }, |
| ] |
| } |
| |
| package("tools") { |
| deps = [ "ifconfig" ] |
| |
| binaries = [ |
| { |
| name = "ifconfig" |
| shell = true |
| }, |
| ] |
| } |
| |
| metrics_registry("networking_metrics") { |
| # This must match the ID of our Cobalt project as specified in: |
| # third_party/cobalt_config/projects.yaml |
| project_id = 1 |
| go_package_name = "networking_metrics" |
| generate_go = true |
| generate_rust = true |
| generate_binarypb = false |
| } |
| |
| test_package("netstack_gotests") { |
| deps = [ |
| ":netstack_connectivity_test", |
| ":netstack_fidlconv_test", |
| ":netstack_filter_test", |
| ":netstack_link_eth_test", |
| ":netstack_test", |
| "ifconfig:netstack_ifconfig_test", |
| "netstack_service_test", |
| "util:netstack_util_test", |
| ] |
| |
| binaries = [ |
| { |
| name = "netstack_service_test" |
| }, |
| ] |
| |
| tests = [ |
| { |
| name = "netstack_connectivity_test" |
| environments = [ qemu_env ] |
| }, |
| { |
| name = "netstack_fidlconv_test" |
| environments = [ qemu_env ] |
| }, |
| { |
| name = "netstack_filter_test" |
| environments = [ qemu_env ] |
| }, |
| { |
| name = "netstack_link_eth_test" |
| environments = [ qemu_env ] |
| }, |
| { |
| name = "netstack_test" |
| environments = [ qemu_env ] |
| }, |
| { |
| name = "netstack_util_test" |
| environments = [ qemu_env ] |
| }, |
| { |
| name = "netstack_ifconfig_test" |
| environments = [ qemu_env ] |
| }, |
| ] |
| } |
| |
| go_library("netstack_lib") { |
| name = "netstack" |
| |
| deps = [ |
| ":networking_metrics_golib", |
| "//garnet/go/src/fidlext/fuchsia/hardware/ethernet:fidlext_fuchsia_hardware_ethernet_fake_lib($go_toolchain)", |
| "//garnet/public/lib/syslog/go/src/syslog", |
| "//sdk/fidl/fuchsia.net.dhcp($go_toolchain)", |
| "//sdk/fidl/fuchsia.net.filter($go_toolchain)", |
| "//sdk/fidl/fuchsia.net.stack($go_toolchain)", |
| "//sdk/fidl/fuchsia.netstack($go_toolchain)", |
| "//sdk/fidl/fuchsia.sys($go_toolchain)", |
| "//src/lib/component/go/src/app", |
| "//third_party/golibs:github.com/google/btree", |
| "//third_party/golibs:github.com/google/go-cmp", |
| "//third_party/golibs:github.com/pkg/errors", |
| "//third_party/golibs:golang.org/x/net", |
| "//third_party/golibs:golang.org/x/time", |
| "//third_party/golibs:gvisor.dev/gvisor", |
| "//zircon/system/fidl/fuchsia-cobalt($go_toolchain)", |
| "//zircon/system/fidl/fuchsia-device($go_toolchain)", |
| "//zircon/system/fidl/fuchsia-hardware-ethernet($go_toolchain)", |
| "//zircon/system/fidl/fuchsia-inspect-deprecated($go_toolchain)", |
| "//zircon/system/fidl/fuchsia-net($go_toolchain)", |
| "//zircon/system/fidl/fuchsia-posix-socket($go_toolchain)", |
| ] |
| } |
| |
| go_test("netstack_connectivity_test") { |
| gopackages = [ "netstack/connectivity" ] |
| deps = [ ":netstack_lib" ] |
| } |
| |
| go_test("netstack_fidlconv_test") { |
| gopackages = [ "netstack/fidlconv" ] |
| deps = [ ":netstack_lib" ] |
| } |
| |
| go_test("netstack_filter_test") { |
| gopackages = [ "netstack/filter" ] |
| deps = [ ":netstack_lib" ] |
| } |
| |
| go_test("netstack_link_eth_test") { |
| gopackages = [ "netstack/link/eth" ] |
| deps = [ ":netstack_lib" ] |
| } |
| |
| go_test("netstack_test") { |
| gopackages = [ "netstack" ] |
| deps = [ ":netstack_lib" ] |
| } |
| |
| group("tests") { |
| testonly = true |
| deps = [ |
| ":netstack_gotests", |
| "dhcp:netstack_dhcp_gotests", |
| "dns:netstack_dns_gotests", |
| "link/bridge:netstack_link_bridge_test($host_toolchain)", |
| "routes:netstack_routes_gotests", |
| "tests:netstack_manual_tests", |
| "util:netstack_util_test($host_toolchain)", |
| ] |
| } |