
python-checkins at python
Nov 7, 2009, 12:20 PM
Post #1 of 1
(46 views)
Permalink
|
|
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
|
|
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[at]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[at]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. _______________________________________________ Python-checkins mailing list Python-checkins[at]python.org http://mail.python.org/mailman/listinfo/python-checkins
|