[Python-checkins] r76144 - in sandbox/trunk/newgil: Doc/library/importlib.rst Lib/test/lock_tests.py Lib/test/test_thread.py Lib/test/test_threading.py Misc/NEWS

antoine.pitrou python-checkins at python.org
Sat Nov 7 19:30:30 CET 2009


Author: antoine.pitrou
Date: Sat Nov 7 19:30:30 2009
New Revision: 76144
Log:
Merged revisions 76138,76142 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
 r76138 | antoine.pitrou | 2009年11月06日 23:41:14 +0100 (ven., 06 nov. 2009) | 10 lines
 
 Merged revisions 76137 via svnmerge from 
 svn+ssh://pythondev@svn.python.org/python/trunk
 
 ........
 r76137 | antoine.pitrou | 2009年11月06日 23:34:35 +0100 (ven., 06 nov. 2009) | 4 lines
 
 Issue #7270: Add some dedicated unit tests for multi-thread synchronization
 primitives such as Lock, RLock, Condition, Event and Semaphore.
 ........
................
 r76142 | brett.cannon | 2009年11月07日 09:22:58 +0100 (sam., 07 nov. 2009) | 1 line
 
 Pluralize a word.
................
Added:
 sandbox/trunk/newgil/Lib/test/lock_tests.py
 - copied unchanged from r76142, /python/branches/py3k/Lib/test/lock_tests.py
Modified:
 sandbox/trunk/newgil/ (props changed)
 sandbox/trunk/newgil/Doc/library/importlib.rst
 sandbox/trunk/newgil/Lib/test/test_thread.py
 sandbox/trunk/newgil/Lib/test/test_threading.py
 sandbox/trunk/newgil/Misc/NEWS
Modified: sandbox/trunk/newgil/Doc/library/importlib.rst
==============================================================================
--- sandbox/trunk/newgil/Doc/library/importlib.rst	(original)
+++ sandbox/trunk/newgil/Doc/library/importlib.rst	Sat Nov 7 19:30:30 2009
@@ -342,7 +342,7 @@
 terms of :data:`sys.path`. No implicit path hooks are assumed for
 simplification of the class and its semantics.
 
- Only class method are defined by this class to alleviate the need for
+ Only class methods are defined by this class to alleviate the need for
 instantiation.
 
 .. classmethod:: find_module(fullname, path=None)
Modified: sandbox/trunk/newgil/Lib/test/test_thread.py
==============================================================================
--- sandbox/trunk/newgil/Lib/test/test_thread.py	(original)
+++ sandbox/trunk/newgil/Lib/test/test_thread.py	Sat Nov 7 19:30:30 2009
@@ -6,6 +6,7 @@
 import time
 import weakref
 
+from test import lock_tests
 
 NUMTASKS = 10
 NUMTRIPS = 3
@@ -188,8 +189,12 @@
 if finished:
 self.done_mutex.release()
 
+class LockTests(lock_tests.LockTests):
+ locktype = thread.allocate_lock
+
+
 def test_main():
- support.run_unittest(ThreadRunningTests, BarrierTest)
+ support.run_unittest(ThreadRunningTests, BarrierTest, LockTests)
 
 if __name__ == "__main__":
 test_main()
Modified: sandbox/trunk/newgil/Lib/test/test_threading.py
==============================================================================
--- sandbox/trunk/newgil/Lib/test/test_threading.py	(original)
+++ sandbox/trunk/newgil/Lib/test/test_threading.py	Sat Nov 7 19:30:30 2009
@@ -12,6 +12,8 @@
 import weakref
 import os
 
+from test import lock_tests
+
 # A trivial mutable counter.
 class Counter(object):
 def __init__(self):
@@ -487,22 +489,6 @@
 thread.start()
 self.assertRaises(RuntimeError, thread.start)
 
- def test_releasing_unacquired_rlock(self):
- rlock = threading.RLock()
- self.assertRaises(RuntimeError, rlock.release)
-
- def test_waiting_on_unacquired_condition(self):
- cond = threading.Condition()
- self.assertRaises(RuntimeError, cond.wait)
-
- def test_notify_on_unacquired_condition(self):
- cond = threading.Condition()
- self.assertRaises(RuntimeError, cond.notify)
-
- def test_semaphore_with_negative_value(self):
- self.assertRaises(ValueError, threading.Semaphore, value = -1)
- self.assertRaises(ValueError, threading.Semaphore, value = -sys.maxsize)
-
 def test_joining_current_thread(self):
 current_thread = threading.current_thread()
 self.assertRaises(RuntimeError, current_thread.join);
@@ -517,11 +503,37 @@
 self.assertRaises(RuntimeError, setattr, thread, "daemon", True)
 
 
+class LockTests(lock_tests.LockTests):
+ locktype = staticmethod(threading.Lock)
+
+class RLockTests(lock_tests.RLockTests):
+ locktype = staticmethod(threading.RLock)
+
+class EventTests(lock_tests.EventTests):
+ eventtype = staticmethod(threading.Event)
+
+class ConditionAsRLockTests(lock_tests.RLockTests):
+ # An Condition uses an RLock by default and exports its API.
+ locktype = staticmethod(threading.Condition)
+
+class ConditionTests(lock_tests.ConditionTests):
+ condtype = staticmethod(threading.Condition)
+
+class SemaphoreTests(lock_tests.SemaphoreTests):
+ semtype = staticmethod(threading.Semaphore)
+
+class BoundedSemaphoreTests(lock_tests.BoundedSemaphoreTests):
+ semtype = staticmethod(threading.BoundedSemaphore)
+
+
 def test_main():
- test.support.run_unittest(ThreadTests,
- ThreadJoinOnShutdown,
- ThreadingExceptionTests,
- )
+ test.support.run_unittest(LockTests, RLockTests, EventTests,
+ ConditionAsRLockTests, ConditionTests,
+ SemaphoreTests, BoundedSemaphoreTests,
+ ThreadTests,
+ ThreadJoinOnShutdown,
+ ThreadingExceptionTests,
+ )
 
 if __name__ == "__main__":
 test_main()
Modified: sandbox/trunk/newgil/Misc/NEWS
==============================================================================
--- sandbox/trunk/newgil/Misc/NEWS	(original)
+++ sandbox/trunk/newgil/Misc/NEWS	Sat Nov 7 19:30:30 2009
@@ -357,6 +357,9 @@
 Tests
 -----
 
+- Issue #7270: Add some dedicated unit tests for multi-thread synchronization
+ primitives such as Lock, RLock, Condition, Event and Semaphore.
+
 - Issue #7248 (part 2): Use a unique temporary directory for importlib source
 tests instead of tempfile.tempdir. This prevents the tests from sharing state
 between concurrent executions on the same system.


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /