Skip to content

Commit

Permalink
Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Jules-Bertholet committed Nov 26, 2023
1 parent 318a713 commit 8cbc3b1
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tests/mutex.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,14 @@ fn smoke_blocking() {
drop(m.lock_blocking());
}

#[cfg(all(feature = "std", not(target_family = "wasm")))]
#[test]
fn smoke_arc_blocking() {
let m = Arc::new(Mutex::new(()));
drop(m.lock_arc_blocking());
drop(m.lock_arc_blocking());
}

#[test]
fn try_lock() {
let m = Mutex::new(());
Expand Down
18 changes: 18 additions & 0 deletions tests/rwlock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,27 @@ fn smoke_blocking() {
drop(lock.read_blocking());
drop(lock.write_blocking());
drop((lock.read_blocking(), lock.read_blocking()));
let read = lock.read_blocking();
let upgradabe = lock.upgradable_read_blocking();
drop(read);
drop(RwLockUpgradableReadGuard::upgrade_blocking(upgradabe));
drop(lock.write_blocking());
}

#[cfg(all(feature = "std", not(target_family = "wasm")))]
#[test]
fn smoke_arc_blocking() {
let lock = Arc::new(RwLock::new(()));
drop(lock.read_arc_blocking());
drop(lock.write_arc_blocking());
drop((lock.read_arc_blocking(), lock.read_arc_blocking()));
let read = lock.read_arc_blocking();
let upgradabe = lock.upgradable_read_arc_blocking();
drop(read);
drop(RwLockUpgradableReadGuardArc::upgrade_blocking(upgradabe));
drop(lock.write_arc_blocking());
}

#[test]
fn try_write() {
future::block_on(async {
Expand Down
11 changes: 11 additions & 0 deletions tests/semaphore.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,17 @@ fn smoke_blocking() {
assert!(s.try_acquire().is_some());
}

#[cfg(all(feature = "std", not(target_family = "wasm")))]
#[test]
fn smoke_arc_blocking() {
let s = Arc::new(Semaphore::new(2));
let g1 = s.acquire_arc_blocking();
let _g2 = s.acquire_arc_blocking();
assert!(s.try_acquire().is_none());
drop(g1);
assert!(s.try_acquire().is_some());
}

#[test]
fn add_permits() {
static COUNTER: AtomicUsize = AtomicUsize::new(0);
Expand Down

0 comments on commit 8cbc3b1

Please sign in to comment.