Rust Test Adapter is a v2 component that launches a Rust test binary and accepts the resulting JSON. It translates that JSON result to the Fuchsia Test Service protocol and passes that response back to component_manager_for_test. This is a temporary component that will be replaced by the Rust Test Runner.
fx set core.x64 --with //bundles/buildbot:core --with //src/sys/test_adapters/rust fx build fx update
To use the Rust Test Adapter to run your tests you'll need to correctly configure your BUILD.gn and cml files.
The BUILD.gn package will include your binaries and tests like this.
package("my_rust_package") { deps = [ ":bin", ":bin_test", "//src/sys/test_adapters/rust", ] binaries = [ { name = "my_rust_package" }, { name = "rust_test_adapter" }, ] tests = [ { name = "my_rust_package_bin_test" }, ] meta = [ { path = "meta/my_rust_package_bin_test.cml" dest = "my_rust_package_bin_test.cm" }, ] }
In the cml file use the Rust Test Adapter as the binary and pass the full url to your package in the args for the program. You will also need to use
both fuchsia.process.Launcher
and fuchsia.logger.LogSink
.
{ program": { binary: "bin/rust_test_adapter", args: [ "/pkg/test/my_rust_package" ], }, use: [ { protocol: [ "/svc/fuchsia.process.Launcher", "/svc/fuchsia.logger.LogSink", ] }, ], }
Use the following fx set
to include the unit tests:
fx set core.x64 --with //bundles/buildbot:core
Launch the tests with the following command:
fx run-test my_rust_package
Currently the fuchsia.test.Suite protocol only has statuses for Passed
and Failed
. In the future it would be beneficial to add additional statuses such as Ignored
, Errored
, etc.