blob: f8a2e056bee1eb68e85c7afc7c1d3b2fa5316bec [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/dart/dart_package.gni")
# Defines a Dart test suite
#
# Parameters
#
# source_dir (optional)
# Directory containing the test sources. Defaults to "test".
#
# deps (optional)
# List of labels for Dart packages this package depends on.
#
# analysis_options (optional)
# By default, a script to run the analyzer on the contents of the package is
# generated in the output directory. This parameter contains the path to an
# analysis options file for this target.
#
# disable_analysis (optional)
# Prevents the analysis script from being generated.
#
# Example of usage:
#
# dart_test("baz_test") {
# source_dir = "."
# deps = [
# "//foo/baz",
# "//third_party/dart-pkg/pub/test",
# ]
# }
template("dart_test") {
main_target_name = target_name
package_target_name = "${target_name}_package"
sources_dir = "test"
if (defined(invoker.source_dir)) {
sources_dir = invoker.source_dir
}
dart_package(package_target_name) {
forward_variables_from(invoker, [
"analysis_options",
"deps",
"disable_analysis",
])
infer_package_name = true
source_dir = sources_dir
}
dot_packages_file = "$target_gen_dir/$package_target_name.packages"
fuchsia_tester_label = "//lib/flutter/packages/flutter_tools:fuchsia_tester($host_toolchain)"
fuchsia_tester_out_dir = get_label_info(fuchsia_tester_label, "root_out_dir")
fuchsia_tester_bin = "$fuchsia_tester_out_dir/dart-tools/fuchsia_tester"
flutter_shell_label = "//flutter/shell($host_toolchain)"
flutter_shell_out_dir = get_label_info(flutter_shell_label, "root_out_dir")
flutter_shell_bin = "$flutter_shell_out_dir/flutter_tester"
invocation_file = "$target_gen_dir/$target_name.sh"
action(main_target_name) {
script = "//build/dart/gen_test_invocation.py"
outputs = [
invocation_file,
]
args = [
"--out",
rebase_path(invocation_file),
"--source-dir",
rebase_path(sources_dir),
"--dot-packages",
rebase_path(dot_packages_file),
"--test-runner",
rebase_path(fuchsia_tester_bin),
"--flutter-shell",
rebase_path(flutter_shell_bin),
]
deps = [
":$package_target_name",
flutter_shell_label,
fuchsia_tester_label,
]
}
}