summaryrefslogtreecommitdiffstats
path: root/third_party/rust/serial_test/src/lib.rs
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/src/lib.rs
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/src/lib.rs')
-rw-r--r--third_party/rust/serial_test/src/lib.rs60
1 files changed, 60 insertions, 0 deletions
diff --git a/third_party/rust/serial_test/src/lib.rs b/third_party/rust/serial_test/src/lib.rs
new file mode 100644
index 0000000000..e83eec042d
--- /dev/null
+++ b/third_party/rust/serial_test/src/lib.rs
@@ -0,0 +1,60 @@
+#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
+
+//! # serial_test
+//! `serial_test` allows for the creation of serialised Rust tests using the [serial](macro@serial) attribute
+//! e.g.
+//! ````
+//! #[test]
+//! #[serial]
+//! fn test_serial_one() {
+//! // Do things
+//! }
+//!
+//! #[test]
+//! #[serial]
+//! fn test_serial_another() {
+//! // Do things
+//! }
+//! ````
+//! Multiple tests with the [serial](macro@serial) attribute are guaranteed to be executed in serial. Ordering
+//! of the tests is not guaranteed however.
+//!
+//! For cases like doctests and integration tests where the tests are run as separate processes, we also support
+//! [file_serial](macro@file_serial), with similar properties but based off file locking. Note that there are no
+//! guarantees about one test with [serial](macro@serial) and another with [file_serial](macro@file_serial)
+//! as they lock using different methods.
+//! ````
+//! #[test]
+//! #[file_serial]
+//! fn test_serial_three() {
+//! // Do things
+//! }
+//! ````
+//!
+//! ## Feature flags
+#![cfg_attr(
+ feature = "docsrs",
+ cfg_attr(doc, doc = ::document_features::document_features!())
+)]
+
+mod code_lock;
+#[cfg(feature = "file_locks")]
+mod file_lock;
+
+pub use code_lock::{
+ local_async_serial_core, local_async_serial_core_with_return, local_serial_core,
+ local_serial_core_with_return,
+};
+
+#[cfg(feature = "file_locks")]
+pub use file_lock::{
+ fs_async_serial_core, fs_async_serial_core_with_return, fs_serial_core,
+ fs_serial_core_with_return,
+};
+
+// Re-export #[serial/file_serial].
+#[allow(unused_imports)]
+pub use serial_test_derive::serial;
+
+#[cfg(feature = "file_locks")]
+pub use serial_test_derive::file_serial;