summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorFacundo Batista <facundobatista@gmail.com>2008-02-23 22:54:12 (GMT)
committerFacundo Batista <facundobatista@gmail.com>2008-02-23 22:54:12 (GMT)
commitc12b9888f70d4845af6dcdf7683e19e2f4c925fa (patch)
tree0b00e8e621638f4724cd7a0c2b56da7b9d7c17f2 /Lib
parent0bb8567e1e6cfe1e65ac5113945096bf2d369fa4 (diff)
downloadcpython-c12b9888f70d4845af6dcdf7683e19e2f4c925fa.zip
cpython-c12b9888f70d4845af6dcdf7683e19e2f4c925fa.tar.gz
cpython-c12b9888f70d4845af6dcdf7683e19e2f4c925fa.tar.bz2
Added simple test case. Thanks Benjamin Peterson.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_mutex.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/Lib/test/test_mutex.py b/Lib/test/test_mutex.py
new file mode 100644
index 0000000..6318c70
--- /dev/null
+++ b/Lib/test/test_mutex.py
@@ -0,0 +1,33 @@
+import mutex
+
+import unittest
+import test.test_support
+
+class MutexTest(unittest.TestCase):
+
+ def setUp(self):
+ self.mutex = mutex.mutex()
+
+ def called_by_mutex(self, some_data):
+ self.assert_(self.mutex.test(), "mutex not held")
+ # Nested locking
+ self.mutex.lock(self.called_by_mutex2, "eggs")
+
+ def called_by_mutex2(self, some_data):
+ self.assert_(self.ready_for_2,
+ "called_by_mutex2 called too soon")
+
+ def test_lock_and_unlock(self):
+ self.read_for_2 = False
+ self.mutex.lock(self.called_by_mutex, "spam")
+ self.ready_for_2 = True
+ # unlock both locks
+ self.mutex.unlock()
+ self.mutex.unlock()
+ self.failIf(self.mutex.test(), "mutex still held")
+
+def test_main():
+ test.test_support.run_unittest(MutexTest)
+
+if __name__ == "__main__":
+ test_main()