PSA: New Driver Integration test framework: DriverTestRealm

7 views
Skip to first unread message

David Gilhooley

unread,
Oct 14, 2021, 11:24:19 AM10/14/21
to drive...@fuchsia.dev

If you don’t write integration tests that use drivers feel free to disregard this email.


Hello everyone!


The Driver Framework team has created a new integration test framework, DriverTestRealm. This is the replacement for Isolated Devmgr. DriverTestRealm is going to be supported long term, its API is going to be in the SDK, and it will eventually be supported Out-of-Tree.


NOTE: Now that DriverTestRealm is ready for use, we will be preventing new tests from using IsolatedDevmgr.


DriverTestRealm runs drivers in a hermetic environment. It is useful for driver authors to test their drivers, and for system developers to run integration tests that use specific driver stacks. DriverTestRealm provides a hermetic version of all of the Driver Frameworks APIs, and provides an environment that is nearly identical to a running system.


If you’re interested in using it, please see the documentation and examples here:

https://fuchsia.dev/fuchsia-src/development/drivers/testing/driver_test_realm?hl=en 


We have examples of using DriverTestRealm with both C++ and Rust:

https://cs.opensource.google/fuchsia/fuchsia/+/main:examples/drivers/driver_test_realm/ 



FAQ:


Why use DriverTestRealm over Isolated Devmgr?


DriverTestRealm has a well-defined API that will be supported long term. It can be configured via the FIDL table fuchsia.driver.test/RealmArgs.


DriverTestRealm uses much less boilerplate code to use. In the general case, you will not even have to write a component manifest for your test!


DriverTestRealm will support Drivers-As-Components automatically.


DriverTestRealm will have better debugging support through the `ffx drivers` tooling.


DriverTestRealm doesn’t support <my specific use case>?


If this happens please let us know! We are happy to add more features and help test authors develop their tests.


Do you have any examples of migrating tests over?


Yes! We will be publishing a migration guide soon, but here are some example CLs:


fxrev.dev/591982

fxrev.dev/592581

fxrev.dev/592681


Reply all
Reply to author
Forward
0 new messages