blob: 38fe5791c1a143a24fb729e4cf8feb754a544a03 [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/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)",
]
}