blob: e835bbb751c05a682b4367ca2ec6c857a7e8bf34 [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/components.gni")
import("//build/rust/rustc_binary.gni")
import("//build/rust/rustc_test.gni")
# Run all tests with:
# fx test //src/sys/build/tests
group("tests") {
deps = [
":echo-integration-test",
":launcher-integration-tests",
":readfile-unittest",
":return_zero_package",
":twoplustwo-cpp-unittest",
":twoplustwo-rust-unittest",
]
testonly = true
}
executable("return_zero") {
sources = [ "return_zero.cc" ]
testonly = true
}
fuchsia_component("return_zero_component") {
manifest = "meta/return_zero.cmx"
testonly = true
deps = [ ":return_zero" ]
}
fuchsia_test_package("return_zero_package") {
package_name = "return-zero-package"
test_components = [ ":return_zero_component" ]
}
executable("twoplustwo_cpp") {
sources = [ "two_plus_two.cc" ]
testonly = true
deps = [
"//src/lib/fxl/test:gtest_main",
"//third_party/googletest:gtest",
]
}
fuchsia_unittest_package("twoplustwo-cpp-unittest") {
deps = [ ":twoplustwo_cpp" ]
}
rustc_test("twoplustwo_rust") {
source_root = "two_plus_two.rs"
sources = [ "two_plus_two.rs" ]
}
fuchsia_unittest_package("twoplustwo-rust-unittest") {
deps = [ ":twoplustwo_rust" ]
}
rustc_test("read_file_test") {
source_root = "read_file.rs"
sources = [ "read_file.rs" ]
}
resource("hello_world.txt") {
sources = [ "hello_world.txt" ]
outputs = [ "data/hello_world.txt" ]
}
fuchsia_unittest_package("readfile-unittest") {
deps = [
":hello_world.txt",
":read_file_test",
]
}
fuchsia_component("echo-server") {
manifest = "meta/echo_server_go.cmx"
deps = [ "//garnet/examples/fidl/echo_server_go:echo_server_go_bin" ]
}
rustc_test("echo_client_test") {
source_root = "echo_client.rs"
deps = [
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-component",
"//src/testing/fidl:placeholders-rustc",
"//third_party/rust_crates:anyhow",
]
sources = [ "echo_client.rs" ]
}
fuchsia_test_component("echo-client-test") {
manifest = "meta/echo_client_test.cmx"
deps = [ ":echo_client_test" ]
}
fuchsia_test_package("echo-integration-test") {
test_components = [
":echo-client-test",
# Demonstrate that you can include multiple tests in the same package
":return_zero_component",
]
deps = [ ":echo-server" ]
test_specs = {
environments = [ emu_env ]
}
}
group("launcher-integration-tests") {
testonly = true
deps = [
":launcher-integration-test",
":return-zero-component-named",
":return-zero-package-component-named",
":return-zero-package-named",
":return-zero-unnamed",
]
}
rustc_test("launcher_test") {
source_root = "launcher.rs"
deps = [
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-component",
"//src/testing/fidl:placeholders-rustc",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:clap",
]
sources = [ "launcher.rs" ]
}
fuchsia_package_with_single_component("return-zero-unnamed") {
testonly = true
manifest = "meta/return_zero.cmx"
deps = [ ":return_zero" ]
}
fuchsia_package_with_single_component("return-zero-package-named") {
testonly = true
package_name = "return-zero"
manifest = "meta/return_zero.cmx"
deps = [ ":return_zero" ]
}
fuchsia_package_with_single_component("return-zero-component-named") {
testonly = true
component_name = "return-zero"
manifest = "meta/return_zero.cmx"
deps = [ ":return_zero" ]
}
fuchsia_package_with_single_component("return-zero-package-component-named") {
testonly = true
package_name = "return-zero-package-name"
component_name = "return-zero-component-name"
manifest = "meta/return_zero.cmx"
deps = [ ":return_zero" ]
}
fuchsia_test_component("launcher-test") {
manifest = "meta/launcher_test.cmx"
deps = [ ":launcher_test" ]
}
fuchsia_test_package("launcher-integration-test") {
# Demonstrate that `fuchsia_package_with_single_component` generates packages
# with single components and those packages have the expected names. See the
# launcher test binary to learn more.
test_components = [ ":launcher-test" ]
}