|
|
@@ -0,0 +1,54 @@
|
|
|
+from panda3d.core import Mutex, ReMutex
|
|
|
+
|
|
|
+
|
|
|
+def test_mutex_acquire_release():
|
|
|
+ m = Mutex()
|
|
|
+ m.acquire()
|
|
|
+
|
|
|
+ # Assert that the lock is truly held now
|
|
|
+ assert not m.try_acquire()
|
|
|
+
|
|
|
+ # Release the lock
|
|
|
+ m.release()
|
|
|
+
|
|
|
+ # Make sure the lock is properly released
|
|
|
+ assert m.try_acquire()
|
|
|
+
|
|
|
+ # Clean up
|
|
|
+ m.release()
|
|
|
+
|
|
|
+
|
|
|
+def test_mutex_try_acquire():
|
|
|
+ m = Mutex()
|
|
|
+
|
|
|
+ # Trying to acquire the lock should succeed
|
|
|
+ assert m.try_acquire()
|
|
|
+
|
|
|
+ # Assert that the lock is truly held now
|
|
|
+ assert not m.try_acquire()
|
|
|
+
|
|
|
+ # Clean up
|
|
|
+ m.release()
|
|
|
+
|
|
|
+
|
|
|
+def test_remutex_acquire_release():
|
|
|
+ m = ReMutex()
|
|
|
+ m.acquire()
|
|
|
+ m.acquire()
|
|
|
+ m.release()
|
|
|
+ m.release()
|
|
|
+
|
|
|
+
|
|
|
+def test_remutex_try_acquire():
|
|
|
+ m = ReMutex()
|
|
|
+
|
|
|
+ # Trying to acquire the lock should succeed
|
|
|
+ assert m.try_acquire()
|
|
|
+
|
|
|
+ # Trying a second time should succeed
|
|
|
+ assert m.try_acquire()
|
|
|
+
|
|
|
+ # Clean up
|
|
|
+ m.release()
|
|
|
+ m.release()
|
|
|
+
|