blob: ff71b2ff97bff6bbd7ecc55a06d7984a5556a098 [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/test/test_package.gni")
import("//build/testing/environments.gni")
executable("bin") {
testonly = true
output_name = "fdio_spawn_tests"
visibility = [ ":*" ]
sources = [
"fake_launcher_util.h",
"resolve_test.cc",
"shebang_test.cc",
"spawn_test.cc",
"util.cc",
"util.h",
]
deps = [
"//sdk/fidl/fuchsia.io:fuchsia.io_llcpp",
"//sdk/lib/fdio",
"//src/lib/fxl/test:gtest_main",
"//third_party/googletest:gtest",
"//zircon/public/lib/zx",
]
}
# A test utility used to test various features of fdio_spawn, extensively in spawn_test.cc.
executable("spawn_child_util") {
testonly = true
visibility = [ ":*" ]
sources = [ "spawn_child_util.cc" ]
deps = [
"//sdk/lib/fdio",
"//zircon/public/lib/zx",
]
}
# A test utility that attempts to use zx_process_create (mimicking a launcher implementation).
executable("fake_launcher_util") {
testonly = true
visibility = [ ":*" ]
sources = [
"fake_launcher_util.cc",
"fake_launcher_util.h",
]
deps = [
"//sdk/lib/fdio",
"//zircon/public/lib/zx",
]
}
# A simple test utility that returns the integer value provided to it in its first argument.
executable("return_arg_test_util") {
testonly = true
sources = [ "return_arg_util.cc" ]
deps = [ "//src/lib/fxl" ]
}
test_package("fdio_spawn_tests") {
deps = [
":bin",
":fake_launcher_util",
":return_arg_test_util",
":spawn_child_util",
"//zircon/third_party/uapp/dash",
]
binaries = [
{
name = "fake_launcher_util"
},
{
name = "return_arg_test_util"
},
{
name = "sh"
},
{
name = "spawn_child_util"
},
# These 'binaries' (really just text files with either a "#!resolve" or "#!" directive) are
# copied straight out of the source directory into bin/ in the package, but the package template
# expects the source path to be relative to root_build_dir, so we first rebase to that.
{
name = "resolve_once"
source = rebase_path("test_bins/resolve_once", root_build_dir)
},
{
name = "resolve_twice"
source = rebase_path("test_bins/resolve_twice", root_build_dir)
},
{
name = "resolve_infinite_loop"
source = rebase_path("test_bins/resolve_infinite_loop", root_build_dir)
},
{
name = "resolve_to_not_found"
source = rebase_path("test_bins/resolve_to_not_found", root_build_dir)
},
{
name = "echo_arguments.sh"
source = rebase_path("test_bins/echo_arguments.sh", root_build_dir)
},
{
name = "use_script_as_interpreter"
source =
rebase_path("test_bins/use_script_as_interpreter", root_build_dir)
},
{
name = "shebang_infinite_loop"
source = rebase_path("test_bins/shebang_infinite_loop", root_build_dir)
},
{
name = "attempt_use_shell_outside_package.sh"
source = rebase_path("test_bins/attempt_use_shell_outside_package.sh",
root_build_dir)
},
{
name = "too_long_shebang"
source = rebase_path("test_bins/too_long_shebang", root_build_dir)
},
{
name = "use_resolve_from_shebang"
source = rebase_path("test_bins/use_resolve_from_shebang", root_build_dir)
},
{
name = "use_shebang_from_resolve"
source = rebase_path("test_bins/use_shebang_from_resolve", root_build_dir)
},
]
tests = [
{
name = "fdio_spawn_tests"
environments = basic_envs
},
]
}