The goal of :metadata_integration_test
is to make sure that drivers can send and receive metadata to each other using the //sdk/lib/driver/metadata/cpp
library. The test will spawn a driver test realm and include the following four drivers: test_root
, metadata_sender
, metadata_forwarder
, and metadata_retriever
.
The test_root
's purpose is to create nodes that the metadata_sender
driver variants can bind to.
The metadata_sender
's purpose is to serve metadata using fdf_metadata::MetadataServer
. The driver has two variants: metadata_sender_expose
which exposes the fuchsia.hardware.test.MetadataSenderService FIDL service in its component manifest and metadata_sender_no_expose
which does not. It can also create nodes that the metadata_forwarder
driver and metadata_retriever
driver variants can bid to.
The metadata_retriever
's purpose is to retrieve metadata via fdf_metadata::GetMetadata()
. It has two variants: metadata_retriever_use
which declares that the driver uses the metadata FIDL service in its component manifest and medatata_retriever_no_use
which does not.
The metadata_forwarder
's purpose is forward metadata using fdf_metadata::MetadataServer::ForwardAndServe()
. The metadata_forwarder
driver will create a child node that the metadata_retriever_use
driver can bind to.