summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_threading.py
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2011-04-19 21:58:51 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2011-04-19 21:58:51 (GMT)
commit754851f456d0b97c86f2d700e032632323840e29 (patch)
tree366726362ecd8a4849b9fc402eddf6fb2acbf9a5 /Lib/test/test_threading.py
parentcf2a807831ee93ef39e73fcc682894b0695b6143 (diff)
downloadcpython-754851f456d0b97c86f2d700e032632323840e29.zip
cpython-754851f456d0b97c86f2d700e032632323840e29.tar.gz
cpython-754851f456d0b97c86f2d700e032632323840e29.tar.bz2
Issue #11223: Add threading._info() function providing informations about the
thread implementation. Skip test_lock_acquire_interruption() and test_rlock_acquire_interruption() of test_threadsignals if a thread lock is implemented using a POSIX mutex and a POSIX condition variable. A POSIX condition variable cannot be interrupted by a signal (e.g. on Linux, the futex system call is restarted).
Diffstat (limited to 'Lib/test/test_threading.py')
-rw-r--r--Lib/test/test_threading.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py
index c107652..fd63d39 100644
--- a/Lib/test/test_threading.py
+++ b/Lib/test/test_threading.py
@@ -718,6 +718,17 @@ class BoundedSemaphoreTests(lock_tests.BoundedSemaphoreTests):
class BarrierTests(lock_tests.BarrierTests):
barriertype = staticmethod(threading.Barrier)
+
+class MiscTests(unittest.TestCase):
+ def test_info(self):
+ info = threading._info()
+ self.assertIn(info['name'],
+ 'nt os2 pthread solaris'.split())
+ if info['name'] == 'pthread':
+ self.assertIn(info['lock_implementation'],
+ ('semaphore', 'mutex+cond'))
+
+
def test_main():
test.support.run_unittest(LockTests, PyRLockTests, CRLockTests, EventTests,
ConditionAsRLockTests, ConditionTests,
@@ -725,7 +736,7 @@ def test_main():
ThreadTests,
ThreadJoinOnShutdown,
ThreadingExceptionTests,
- BarrierTests
+ BarrierTests, MiscTests,
)
if __name__ == "__main__":