summaryrefslogtreecommitdiffstats
path: root/third_party/rust/serial_test/README.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /third_party/rust/serial_test/README.md
parentInitial commit. (diff)
downloadfirefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz
firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/serial_test/README.md')
-rw-r--r--third_party/rust/serial_test/README.md51
1 files changed, 51 insertions, 0 deletions
diff --git a/third_party/rust/serial_test/README.md b/third_party/rust/serial_test/README.md
new file mode 100644
index 0000000000..d379a1d2fd
--- /dev/null
+++ b/third_party/rust/serial_test/README.md
@@ -0,0 +1,51 @@
+# serial_test
+[![Version](https://img.shields.io/crates/v/serial_test.svg)](https://crates.io/crates/serial_test)
+[![Downloads](https://img.shields.io/crates/d/serial_test)](https://crates.io/crates/serial_test)
+[![Docs](https://docs.rs/serial_test/badge.svg)](https://docs.rs/serial_test/)
+[![MIT license](https://img.shields.io/crates/l/serial_test.svg)](./LICENSE)
+[![Build Status](https://github.com/palfrey/serial_test/workflows/Continuous%20integration/badge.svg?branch=main)](https://github.com/palfrey/serial_test/actions)
+[![MSRV: 1.39.0](https://flat.badgen.net/badge/MSRV/1.39.0/purple)](https://blog.rust-lang.org/2019/11/07/Rust-1.39.0.html)
+
+`serial_test` allows for the creation of serialised Rust tests using the `serial` attribute
+e.g.
+```rust
+#[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](https://blog.rust-lang.org/2019/11/07/Async-await-stable.html) support
+
+Add to your Cargo.toml
+```toml
+[dev-dependencies]
+serial_test = "*"
+```
+
+plus `use serial_test::serial;` (for Rust 2018) or
+```rust
+#[macro_use]
+extern crate serial_test;
+```
+for earlier versions.
+
+You can then either add `#[serial]` or `#[serial(some_text)]` to tests as required.