|  | # Copyright 2018 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/config.gni") | 
|  | import("//build/fidl/fidl.gni") | 
|  | import("//src/sys/build/components.gni") | 
|  |  | 
|  | fidl("interface") { | 
|  | # TODO(fxbug.dev/35879): Remove lint exclusions by fixing known FIDL lint violations in this target | 
|  | excluded_checks = [ "string-bounds-not-specified" ] | 
|  |  | 
|  | testonly = true | 
|  |  | 
|  | name = "test.sysmgr" | 
|  | sources = [ "interface.test.fidl" ] | 
|  | } | 
|  |  | 
|  | executable("test_sysmgr_service_bin") { | 
|  | testonly = true | 
|  | output_name = "test_sysmgr_service" | 
|  |  | 
|  | sources = [ "test_sysmgr_service.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | ":interface", | 
|  | "//sdk/lib/fidl/cpp", | 
|  | "//sdk/lib/sys/cpp", | 
|  | "//sdk/lib/syslog/cpp", | 
|  | "//zircon/public/lib/zx", | 
|  | "//zircon/system/ulib/async-default", | 
|  | "//zircon/system/ulib/async-loop:async-loop-cpp", | 
|  | "//zircon/system/ulib/async-loop:async-loop-default", | 
|  | ] | 
|  | } | 
|  |  | 
|  | fuchsia_component("test_sysmgr_service") { | 
|  | testonly = true | 
|  | manifest = "meta/test_sysmgr_service.cmx" | 
|  | deps = [ ":test_sysmgr_service_bin" ] | 
|  | } | 
|  |  | 
|  | executable("mock_resolver_bin") { | 
|  | testonly = true | 
|  | output_name = "mock_resolver" | 
|  |  | 
|  | sources = [ "mock_resolver.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | "//sdk/fidl/fuchsia.pkg", | 
|  | "//sdk/lib/fidl/cpp", | 
|  | "//sdk/lib/sys/cpp", | 
|  | "//src/lib/fxl", | 
|  | "//zircon/public/lib/zx", | 
|  | "//zircon/system/ulib/async-default", | 
|  | "//zircon/system/ulib/async-loop:async-loop-cpp", | 
|  | "//zircon/system/ulib/async-loop:async-loop-default", | 
|  | ] | 
|  | } | 
|  |  | 
|  | fuchsia_component("mock_resolver") { | 
|  | testonly = true | 
|  | manifest = "meta/mock_resolver.cmx" | 
|  | deps = [ ":mock_resolver_bin" ] | 
|  | } | 
|  |  | 
|  | executable("service_startup_test_bin") { | 
|  | testonly = true | 
|  | output_name = "service_startup_test" | 
|  | sources = [ "service_startup_test.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | ":interface", | 
|  | "//garnet/examples/fidl/services:echo", | 
|  | "//garnet/public/lib/gtest", | 
|  | "//sdk/fidl/fuchsia.logger", | 
|  | "//sdk/lib/sys/cpp", | 
|  | "//src/lib/fxl", | 
|  | "//src/lib/fxl/test:gtest_main", | 
|  | "//third_party/googletest:gmock", | 
|  | ] | 
|  |  | 
|  | # TODO(fxbug.dev/46846): Fix the leaks and remove this. | 
|  | deps += [ "//build/config/sanitizers:suppress-lsan.DO-NOT-USE-THIS" ] | 
|  | } | 
|  |  | 
|  | fuchsia_component("service_startup_test") { | 
|  | testonly = true | 
|  | manifest = "meta/service_startup_test.cmx" | 
|  | deps = [ | 
|  | ":service_startup_test_bin", | 
|  | ":sysmgr_integration_test_observer_config", | 
|  | ] | 
|  | } | 
|  |  | 
|  | executable("package_updating_loader_test_bin") { | 
|  | testonly = true | 
|  | output_name = "package_updating_loader_test" | 
|  |  | 
|  | sources = [ "package_updating_loader_test.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | ":interface", | 
|  | "//garnet/examples/fidl/services:echo", | 
|  | "//garnet/public/lib/gtest", | 
|  | "//sdk/lib/sys/cpp/testing:integration", | 
|  | "//src/lib/fxl", | 
|  | "//src/lib/fxl/test:gtest_main", | 
|  | "//src/sys/sysmgr:lib", | 
|  | "//zircon/public/lib/zx", | 
|  | "//zircon/system/ulib/fs", | 
|  | ] | 
|  | } | 
|  |  | 
|  | fuchsia_component("package_updating_loader_test") { | 
|  | testonly = true | 
|  | manifest = "meta/package_updating_loader_test.cmx" | 
|  | deps = [ ":package_updating_loader_test_bin" ] | 
|  | } | 
|  |  | 
|  | config_data("sysmgr_integration_test_observer_config") { | 
|  | for_pkg = "sysmgr-integration-tests" | 
|  | outputs = [ "service_startup_test.config" ] | 
|  | sources = [ "config/service_startup_test.config" ] | 
|  | } | 
|  |  | 
|  | resource("echo_server_bin") { | 
|  | sources = [ "$root_out_dir/echo_server_rust" ] | 
|  | outputs = [ "bin/echo_server" ] | 
|  | } | 
|  |  | 
|  | fuchsia_component("echo_server_rust") { | 
|  | testonly = true | 
|  | manifest = rebase_path("//garnet/examples/fidl/meta/echo_server.cmx") | 
|  | deps = [ | 
|  | ":echo_server_bin", | 
|  | "//garnet/examples/fidl/echo_server_rust:echo_server_rust_bin", | 
|  | ] | 
|  | } | 
|  |  | 
|  | fuchsia_test_package("sysmgr-integration-tests") { | 
|  | test_components = [ | 
|  | ":service_startup_test", | 
|  | ":package_updating_loader_test", | 
|  | ] | 
|  | deps = [ | 
|  | ":echo_server_rust", | 
|  | ":mock_resolver", | 
|  | ":test_sysmgr_service", | 
|  | "//src/sys/sysmgr:sysmgr_component", | 
|  | ] | 
|  | } | 
|  |  | 
|  | group("integration_tests") { | 
|  | testonly = true | 
|  | deps = [ ":sysmgr-integration-tests" ] | 
|  | } |