summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2018-09-12 20:48:03 (GMT)
committerGitHub <noreply@github.com>2018-09-12 20:48:03 (GMT)
commit5b10d5111d7a855297654af9045f8907b7d3dd08 (patch)
tree688798aa3ff14555f1bc6890df13c633bbc201a5 /Lib
parent0bd1a2dcfdf36b181385ae61361e7692f4ebb0fd (diff)
downloadcpython-5b10d5111d7a855297654af9045f8907b7d3dd08.zip
cpython-5b10d5111d7a855297654af9045f8907b7d3dd08.tar.gz
cpython-5b10d5111d7a855297654af9045f8907b7d3dd08.tar.bz2
closes bpo-34004: Skip lock interruption tests on musl. (GH-9224)
Returning EINTR from pthread semaphore or lock acquisition is an optional POSIX feature. musl does not provide this feature, so some threadsignal tests fail when Python is built against it. There's no good way to test for musl, so we skip if we're on Linux and not using glibc pthreads. Also, hedge in the threading documentation about when we can provide interrupts from lock acquisition.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_threadsignals.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/Lib/test/test_threadsignals.py b/Lib/test/test_threadsignals.py
index 1ad6c63..7e13b17 100644
--- a/Lib/test/test_threadsignals.py
+++ b/Lib/test/test_threadsignals.py
@@ -78,6 +78,10 @@ class ThreadSignals(unittest.TestCase):
@unittest.skipIf(USING_PTHREAD_COND,
'POSIX condition variables cannot be interrupted')
+ @unittest.skipIf(sys.platform.startswith('linux') and
+ not sys.thread_info.version,
+ 'Issue 34004: musl does not allow interruption of locks '
+ 'by signals.')
# Issue #20564: sem_timedwait() cannot be interrupted on OpenBSD
@unittest.skipIf(sys.platform.startswith('openbsd'),
'lock cannot be interrupted on OpenBSD')
@@ -105,6 +109,10 @@ class ThreadSignals(unittest.TestCase):
@unittest.skipIf(USING_PTHREAD_COND,
'POSIX condition variables cannot be interrupted')
+ @unittest.skipIf(sys.platform.startswith('linux') and
+ not sys.thread_info.version,
+ 'Issue 34004: musl does not allow interruption of locks '
+ 'by signals.')
# Issue #20564: sem_timedwait() cannot be interrupted on OpenBSD
@unittest.skipIf(sys.platform.startswith('openbsd'),
'lock cannot be interrupted on OpenBSD')