diff --git a/tests/pipeline/test_mutex.py b/tests/pipeline/test_mutex.py new file mode 100644 index 0000000000..e930e90e02 --- /dev/null +++ b/tests/pipeline/test_mutex.py @@ -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() +