blob: 05202ce7f27d8022acfc86391f1ffbf0d14c1ef1 [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/dist/component_manifest_resources.gni")
import("//build/test.gni")
import("//src/sys/build/components.gni")
group("tests") {
testonly = true
deps = [ ":driver-manager-tests" ]
}
# Common source files and dependencies between :coordinator and :test
source_set("lib") {
visibility = [ ":*" ]
sources = [
"binding.cc",
"binding_internal.h",
"component_lifecycle.cc",
"component_lifecycle.h",
"composite_device.cc",
"coordinator.cc",
"coordinator.h",
"devfs.cc",
"devfs.h",
"device.cc",
"device.h",
"driver.cc",
"driver.h",
"driver_host.cc",
"driver_host.h",
"driver_host_loader_service.cc",
"driver_host_loader_service.h",
"driver_test_reporter.cc",
"driver_test_reporter.h",
"env.cc",
"fdio.cc",
"fidl.cc",
"init_task.cc",
"inspect.cc",
"resume_task.cc",
"suspend_task.cc",
"system_instance.cc",
"system_instance.h",
"system_state_manager.cc",
"system_state_manager.h",
"task.cc",
"unbind_task.cc",
"vmo_writer.cc",
]
public_deps = [
"//sdk/fidl/fuchsia.boot",
"//sdk/fidl/fuchsia.boot:fuchsia.boot_llcpp",
"//sdk/fidl/fuchsia.device.manager",
"//sdk/fidl/fuchsia.device.manager:fuchsia.device.manager_c",
"//sdk/fidl/fuchsia.device.manager:fuchsia.device.manager_llcpp",
"//sdk/fidl/fuchsia.driver.test:fuchsia.driver.test_c",
"//sdk/fidl/fuchsia.fshost:fuchsia.fshost_llcpp",
"//sdk/fidl/fuchsia.hardware.power.statecontrol",
"//sdk/fidl/fuchsia.hardware.power.statecontrol:fuchsia.hardware.power.statecontrol_c",
"//sdk/fidl/fuchsia.hardware.power.statecontrol:fuchsia.hardware.power.statecontrol_llcpp",
"//sdk/fidl/fuchsia.hardware.virtioconsole:fuchsia.hardware.virtioconsole_llcpp",
"//sdk/fidl/fuchsia.io:fuchsia.io_c",
"//sdk/fidl/fuchsia.kernel",
"//sdk/fidl/fuchsia.kernel:fuchsia.kernel_llcpp",
"//sdk/fidl/fuchsia.ldsvc:fuchsia.ldsvc_llcpp",
"//sdk/fidl/fuchsia.mem:fuchsia.mem_c",
"//sdk/fidl/fuchsia.power.manager:fuchsia.power.manager_llcpp",
"//sdk/fidl/fuchsia.process.lifecycle:fuchsia.process.lifecycle_llcpp",
"//sdk/lib/fdio",
"//sdk/lib/fdio:fdio-spawn-actions",
"//sdk/lib/fidl/cpp",
"//sdk/lib/sys/cpp",
"//src/devices/lib/log",
"//src/lib/ddk",
"//src/lib/files",
"//src/lib/loader_service",
"//src/storage/deprecated-fs-fidl-handler",
"//zircon/public/lib/fbl",
"//zircon/public/lib/fidl",
"//zircon/public/lib/fit",
"//zircon/public/lib/zircon-internal",
"//zircon/public/lib/zx",
"//zircon/public/lib/zxc",
"//zircon/system/ulib/async-default",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
"//zircon/system/ulib/devmgr-launcher",
"//zircon/system/ulib/driver-info",
"//zircon/system/ulib/fidl-async",
"//zircon/system/ulib/fidl-async:fidl-async-cpp",
"//zircon/system/ulib/fs",
"//zircon/system/ulib/fzl",
"//zircon/system/ulib/inspect",
"//zircon/system/ulib/inspector",
"//zircon/system/ulib/memfs",
"//zircon/system/ulib/memfs:memfs-cpp",
"//zircon/system/ulib/svc",
# TODO(fxb/38132): Migrate to the new bind rules and delete the below
"//src/lib/ddk:ddk-deprecated-binding-headers",
]
configs += [ "//build/config:all_source" ]
}
executable("driver_manager") {
sources = [ "main.cc" ]
deps = [
":lib",
"//src/sys/lib/stdout-to-debuglog/cpp",
]
configs += [ "//build/config:all_source" ]
}
test("driver_manager_test") {
sources = [
"autobind_tests.cc",
"binding_test.cc",
"composite_device_tests.cc",
"coordinator_test_utils.cc",
"init_tests.cc",
"inspect_test.cc",
"misc_tests.cc",
"multiple_device_test.cc",
"multiple_device_test_utils.cc",
"resume_tests.cc",
"suspend_tests.cc",
"system_instance_test.cc",
"task_test.cc",
"unbind_tests.cc",
]
deps = [
":lib",
"//sdk/lib/fdio",
"//sdk/lib/inspect/testing/cpp:zxtest",
"//zircon/public/lib/zxtest",
"//zircon/system/ulib/mock-boot-arguments",
]
}
fuchsia_unittest_component("driver-manager-test") {
manifest = "meta/driver-manager-test.cmx"
deps = [
":driver_manager_test",
"testing:ambient_vmex_test_util",
"testing:new_process_test_util",
"//src/devices/bin/driver_host",
"//src/devices/bus/drivers/platform",
"//src/devices/internal/drivers/fragment",
"//src/devices/tests/mock-device",
]
}
# This is a separate test binary because this test fixture uses gtest, not zxtest
test("driver_host_loader_service_test") {
sources = [ "driver_host_loader_service_test.cc" ]
deps = [
":lib",
"//src/lib/loader_service:loader_service_test_fixture",
]
}
fuchsia_unittest_component("driver-host-loader-service-test") {
manifest = "meta/driver-host-loader-service-test.cmx"
deps = [ ":driver_host_loader_service_test" ]
}
source_set("driver_runner") {
sources = [
"driver_runner.cc",
"driver_runner.h",
]
public_deps = [
"//sdk/fidl/fuchsia.component.runner",
"//sdk/fidl/fuchsia.component.runner:fuchsia.component.runner_llcpp",
"//sdk/fidl/fuchsia.driver.framework:fuchsia.driver.framework_llcpp",
"//sdk/fidl/fuchsia.sys2:fuchsia.sys2_llcpp",
"//src/devices/lib/driver2:llcpp",
"//src/devices/lib/log",
"//zircon/public/lib/zxc",
"//zircon/system/ulib/fs",
]
}
executable("driver_runner_test") {
testonly = true
sources = [ "driver_runner_test.cc" ]
deps = [
":driver_runner",
"//sdk/fidl/fuchsia.driver.framework",
"//sdk/fidl/fuchsia.sys2",
"//sdk/lib/sys/cpp/testing:unit",
"//src/lib/fxl/test:gtest_main",
"//src/lib/testing/loop_fixture",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
]
}
fuchsia_unittest_component("driver-runner-test") {
manifest = "meta/driver_runner_test.cml"
deps = [ ":driver_runner_test" ]
}
fuchsia_test_package("driver-manager-tests") {
test_components = [
":driver-host-loader-service-test",
":driver-manager-test",
":driver-runner-test",
]
}
component_manifest_resources("meta") {
sources = [ "meta/driver_manager.cml" ]
}
group("bootfs") {
deps = [
":driver_manager",
":meta",
]
}