Driver examples

This page contains a list of the examples intended to demonstrate Fuchsia driver concepts.

Basic examples

These examples demonstrate common driver concepts:

  • Skeleton driver - The skeleton driver example is a minimal driver.

  • Template driver - The template driver example is a minimal driver built with SDK rules (which can be used in both the Fuchsia source checkout and Fuchsia SDK environments).

  • Simple driver - The simple driver example demonstrates how to write a driver with the following common patterns:

    • Adding logs
    • Adding a child node
    • Implementing stop functions
  • Metadata - The metadata example demonstrates how to define metadata types and pass metadata from a driver to its children.

Transport examples

These examples demonstrate communication between drivers:

  • Zircon transport - The Zircon transport example demonstrates a parent driver serving a FIDL protocol over Zircon transport and a child driver that connects and queries data from it.

  • Driver transport - The driver transport example demonstrates a parent driver serving a FIDL protocol over driver transport and a child driver that connects and queries data from it.

Bind examples

These examples demonstrate how to write and use bind libraries for drivers:

Test examples

These examples demonstrate writing unit and integration tests for drivers.

Unit tests

Unit test examples:

  • Simple driver - Barebones unit test for the simple driver example
  • Zircon transport - Unit test that verifies that the child driver can query from a fake FIDL zircon server
  • Driver transport - Unit test that verifies that the child driver can query from a fake FIDL driver server

Integration tests

The Driver Test Realm examples demonstrate how to write hermetic and non-hermetic integration tests for a driver.