blob: aa2283d13ef80105b80f1e99c5eb780c1b79056b [file] [view]
# Rust GoogleTest Interop
This directory contains integration glue to write Rust unit tests that execute
within `openscreen_unittests` alongside C++ GoogleTest suites.
## Origin and Upstream Tracking
This implementation is vendored from Chromium's `//testing/rust_gtest_interop`.
Currently, standalone repositories using the Chromium build system must vendor
this glue code directly. A generic reuse mechanism across Chromium and
standalone repositories is tracked upstream in
[crbug.com/559867579](https://crbug.com/559867579). Once available, this
vendored copy can be replaced with the upstream shared package.
## Usage
In Rust code:
```rust
use rust_gtest_interop::prelude::*;
#[gtest(MyTestSuite, MyTestCase)]
fn test_something() {
expect_eq!(2 + 2, 4);
expect_true!(true);
}
```
In `BUILD.gn`:
```gn
openscreen_rust_static_library("my_rust_tests") {
testonly = true
sources = [ "my_test.rs" ]
deps = [
"//testing/rust_gtest_interop",
]
}
```
And add `:my_rust_tests` to `deps` of `openscreen_unittests`.