| # 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", |
| ] |
| } |