blob: 452973f56c12b13a5250f3f477a88d57191f0a2d [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/dart/dart_library.gni")
import("//build/dart/test.gni")
import("//build/testing/environments.gni")
import("//build/testing/host_test_data.gni")
# This directory contains Dart wrappers for running performance tests
# that are defined elsewhere in the Fuchsia tree.
#
# The test wrappers in this directory are split into multiple test
# executables (dart_test targets here) because the Fuchsia Infra tools
# for retrying tests and tracking flakes operate on the granularity of
# test executables.
test_list = [
"archivist_benchmarks_test",
"audio_mixer_profiler_test",
"dart_inspect_benchmarks_test",
"diagnostics_benchmarks_test",
"fidlc_microbenchmarks_test",
"flatland_benchmarks_test",
"kernel_boot_stats_test",
"microbenchmarks_test",
"netstack_benchmarks_test",
"netstack3_benchmarks_test",
"network_device_microbenchmarks_test",
"perftest_trace_events_test",
"storage_benchmarks_test",
"rust_inspect_benchmarks_test",
# TODO(https://fxbug.dev/108167): Re-enable input_latency_benchmarks_test.
# It is disabled because it has been getting broken by rolls of the
# test-durations package, which often change test ordering and sharding.
# The cause appears to be that input_latency_benchmarks_test fails when run
# after the screen_is_not_black test.
# "input_latency_benchmarks_test",
]
if (target_cpu == "x64" && !is_asan) {
test_list += [ "direct_mode_benchmarks_test" ]
if (host_os == "linux") {
test_list += [ "starnix_benchmarks_test" ]
}
}
foreach(target_name, test_list) {
dart_test(target_name) {
sources = [
"$target_name.dart",
"helpers.dart",
"summarize.dart",
]
deps = [
"//sdk/testing/sl4f/client",
"//third_party/dart-pkg/pub/args",
"//third_party/dart-pkg/pub/logging",
"//third_party/dart-pkg/pub/meta",
"//third_party/dart-pkg/pub/test",
"//third_party/dart-pkg/pub/tuple",
]
non_dart_deps = [ ":runtime_deps($host_toolchain)" ]
environments = [
atlas_env,
nuc_env,
vim3_env,
]
# TODO(fxbug.dev/51799): Enable for all tests.
if (target_name == "kernel_boot_stats_test" ||
target_name == "audio_mixer_profiler_test") {
environments += [
astro_env,
sherlock_env,
]
}
}
}
dart_test("summarize_perf_results_test") {
sources = [
"summarize.dart",
"summarize_test.dart",
]
deps = [
"//sdk/testing/sl4f/client",
"//third_party/dart-pkg/pub/args",
"//third_party/dart-pkg/pub/logging",
"//third_party/dart-pkg/pub/meta",
"//third_party/dart-pkg/pub/test",
"//third_party/dart-pkg/pub/tuple",
]
non_dart_deps = [ ":runtime_deps($host_toolchain)" ]
}
test_list += [ "summarize_perf_results_test" ]
# Split the following tests into shards so that each shard fits
# within the default time limit.
shards = [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
]
total_shards = "11"
shard_test_list = [
"fidl_microbenchmarks_test",
"netstack_iperf_test",
]
foreach(test, shard_test_list) {
foreach(shard, shards) {
target_name = test + "_shard_" + shard
dart_test(target_name) {
sources = [
test + ".dart",
"helpers.dart",
"summarize.dart",
]
args = [
"--total-shards=" + total_shards,
"--shard-index=" + shard,
]
deps = [
"//sdk/testing/sl4f/client",
"//third_party/dart-pkg/pub/args",
"//third_party/dart-pkg/pub/logging",
"//third_party/dart-pkg/pub/meta",
"//third_party/dart-pkg/pub/test",
"//third_party/dart-pkg/pub/tuple",
]
non_dart_deps = [ ":runtime_deps($host_toolchain)" ]
environments = [
# TODO(fxb/88635): netstack_iperf fails on altas_env
# atlas_env,
nuc_env,
vim3_env,
]
}
test_list += [ target_name ]
}
}
if (is_host) {
metric_files = [
"fuchsia.archivist.formatter.txt",
"fuchsia.archivist.logging.txt",
"fuchsia.audio.txt",
"fuchsia.dart_inspect.txt",
"fuchsia.diagnostics.txt",
"fuchsia.fidl_microbenchmarks.cpp.txt",
"fuchsia.fidl_microbenchmarks.dart.txt",
"fuchsia.fidl_microbenchmarks.driver_cpp.txt",
"fuchsia.fidl_microbenchmarks.driver_llcpp.txt",
"fuchsia.fidl_microbenchmarks.go.txt",
"fuchsia.fidl_microbenchmarks.hlcpp.txt",
"fuchsia.fidl_microbenchmarks.libfidl.txt",
"fuchsia.fidl_microbenchmarks.llcpp.txt",
"fuchsia.fidl_microbenchmarks.reference.txt",
"fuchsia.fidl_microbenchmarks.rust.txt",
"fuchsia.fidl_microbenchmarks.walker.txt",
"fuchsia.fidlc_microbenchmarks.txt",
"fuchsia.flatland_latency.txt",
"fuchsia.input_latency.simplest_app.txt",
"fuchsia.kernel.boot.txt",
"fuchsia.microbenchmarks.direct_mode.txt",
"fuchsia.microbenchmarks.tracing.txt",
"fuchsia.microbenchmarks.tracing_categories_disabled.txt",
"fuchsia.microbenchmarks.starnix.txt",
"fuchsia.microbenchmarks.txt",
"fuchsia.netstack.iperf_benchmarks.ethernet_tcp_recv_1024.txt",
"fuchsia.netstack.iperf_benchmarks.ethernet_tcp_recv_1400.txt",
"fuchsia.netstack.iperf_benchmarks.ethernet_tcp_recv_64.txt",
"fuchsia.netstack.iperf_benchmarks.ethernet_tcp_send_1024.txt",
"fuchsia.netstack.iperf_benchmarks.ethernet_tcp_send_1400.txt",
"fuchsia.netstack.iperf_benchmarks.ethernet_tcp_send_64.txt",
"fuchsia.netstack.iperf_benchmarks.ethernet_ucp_recv_1024.txt",
"fuchsia.netstack.iperf_benchmarks.ethernet_ucp_recv_1400.txt",
"fuchsia.netstack.iperf_benchmarks.ethernet_ucp_recv_64.txt",
"fuchsia.netstack.iperf_benchmarks.ethernet_udp_send_1024.txt",
"fuchsia.netstack.iperf_benchmarks.ethernet_udp_send_1400.txt",
"fuchsia.netstack.iperf_benchmarks.ethernet_udp_send_64.txt",
"fuchsia.netstack.iperf_benchmarks.localhost_tcp_1024.txt",
"fuchsia.netstack.iperf_benchmarks.localhost_tcp_1400.txt",
"fuchsia.netstack.iperf_benchmarks.localhost_tcp_64.txt",
"fuchsia.netstack.iperf_benchmarks.localhost_udp_1024.txt",
"fuchsia.netstack.iperf_benchmarks.localhost_udp_1400.txt",
"fuchsia.netstack.iperf_benchmarks.localhost_udp_64.txt",
"fuchsia.netstack3.core.txt",
"fuchsia.network.device.txt",
"fuchsia.network.socket.loopback.fake_netstack.txt",
"fuchsia.network.socket.loopback.fastudp.txt",
"fuchsia.network.socket.loopback.netstack3.txt",
"fuchsia.network.socket.loopback.txt",
"fuchsia.network.udp_serde.txt",
"fuchsia.rust_inspect.benchmarks.txt",
"fuchsia.rust_inspect.reader_benchmarks.txt",
"fuchsia.rust_inspect.selectors.txt",
"fuchsia.storage.txt",
]
host_test_data("runtime_deps") {
sources = [
"$root_out_dir/catapult_converter",
"$root_out_dir/trace2json",
]
foreach(filename, metric_files) {
sources += [ "expected_metric_names/$filename" ]
}
outputs = [ "$target_gen_dir/runtime_deps/{{source_file_part}}" ]
deps = [
"//src/performance/trace2json:bin",
"//src/testing/catapult_converter:converter_bin",
]
# TODO(fxbug.dev/48350): Enable host build for non-linux hosts as well.
if (host_os == "linux") {
sources += [ "$root_out_dir/iperf3" ]
deps += [ "//third_party/iperf:bin" ]
}
}
}
group("package_deps") {
testonly = true
public_deps = [
"//src/diagnostics:benchmarks",
"//src/lib/diagnostics:benchmarks",
"//src/media/audio/audio_core/shared/mixer/tools:audio_mixer_profiler",
"//src/tests/benchmarks:kernel-boot-benchmarks",
"//src/tests/benchmarks/fidl:benchmarks",
"//src/tests/microbenchmarks:fuchsia_microbenchmarks",
# Many tests use sl4f to communicate with the target.
"//src/testing/sl4f",
# These are used by netstack benchmarks.
"//src/connectivity/network/netstack3:netstack3_benchmarks",
"//src/connectivity/network/tests/benchmarks",
"//third_party/iperf",
# Used by network device benchmarks.
"//src/connectivity/network/drivers/network-device/device:network-device-microbenchmarks",
# These are used by flatland_benchmarks.
"//src/ui/examples:flatland-examples",
# These are used by input_latency_benchmarks.
"//src/sys/activity",
"//src/ui/bin/input-pipeline:component-for-test",
# These are used by storage_benchmarks_test
"//src/storage/benchmarks",
]
if (target_cpu == "x64" && !is_asan) {
public_deps += [ "//src/tests/microbenchmarks:direct_mode_microbenchmarks" ]
if (host_os == "linux") {
public_deps +=
[ "//src/tests/microbenchmarks:starnix_microbenchmarks_perftestmode" ]
}
}
}
group("test") {
testonly = true
deps = [ ":package_deps" ]
foreach(target_name, test_list) {
deps += [ ":$target_name($host_toolchain)" ]
}
}
group("tests_to_run_on_internal_builders") {
testonly = true
deps = [
":audio_mixer_profiler_test($host_toolchain)",
":kernel_boot_stats_test($host_toolchain)",
"//src/tests/benchmarks:kernel-boot-benchmarks",
]
}