blob: f09f77e414ad4f781da542fabc27c467aab73e11 [file]
{{>copyright comment="//"}}
use fdf_component::{Driver, DriverContext, Node, driver_register};
use log::info;
use zx::Status;
struct {{pascal_case PROJECT_NAME}} {
node: Node,
}
driver_register!({{pascal_case PROJECT_NAME}});
impl Driver for {{pascal_case PROJECT_NAME}} {
const NAME: &str = "{{snake_case PROJECT_NAME}}";
async fn start(mut context: DriverContext) -> Result<Self, Status> {
info!("{{pascal_case PROJECT_NAME}}::start()");
let node = context.take_node()?;
Ok(Self { node })
}
async fn stop(&self) {
info!("{{pascal_case PROJECT_NAME}}::stop()");
}
}
#[cfg(test)]
mod tests {
use super::*;
use fdf_component::testing::harness::TestHarness;
#[fuchsia::test]
async fn test_driver_start() {
let mut harness = TestHarness::<{{pascal_case PROJECT_NAME}}>::new();
let started_driver = harness.start_driver().await.unwrap();
// Verify driver started successfully
assert!(true);
started_driver.stop_driver().await;
}
}