blob: 526f9fc9e2351e3edda9a48a7463a44c17c958ef [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/test.gni")
# Provides a C++ implementation of fuchsia.hardware.display.Provider, which returns a connection to
# the default display controller (via a proxied connection to the driver-provided version). This
# makes it easy for a component to implement this service.
#
# NOTE: the component's sandbox must contain "dev": "class/display-controller".
source_set("hdcp_service") {
sources = [
"hardware_display_controller_provider_impl.cc",
"hardware_display_controller_provider_impl.h",
]
public_deps = [
"//sdk/fidl/fuchsia.ui.display",
"//sdk/lib/fit",
"//src/lib/fsl",
"//src/lib/fxl",
"//zircon/system/ulib/zx",
]
deps = [
"//sdk/fidl/fuchsia.hardware.display",
"//sdk/fidl/fuchsia.hardware.display:fuchsia.hardware.display_c",
"//sdk/lib/sys/cpp:cpp",
"//src/lib/files",
"//zircon/system/ulib/async:async-cpp",
"//zircon/system/ulib/fbl",
"//zircon/system/ulib/fdio-caller",
]
# TODO(fxbug.dev/95833): This target uses the deprecated C bindings.
# Consider switching to the C++ bindings. See linked bug for details.
configs += [ "//build/c:fidl-deprecated-c-bindings" ]
}
# Provides a C++ utility function GetHardwareDisplayController() which connects to and interacts
# with the fuchsia.hardware.display.Provider service, found within the component's environment.
source_set("hdcp_client") {
sources = [
"get_hardware_display_controller.cc",
"get_hardware_display_controller.h",
]
public_deps = [
"//sdk/fidl/fuchsia.hardware.display",
"//sdk/lib/fit-promise",
]
deps = [
":hdcp_service",
"//sdk/lib/fdio",
"//sdk/lib/syslog/cpp",
"//zircon/system/ulib/trace",
]
}
# Below tests exercise the different code paths caused by having fake-display injected via
# facets:injected-services in .cmx files. We have two packages to add two different .cmx configs.
test("get_hardware_display_controller_test") {
sources = [ "tests/get_hardware_display_controller_test.cc" ]
deps = [
":hdcp_client",
":hdcp_service",
"//sdk/lib/fit-promise",
"//sdk/lib/sys/cpp:cpp",
"//src/lib/fxl/test:gtest_main",
"//src/lib/testing/loop_fixture",
"//third_party/googletest:gtest",
]
}
fuchsia_unittest_package("test") {
package_name = "get_hardware_display_controller_test"
deps = [ ":get_hardware_display_controller_test" ]
manifest = "tests/meta/get_hardware_display_controller_test.cml"
test_specs = {
log_settings = {
max_severity = "ERROR"
}
}
}
test("get_hardware_display_controller_inject_services_test") {
sources = [ "tests/get_hardware_display_controller_inject_services_test.cc" ]
deps = [
":hdcp_client",
":hdcp_service",
"//sdk/lib/fit-promise",
"//src/lib/fxl/test:gtest_main",
"//src/lib/testing/loop_fixture",
"//third_party/googletest:gtest",
]
}
fuchsia_unittest_package("inject_service_test") {
package_name = "get_hardware_display_controller_inject_services_test"
deps = [
":get_hardware_display_controller_inject_services_test",
"//src/ui/bin/hardware_display_controller_provider:fake-hardware-display-controller-provider-cmv2-component",
]
manifest =
"tests/meta/get_hardware_display_controller_inject_services_test.cml"
test_specs = {
log_settings = {
max_severity = "ERROR"
}
}
}