blob: af6c5d16423a4f433627a2f3177b79384a426d2e [file]
# Copyright 2025 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_library.gni")
rustc_library("starnix_kernel_runner") {
name = "starnix_kernel_runner"
edition = "2024"
version = "0.1.0"
with_unit_tests = true
# TODO(https://fxbug.dev/42059075): Re-enable starnix in these environments.
exclude_toolchain_tags = [
"asan",
"hwasan",
]
sources = [
"src/component_runner.rs",
"src/container.rs",
"src/features.rs",
"src/lib.rs",
"src/mounts.rs",
"src/serve_protocols.rs",
]
deps = [
"//sdk/fidl/fuchsia.boot:fuchsia.boot_rust",
"//sdk/fidl/fuchsia.component:fuchsia.component_rust",
"//sdk/fidl/fuchsia.component.runner:fuchsia.component.runner_rust",
"//sdk/fidl/fuchsia.element:fuchsia.element_rust",
"//sdk/fidl/fuchsia.feedback:fuchsia.feedback_rust",
"//sdk/fidl/fuchsia.io:fuchsia.io_rust",
"//sdk/fidl/fuchsia.mem:fuchsia.mem_rust",
"//sdk/fidl/fuchsia.memory.attribution:fuchsia.memory.attribution_rust",
"//sdk/fidl/fuchsia.posix:fuchsia.posix_rust",
"//sdk/fidl/fuchsia.process:fuchsia.process_rust",
"//sdk/fidl/fuchsia.starnix.binder:fuchsia.starnix.binder_rust",
"//sdk/fidl/fuchsia.starnix.container:fuchsia.starnix.container_rust",
"//sdk/fidl/fuchsia.sysinfo:fuchsia.sysinfo_rust",
"//sdk/fidl/fuchsia.time.external:fuchsia.time.external_rust",
"//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_rust",
"//sdk/fidl/fuchsia.ui.input3:fuchsia.ui.input3_rust",
"//sdk/fidl/fuchsia.ui.policy:fuchsia.ui.policy_rust",
"//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views_rust",
"//sdk/rust/zx",
"//src/lib/diagnostics/inspect/rust",
"//src/lib/fdio/rust:fdio",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-component",
"//src/lib/fuchsia-runtime",
"//src/lib/trace/rust:trace",
"//src/lib/ui/fuchsia-scenic",
"//src/performance/memory/attribution/server",
"//src/starnix/kernel:starnix_container_structured_config",
"//src/starnix/kernel/core",
"//src/starnix/kernel/syscall_loop:starnix_syscall_loop",
"//src/starnix/lib/bootreason",
"//src/starnix/lib/devicetree",
"//src/starnix/lib/features:starnix_features",
"//src/starnix/lib/starnix_logging",
"//src/starnix/lib/starnix_sync",
"//src/starnix/lib/starnix_task_command",
"//src/starnix/lib/starnix_types",
"//src/starnix/lib/starnix_uapi",
"//src/starnix/modules",
"//src/starnix/modules/android_usb",
"//src/starnix/modules/ashmem",
"//src/starnix/modules/boot",
"//src/starnix/modules/consent_sync",
"//src/starnix/modules/fastrpc",
"//src/starnix/modules/framebuffer",
"//src/starnix/modules/gpu",
"//src/starnix/modules/gralloc",
"//src/starnix/modules/hvdcp_opti:hvdcp_opti_module",
"//src/starnix/modules/input",
"//src/starnix/modules/kgsl",
"//src/starnix/modules/layeredfs",
"//src/starnix/modules/magma",
"//src/starnix/modules/nanohub",
"//src/starnix/modules/nmfs",
"//src/starnix/modules/overlayfs",
"//src/starnix/modules/perfetto_consumer",
"//src/starnix/modules/rtc",
"//src/starnix/modules/thermal",
"//src/starnix/modules/touch_power_policy",
"//src/starnix/modules/wakeup_test",
"//src/sys/lib/fuchsia-zbi",
"//src/sys/lib/runner",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:bstr",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:rand",
"//third_party/rust_crates:serde",
]
test_deps = [
"//src/lib/fuchsia",
"//third_party/rust_crates:assert_matches",
]
configs += [ "//src/starnix/build:kernel_library_config" ]
# LTO OOMs out on RBE default workers, so use bigger workers.
if (is_lto_variant || optimize == "size_lto" || optimize == "size_thinlto") {
_concurrent_jobs = concurrent_jobs.link_highmem
configs += _concurrent_jobs.configs
forward_variables_from(_concurrent_jobs.vars, "*")
}
}
fuchsia_unittest_package("starnix_kernel_runner-tests") {
deps = [ ":starnix_kernel_runner_test" ]
manifest = "meta/starnix_kernel_runner_tests.cml"
test_specs = {
log_settings = {
# Tests exercise failure cases, so ERROR logs are expected.
max_severity = "ERROR"
}
}
test_type = "starnix"
}
group("tests") {
testonly = true
deps = [ ":starnix_kernel_runner-tests" ]
}