blob: e4d300ef6ffb9ae73150c3048276db352cb05ef4 [file] [log] [blame]
# Copyright 2019 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/components.gni")
import("//build/config.gni")
import(
"//src/lib/testing/expectation/fuchsia_test_component_with_expectations.gni")
import(
"//src/lib/testing/expectation/fuchsia_test_with_expectations_package.gni")
tests = [ "sys" ]
tests_with_err_logs = [
{
label = "bridge"
},
{
label = "dhcp"
},
{
label = "dhcp-client"
},
{
label = "dns"
},
{
label = "fidl"
},
{
label = "forwarding"
},
{
label = "ipv4"
},
{
label = "ipv6"
},
{
label = "product-flow"
},
{
label = "socket"
},
]
long_tests_with_err_logs = [
{
label = "multicast-forwarding"
long_test = true
},
]
foreach(test, tests) {
name = "netstack-${test}-integration-test"
fuchsia_test_component_with_expectations(name) {
expectations = "expects/${name}.json5"
manifest = "meta/${name}.cml"
deps = [ test ]
}
}
foreach(test, tests_with_err_logs + long_tests_with_err_logs) {
name = "netstack-${test.label}-integration-test"
fuchsia_test_component(name) {
manifest = "meta/${name}.cml"
deps = [ test.label ]
}
}
package_deps = [
# netemul-sandbox is used to create hermetic test realms.
"//src/connectivity/network/testing/netemul/service:netemul-sandbox",
# netstack3 is under test.
"//src/connectivity/network/netstack3:component",
"//src/connectivity/network/netstack3:component-debug",
# reachability monitor is under test.
"//src/connectivity/policy/reachability:component_with_fake_time",
# stash_secure is used by dhcpd and netstack.
"//src/sys/stash:stash_secure_v2",
# DHCPv4 Server is used to test DHCP address acquisition.
"//src/connectivity/network/dhcpv4/server:component",
# DHCP(v4) client is under test.
"//src/connectivity/network/dhcpv4/client/bindings:component",
# DHCPv6 client is under test.
"//src/connectivity/network/dhcpv6/client:component",
# dns_resolver integration with netstack is tested.
"//src/connectivity/network/dns:component_with_fake_time",
# the DNS resolver under test uses the fake clock.
"//src/lib/fake-clock/svc",
# netcfg integration with netstack is tested.
"//src/connectivity/policy/netcfg:component-advanced",
"//src/connectivity/policy/netcfg:component-basic",
"//src/connectivity/policy/tests/integration:netcfg-netemul-configs",
]
# RISC-V on Fuchsia does not support Golang.
if (target_cpu != "riscv64") {
package_deps += [
"//src/connectivity/network/netstack:component",
"//src/connectivity/network/netstack:component-debug",
"//src/connectivity/network/netstack:component-with-fast-udp-debug",
]
}
fuchsia_test_package("netstack-integration-tests") {
test_components = []
foreach(test, tests) {
test_components += [ ":netstack-${test}-integration-test" ]
}
deps = package_deps + [ "//src/lib/testing/expectation:expectation_comparer" ]
}
err_log_package_deps = []
long_test_err_log_package_deps = []
foreach(test, tests_with_err_logs + long_tests_with_err_logs) {
name = "netstack-${test.label}-integration-test"
no_err_logs_package_name = "${name}-no-err-logs"
fuchsia_test_with_expectations_package(no_err_logs_package_name) {
test_components = [ ":${name}" ]
expectations = "expects/${name}.json5"
treatment_of_cases_with_error_logs = "SKIP_CASES_WITH_ERROR_LOGS"
deps =
package_deps + [ "//src/lib/testing/expectation:expectation_comparer" ]
if (defined(test.long_test) && test.long_test) {
test_specs = {
# Longer timeout to reduce flake (https://fxbug.dev/42055260)
timeout_secs = 720
}
}
}
with_err_logs_package_name = "${name}-with-err-logs"
fuchsia_test_with_expectations_package(with_err_logs_package_name) {
test_components = [ ":${name}" ]
expectations = "expects/${name}.json5"
treatment_of_cases_with_error_logs = "RUN_ONLY_CASES_WITH_ERROR_LOGS"
deps =
package_deps + [ "//src/lib/testing/expectation:expectation_comparer" ]
test_specs = {
log_settings = {
max_severity = "ERROR"
}
if (defined(test.long_test) && test.long_test) {
# Longer timeout to reduce flake (https://fxbug.dev/42055260)
timeout_secs = 720
}
}
}
if (defined(test.long_test) && test.long_test) {
long_test_err_log_package_deps += [
":${no_err_logs_package_name}",
":${with_err_logs_package_name}",
]
} else {
err_log_package_deps += [
":${no_err_logs_package_name}",
":${with_err_logs_package_name}",
]
}
}
# We keep tests that involve the virtualization stack (and especially guest
# images) restricted to a separate builder. See https://fxbug.dev/42073933 for
# more details.
group("tests-involving-guests") {
testonly = true
deps = [ "guest:netstack-guest-integration-tests" ]
}
group("tests") {
testonly = true
# See comment above about tests-involving-guests
assert_no_deps = [ "guest:netstack-guest-integration-tests" ]
deps = [
":netstack-integration-tests",
"guest:build-only",
"inspect:tests",
"macros:netstack_testing_macros_test",
] + err_log_package_deps
if (!is_coverage) {
# TODO(https://fxbug.dev/42055260): Re-enable this test when it passes with
# the coverage variant.
deps += long_test_err_log_package_deps
}
}