blob: 2635f38e3f0d19f2ee13b17f6f42dc717b14361c [file] [log] [blame] [view]
# Metadata Integration Test
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`.
## Drivers
### test_root
The `test_root`'s purpose is to create nodes that the `metadata_sender` driver
variants can bind to.
### metadata_sender
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.
### metadata_retriever
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.
### metadata_forwarder
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.