blob: 7f6dea1440f61ac0bc03c4bac5a764abdac7693a [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/fidl/fidl.gni")
import("//build/rust/rustc_binary.gni")
import("//build/rust/rustc_library.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")
rustc_library("process_builder") {
with_unit_tests = true
edition = "2018"
deps = [
"//garnet/public/lib/fidl/rust/fidl",
"//garnet/public/rust/fuchsia-async",
"//garnet/public/rust/fuchsia-zircon",
"//garnet/public/rust/zerocopy",
"//third_party/rust_crates:bitflags",
"//third_party/rust_crates:failure",
"//third_party/rust_crates:futures-preview",
"//third_party/rust_crates:lazy_static",
"//third_party/rust_crates:num-derive",
"//third_party/rust_crates:num-traits",
"//third_party/rust_crates:owning_ref",
"//third_party/rust_crates:static_assertions",
"//zircon/public/fidl/fuchsia-io:fuchsia-io-rustc",
"//zircon/public/fidl/fuchsia-ldsvc:fuchsia-ldsvc-rustc",
"//zircon/public/fidl/fuchsia-process:fuchsia-process-rustc",
# Test only deps
":test-util-fidl-rustc",
"//garnet/public/rust/fdio",
"//garnet/public/rust/fuchsia-runtime",
"//garnet/public/rust/fuchsia-vfs/pseudo-fs",
]
}
group("tests") {
testonly = true
data_deps = [
":process_builder_tests",
]
}
rustc_binary("root_job_test_runner") {
testonly = true
edition = "2018"
source_root = "root_job_test_runner/main.rs"
deps = [
"//garnet/examples/fidl/services:echo-rustc",
"//garnet/public/lib/fidl/rust/fidl",
"//garnet/public/rust/fdio",
"//garnet/public/rust/fuchsia-async",
"//garnet/public/rust/fuchsia-component",
"//garnet/public/rust/fuchsia-zircon",
"//third_party/rust_crates:failure",
"//third_party/rust_crates:futures-preview",
"//zircon/public/fidl/fuchsia-sysinfo:fuchsia-sysinfo-rustc",
]
}
fidl("test-util-fidl") {
# Should be 'testonly = true', but :process_builder's tests need to use this
# and test-only deps are not separate
name = "test.processbuilder"
sources = [
"test_util.test.fidl",
]
}
rustc_binary("test_util") {
testonly = true
name = "process_builder_test_util"
edition = "2018"
source_root = "test/test_util.rs"
deps = [
":test-util-fidl-rustc",
"//garnet/public/lib/fidl/rust/fidl",
"//garnet/public/rust/fuchsia-async",
"//garnet/public/rust/fuchsia-component",
"//third_party/rust_crates:failure",
"//third_party/rust_crates:futures-preview",
]
}
config("no-dynamic-linker") {
ldflags = [ "-Wl,-no-dynamic-linker" ]
}
# This is used to test the library's handling of statically linked PIE executables.
# Warning: Don't copy this unless you know what you're doing.
executable("static_pie_test_util") {
testonly = true
sources = [
"test/static_pie_test_util.c",
]
cflags = [
"-fno-sanitize=safe-stack",
"-fno-stack-protector",
]
ldflags = [ "-nostdlib" ]
configs += [ ":no-dynamic-linker" ]
}
test_package("process_builder_tests") {
deps = [
":process_builder_test",
":root_job_test_runner",
":static_pie_test_util",
":test_util",
]
binaries = [
{
name = "root_job_test_runner"
},
{
name = "process_builder_test_util"
},
{
name = "static_pie_test_util"
},
]
tests = [
{
name = "process_builder_lib_test"
dest = "process_builder_tests"
environments = basic_envs
},
]
}