blob: 3fbc5e7970b24698c1849a452217653ddfd69c7c [file] [log] [blame]
# Copyright 2018 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/rust/rustc_test.gni")
import("//build/test.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")
group("tests") {
testonly = true
deps = [
":netstack_bsdsocket_c_api_test($host_toolchain)",
":netstack_c_api_tests",
":netstack_external_network_test_client($host_toolchain)",
":netstack_integration_tests",
]
}
rustc_test("netstack_fidl_integration_test") {
edition = "2018"
deps = [
"//garnet/lib/rust/fidl_fuchsia_net_stack_ext",
"//garnet/public/lib/fidl/rust/fidl",
"//garnet/public/rust/fuchsia-async",
"//garnet/public/rust/fuchsia-component",
"//garnet/public/rust/fuchsia-zircon",
"//sdk/fidl/fuchsia.net.dhcp:fuchsia.net.dhcp-rustc",
"//sdk/fidl/fuchsia.netstack:fuchsia.netstack-rustc",
"//sdk/fidl/fuchsia.stash:fuchsia.stash-rustc",
"//sdk/fidl/fuchsia.sys:fuchsia.sys-rustc",
"//src/connectivity/network/testing/netemul/lib/fidl:environment-rustc",
"//src/connectivity/network/testing/netemul/lib/fidl:network-rustc",
"//src/connectivity/network/testing/netemul/lib/fidl:sandbox-rustc",
"//third_party/rust_crates:failure",
"//third_party/rust_crates:futures-preview",
"//zircon/system/fidl/fuchsia-hardware-ethernet:fuchsia-hardware-ethernet-rustc",
"//zircon/system/fidl/fuchsia-inspect-deprecated:fuchsia-inspect-deprecated-rustc",
"//zircon/system/fidl/fuchsia-net:fuchsia-net-rustc",
"//zircon/system/fidl/fuchsia-net-stack:fuchsia-net-stack-rustc",
"//zircon/system/fidl/fuchsia-posix-socket:fuchsia-posix-socket-rustc",
]
}
zircon_extras_manifest("device_name_provider_manifest") {
visibility = [ ":*" ]
manifest = "image"
patterns = [ "bin/device-name-provider" ]
}
package("device_name_provider") {
deps = [
":device_name_provider_manifest",
]
extra = get_target_outputs(":device_name_provider_manifest")
meta = [
{
path = rebase_path("meta/device_name_provider.cmx")
dest = "device_name_provider.cmx"
},
]
}
# This target contains the test package netstack_integration_tests and the
# dependencies needed in the image/universe to run the tests within it.
# There's currently no way to express a dependency between packages in the build
# system, so we aggregate all the dependencies in this group target.
# See bug 36293 for more details.
group("netstack_integration_tests") {
testonly = true
deps = [
":netstack_integration_tests_inner",
# device_name_provider provides fuchsia.device.NameProvider.
":device_name_provider",
# dhcpd is used to test DHCP address acquisition.
"//src/connectivity/network/dhcp:dhcpd",
# netemul is used to create hermetic environments.
"//src/connectivity/network/testing/netemul",
]
}
test_package("netstack_integration_tests_inner") {
package_name = "netstack_integration_tests"
deps = [
":netstack_fidl_integration_test",
]
visibility = [ ":*" ]
tests = [
{
name = "netstack_fidl_integration_test"
environments = [ qemu_env ]
},
]
}
test("netstack_bsdsocket_c_api_test") {
if (is_linux || is_fuchsia) {
sources = [
"bsdsocket_test.cc",
"util.cc",
"util.h",
]
}
deps = [
"//src/lib/fxl/test:gtest_main",
]
}
test("netstack_external_network_test_client") {
if (is_linux || is_fuchsia) {
sources = [
"external_network_test_client.cc",
]
}
deps = [
"//src/lib/fxl/test:gtest_main",
]
}
test("netstack_fuchsia_c_api_test") {
sources = [
"fdio_test.cc",
"util.cc",
"util.h",
]
deps = [
"//src/lib/fxl/test:gtest_main",
"//zircon/public/lib/fbl",
"//zircon/public/lib/fdio",
"//zircon/public/lib/sync",
"//zircon/system/fidl/fuchsia-posix-socket",
]
}
test("netstack_no_network_test") {
sources = [
"no_network_test.cc",
]
deps = [
"//src/lib/fxl/test:gtest_main",
]
}
test("name_provider_no_network_test") {
sources = [
"name_provider_no_network_test.cc",
]
deps = [
":device_name_provider",
"//sdk/lib/sys/cpp",
"//src/lib/fxl/test:gtest_main",
"//zircon/system/fidl/fuchsia-device:fuchsia-device_llcpp",
]
}
test("name_provider_service_not_present_test") {
sources = [
"name_provider_service_not_present_test.cc",
]
deps = [
":device_name_provider",
"//src/lib/fxl/test:gtest_main",
"//zircon/system/fidl/fuchsia-device",
]
}
group("netemul_empty_binaries") {
write_file("$root_out_dir/connect_test", "")
write_file("$root_out_dir/netstack_external_network_test", "")
}
# This target contains the test package netstack_c_api_tests and the
# dependencies needed in the image/universe to run the tests within it.
# There's currently no way to express a dependency between packages in the build
# system, so we aggregate all the dependencies in this group target.
# See bug 36293 for more details.
group("netstack_c_api_tests") {
testonly = true
deps = [
":netstack_c_api_tests_inner",
# device_name_provider provides fuchsia.device.NameProvider.
":device_name_provider",
# netemul is used to create hermetic environments.
"//src/connectivity/network/testing/netemul",
]
}
test_package("netstack_c_api_tests_inner") {
package_name = "netstack_c_api_tests"
deps = [
":name_provider_no_network_test",
":name_provider_service_not_present_test",
":netemul_empty_binaries",
":netstack_bsdsocket_c_api_test",
":netstack_external_network_test_client",
":netstack_fuchsia_c_api_test",
":netstack_no_network_test",
"connect",
]
visibility = [ ":*" ]
binaries = [
{
name = "connect"
},
{
name = "netstack_external_network_test_client"
},
]
meta = [
{
path = rebase_path("meta/connect.cmx")
dest = "connect.cmx"
},
{
path = rebase_path("meta/netstack_external_network_test_client.cmx")
dest = "netstack_external_network_test_client.cmx"
},
]
tests = [
{
name = "connect_test"
environments = [ qemu_env ]
},
{
name = "name_provider_service_not_present_test"
environments = [ qemu_env ]
},
{
name = "name_provider_no_network_test"
environments = [ qemu_env ]
},
{
name = "netstack_bsdsocket_c_api_test"
environments = [ qemu_env ]
},
{
name = "netstack_external_network_test"
environments = [ qemu_env ]
},
{
name = "netstack_fuchsia_c_api_test"
environments = [ qemu_env ]
},
{
name = "netstack_no_network_test"
environments = [ qemu_env ]
},
]
}