|  | # 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/dist/component_manifest_resources.gni") | 
|  | import("//build/rust/rustc_test.gni") | 
|  |  | 
|  | executable("startup") { | 
|  | sources = [ "main.cc" ] | 
|  |  | 
|  | deps = [ | 
|  | "//sdk/lib/fdio", | 
|  | "//sdk/lib/fit", | 
|  | "//src/session/fidl/fuchsia.sessionmanager:fuchsia.sessionmanager_llcpp", | 
|  | "//src/sys/appmgr/fidl/fuchsia.appmgr:fuchsia.appmgr_llcpp", | 
|  | "//zircon/system/ulib/async-loop:async-loop-cpp", | 
|  | "//zircon/system/ulib/async-loop:async-loop-default", | 
|  | "//zircon/system/ulib/fbl", | 
|  | "//zircon/system/ulib/fidl-async:fidl-async-cpp", | 
|  | ] | 
|  |  | 
|  | # TODO(fxbug.dev/69585): This target uses raw zx::channel with LLCPP which is deprecated. | 
|  | # Please migrate to typed channel APIs (fidl::ClientEnd<T>, fidl::ServerEnd<T>). | 
|  | # See linked bug for details. | 
|  | configs += [ "//build/cpp:fidl-llcpp-deprecated-raw-channels" ] | 
|  | } | 
|  |  | 
|  | component_manifest_resources("meta") { | 
|  | sources = [ "meta/startup.cml" ] | 
|  | } | 
|  |  | 
|  | group("bootfs") { | 
|  | deps = [ | 
|  | ":meta", | 
|  | ":startup", | 
|  | ] | 
|  | } | 
|  |  | 
|  | fuchsia_component("component_for_test") { | 
|  | component_name = "startup_for_test" | 
|  | deps = [ ":startup" ] | 
|  | manifest = "meta/startup.cml" | 
|  | } | 
|  |  | 
|  | fuchsia_component("fake_appmgr") { | 
|  | component_name = "appmgr" | 
|  | manifest = "src/tests/meta/fake-appmgr.cml" | 
|  | } | 
|  |  | 
|  | fuchsia_component("test_root") { | 
|  | component_name = "root" | 
|  | manifest = "src/tests/meta/root.cml" | 
|  | } | 
|  |  | 
|  | rustc_test("startup_integration_test_bin") { | 
|  | name = "startup_integration_test" | 
|  | edition = "2018" | 
|  | source_root = "src/tests/integration_test.rs" | 
|  |  | 
|  | deps = [ | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/sys/component_manager/testing:test_utils_lib", | 
|  | "//src/sys/lib/component-events", | 
|  | ] | 
|  |  | 
|  | sources = [ "src/tests/integration_test.rs" ] | 
|  | } | 
|  |  | 
|  | fuchsia_component("startup_integration_test_component") { | 
|  | testonly = true | 
|  | component_name = "startup-integration-test-component" | 
|  | deps = [ ":startup_integration_test_bin" ] | 
|  | manifest = "src/tests/meta/integration-test.cmx" | 
|  | } | 
|  |  | 
|  | fuchsia_test_package("startup_integration_test") { | 
|  | package_name = "startup-integration-test" | 
|  | test_components = [ ":startup_integration_test_component" ] | 
|  | deps = [ | 
|  | ":component_for_test", | 
|  | ":fake_appmgr", | 
|  | ":test_root", | 
|  | "//src/sys/component_manager:component-manager-cmp", | 
|  | ] | 
|  | } | 
|  |  | 
|  | group("tests") { | 
|  | testonly = true | 
|  | deps = [ ":startup_integration_test" ] | 
|  | } |