blob: 9ddd44e8f0980d13bbc66096d2c07e315e2a1153 [file] [log] [blame]
# Copyright 2020 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/testing/host_test.gni")
import("//build/testing/host_test_data.gni")
# Defines a host-side test for a triage configuration
#
# Packages a set of triage configuration files into a single test which
# runs all of the tests in the `test` section of the configuration file.
# This test will pass if all of the tests pass and fail if any of them fail.
#
# Parameters
#
# sources (required)
# The list of configuration files. These sources must be within source_dir.
#
# source_dir (optional)
# Directory containing the test sources.
# Defaults to "config".
#
# Example of usage:
#
# triage_config_test("some_test") {
# sources = [
# "bar.triage",
# "foo.triage",
# ]
# }
#
# Example of running:
#
# fx test some_test
#
template("triage_config_test") {
assert(defined(invoker.sources),
"triage_config_test() requires 'sources' be defined")
if (defined(invoker.source_dir)) {
config_source_dir = invoker.source_dir
} else {
config_source_dir = "config"
}
config_target_name = target_name + "_configs"
host_test_data(config_target_name) {
sources = []
foreach(config, invoker.sources) {
sources += [ "${config_source_dir}/${config}" ]
}
outputs =
[ "$target_gen_dir/runtime_deps/${target_name}/{{source_file_part}}" ]
}
host_test(target_name) {
binary_path = "${root_out_dir}/triage_config_test_runner"
config_files = get_target_outputs(":${config_target_name}")
args = []
foreach(file, config_files) {
args += [
"--config",
rebase_path(file, root_build_dir),
]
}
deps = [
":${config_target_name}",
"//src/diagnostics/triage/build/triage_config_test_runner",
]
}
}