blob: 5bd2478f6b1b935bc7e7969bbf810fab30100f36 [file] [log] [blame] [view]
# Driver Test Realm Examples
Here are a few examples of Driver Test Realm being used in various languages.
There are 2 different ways of using Driver Test Realm.
## Hermetic
This is the recommended way to use Driver Test Realm. Every test gets its
own version of the Driver Test Realm component. This means every test is
hermetic, or isolated, from the other tests. Tests will not share any
state, as each Driver Test Realm is unique to that test.
## Non Hermetic
The non-hermetic way of using Driver Test Realm is to have a single Driver
Test Realm child component that is shared between every test instance.
The test author needs to be extra careful to make sure that their driver's
state is cleared between each tests so that the individual tests do not
interact with each other.
Note: In specific languages (like Rust) all tests are run simultaneously in
their own thread, which means using the non-hermetic Driver Test Realm
has the potential for data races if each test is interacting with the same
driver.
### Simple
This version of a non-hermetic test does not require any setup, it uses
the default configuration of Driver Test Realm. This is the same as
starting Driver Test Realm with empty arguments.