diff options
Diffstat (limited to 'tests/forget.rs')
| -rw-r--r-- | tests/forget.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/forget.rs b/tests/forget.rs new file mode 100644 index 0000000..755bdb1 --- /dev/null +++ b/tests/forget.rs @@ -0,0 +1,24 @@ +use happylock::{Mutex, ThreadKey}; + +#[test] +fn no_new_threadkey_when_forgetting_lock() { + let key = ThreadKey::get().unwrap(); + let mutex = Mutex::new("foo".to_string()); + + let guard = mutex.lock(key); + std::mem::forget(guard); + + assert!(ThreadKey::get().is_none()); +} + +#[test] +fn no_new_threadkey_in_scoped_lock() { + let mut key = ThreadKey::get().unwrap(); + let mutex = Mutex::new("foo".to_string()); + + mutex.scoped_lock(&mut key, |_| { + assert!(ThreadKey::get().is_none()); + }); + + mutex.lock(key); +} |
