diff options
| author | Botahamec <botahamec@outlook.com> | 2025-01-12 15:04:01 -0500 |
|---|---|---|
| committer | Botahamec <botahamec@outlook.com> | 2025-01-12 15:04:01 -0500 |
| commit | 280a61ad7b74019c7aad8b7306a0dd7cfb11359c (patch) | |
| tree | 40d97d4e183c1bc551194944876b099d875f361d /src/rwlock.rs | |
| parent | bf95904b3532a9175a7bfa14a3f216abbd15ee98 (diff) | |
More unit tests
Diffstat (limited to 'src/rwlock.rs')
| -rw-r--r-- | src/rwlock.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/rwlock.rs b/src/rwlock.rs index ea7d3f0..f78e648 100644 --- a/src/rwlock.rs +++ b/src/rwlock.rs @@ -117,6 +117,7 @@ pub struct RwLockWriteGuard<'a, 'key: 'a, T: ?Sized, Key: Keyable + 'key, R: Raw #[cfg(test)] mod tests { use crate::lockable::Lockable; + use crate::LockCollection; use crate::RwLock; use crate::ThreadKey; @@ -234,6 +235,21 @@ mod tests { } #[test] + fn write_ord() { + let key = ThreadKey::get().unwrap(); + let lock1: crate::RwLock<_> = RwLock::new(1); + let lock2: crate::RwLock<_> = RwLock::new(5); + let lock3: crate::RwLock<_> = RwLock::new(5); + let collection = LockCollection::try_new((&lock1, &lock2, &lock3)).unwrap(); + let guard = collection.lock(key); + + assert!(guard.0 < guard.1); + assert!(guard.1 > guard.0); + assert!(guard.1 == guard.2); + assert!(guard.0 != guard.2); + } + + #[test] fn read_ref_display_works() { let lock: crate::RwLock<_> = RwLock::new("Hello, world!"); let guard = unsafe { lock.try_read_no_key().unwrap() }; @@ -248,6 +264,21 @@ mod tests { } #[test] + fn read_ord() { + let key = ThreadKey::get().unwrap(); + let lock1: crate::RwLock<_> = RwLock::new(1); + let lock2: crate::RwLock<_> = RwLock::new(5); + let lock3: crate::RwLock<_> = RwLock::new(5); + let collection = LockCollection::try_new((&lock1, &lock2, &lock3)).unwrap(); + let guard = collection.read(key); + + assert!(guard.0 < guard.1); + assert!(guard.1 > guard.0); + assert!(guard.1 == guard.2); + assert!(guard.0 != guard.2); + } + + #[test] fn dropping_read_ref_releases_rwlock() { let lock: crate::RwLock<_> = RwLock::new("Hello, world!"); |
