blob: 31c657fe87cd9e1f8d27655710bcf637b9a21df5 [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/rust/rustc_binary.gni")
group("tests") {
testonly = true
deps = [
":inspect_validator_test_cpp",
":inspect_validator_test_rust",
":inspect_validator_unittest",
]
}
rustc_library("inspect_validator") {
testonly = true
edition = "2021"
with_unit_tests = true
sources = [
"src/data.rs",
"src/data/fetch.rs",
"src/data/scanner.rs",
"src/lib.rs",
"src/macros.rs",
"src/metrics.rs",
"src/puppet.rs",
"src/results.rs",
"src/runner.rs",
"src/trials.rs",
]
deps = [
"//sdk/fidl/fuchsia.inspect:fuchsia.inspect_rust",
"//sdk/fidl/fuchsia.sys2:fuchsia.sys2_rust",
"//src/diagnostics/validator/inspect/fidl:validate_rust",
"//src/lib/diagnostics/hierarchy/rust",
"//src/lib/diagnostics/inspect/format/rust",
"//src/lib/diagnostics/inspect/rust",
"//src/lib/diagnostics/reader/rust",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia-component",
"//src/lib/zircon/rust:fuchsia-zircon",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:base64",
"//third_party/rust_crates:difference",
"//third_party/rust_crates:num-derive",
"//third_party/rust_crates:num-traits",
"//third_party/rust_crates:serde",
"//third_party/rust_crates:serde_json",
]
test_deps = [
"//sdk/fidl/fuchsia.mem:fuchsia.mem_rust",
"//src/lib/fuchsia",
"//src/lib/fuchsia-async",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:tracing",
]
}
# Unit tests for validator_bin (not the validation tests themselves)
fuchsia_unittest_package("inspect_validator_unittest") {
deps = [ ":inspect_validator_test" ]
}
# The program that actually executes the validator tests.
rustc_test("validator_bin") {
name = "validator"
edition = "2021"
source_root = "src/main.rs"
sources = [ "src/main.rs" ]
deps = [
":inspect_validator",
"//src/lib/fuchsia",
]
}
# The parent component of #validator_component and #puppet. Provides the necessary topology.
fuchsia_test_component("inspect_validator_test_executor") {
component_name = "test"
manifest = "meta/test.cml"
}
# Pre-compiled manifest for #validator_component
fuchsia_component_manifest("validator_component_manifest") {
testonly = true
component_name = "validator"
manifest = "meta/validator.cml"
}
# Component containing the test cases.
fuchsia_test_component("validator_component") {
cm_label = ":validator_component_manifest"
deps = [ ":validator_bin" ]
}
fuchsia_package("validator") {
testonly = true
package_name = "inspect_validator"
deps = [ ":validator_component" ]
}
# The per-language test packages are below
fuchsia_test_package("inspect_validator_test_rust") {
subpackages = [ ":validator" ]
renameable_subpackages = [
{
name = "puppet"
package = "//src/diagnostics/validator/inspect/lib/rust"
},
]
test_components = [ ":inspect_validator_test_executor" ]
test_specs = {
log_settings = {
max_severity = "ERROR"
}
}
}
fuchsia_test_package("inspect_validator_test_cpp") {
subpackages = [ ":validator" ]
renameable_subpackages = [
{
name = "puppet"
package = "//src/diagnostics/validator/inspect/lib/cpp"
},
]
test_components = [ ":inspect_validator_test_executor" ]
}