fune/third_party/rust/serial_test
Bobby Holley f7234adda2 Bug 1787306 - Upgrade serial_test to 0.6 to leverage Embark's audit. r=supply-chain-reviewers,nika
This unfortunately pulls in rustversion but it was easy enough to audit.

Differential Revision: https://phabricator.services.mozilla.com/D155641
2022-08-26 04:06:55 +00:00
..
src Bug 1787306 - Upgrade serial_test to 0.6 to leverage Embark's audit. r=supply-chain-reviewers,nika 2022-08-26 04:06:55 +00:00
tests Bug 1787306 - Upgrade serial_test to 0.6 to leverage Embark's audit. r=supply-chain-reviewers,nika 2022-08-26 04:06:55 +00:00
.cargo-checksum.json Bug 1787306 - Upgrade serial_test to 0.6 to leverage Embark's audit. r=supply-chain-reviewers,nika 2022-08-26 04:06:55 +00:00
Cargo.toml Bug 1787306 - Upgrade serial_test to 0.6 to leverage Embark's audit. r=supply-chain-reviewers,nika 2022-08-26 04:06:55 +00:00
LICENSE
README.md Bug 1787306 - Upgrade serial_test to 0.6 to leverage Embark's audit. r=supply-chain-reviewers,nika 2022-08-26 04:06:55 +00:00

serial_test

Version Downloads Docs MIT license Build Status MSRV: 1.39.0

serial_test allows for the creation of serialised Rust tests using the serial attribute e.g.

#[test]
#[serial]
fn test_serial_one() {
  // Do things
}

#[test]
#[serial]
fn test_serial_another() {
  // Do things
}

#[tokio::test]
#[serial]
async fn test_serial_another() {
  // Do things asynchronously
}

Multiple tests with the serial attribute are guaranteed to be executed in serial. Ordering of the tests is not guaranteed however. Tests without the serial attribute may run at any time, including in parallel to tests marked as serial. Note that if you're using an async test reactor attribute (e.g. tokio::test or actix_rt::test) then they should be listed before serial, otherwise we don't get an async function and things break. There's now an error for this case to improve debugging.

Usage

We require at least Rust 1.39 for async/await support

Add to your Cargo.toml

[dev-dependencies]
serial_test = "*"

plus use serial_test::serial; (for Rust 2018) or

#[macro_use]
extern crate serial_test;

for earlier versions.

You can then either add #[serial] or #[serial(some_text)] to tests as required.