Commit 93f2cd2e authored by Alexandre Vassalotti's avatar Alexandre Vassalotti

Use unittest.SkipTest to skip tests in test_threading.

parent a64ba363
...@@ -10,6 +10,7 @@ import _thread ...@@ -10,6 +10,7 @@ import _thread
import time import time
import unittest import unittest
import weakref import weakref
import os
# A trivial mutable counter. # A trivial mutable counter.
class Counter(object): class Counter(object):
...@@ -109,9 +110,8 @@ class ThreadTests(unittest.TestCase): ...@@ -109,9 +110,8 @@ class ThreadTests(unittest.TestCase):
try: try:
threading.stack_size(262144) threading.stack_size(262144)
except _thread.error: except _thread.error:
if verbose: raise unittest.SkipTest(
print('platform does not support changing thread stack size') 'platform does not support changing thread stack size')
return
self.test_various_ops() self.test_various_ops()
threading.stack_size(0) threading.stack_size(0)
...@@ -122,9 +122,8 @@ class ThreadTests(unittest.TestCase): ...@@ -122,9 +122,8 @@ class ThreadTests(unittest.TestCase):
try: try:
threading.stack_size(0x100000) threading.stack_size(0x100000)
except _thread.error: except _thread.error:
if verbose: raise unittest.SkipTest(
print('platform does not support changing thread stack size') 'platform does not support changing thread stack size')
return
self.test_various_ops() self.test_various_ops()
threading.stack_size(0) threading.stack_size(0)
...@@ -154,9 +153,7 @@ class ThreadTests(unittest.TestCase): ...@@ -154,9 +153,7 @@ class ThreadTests(unittest.TestCase):
try: try:
import ctypes import ctypes
except ImportError: except ImportError:
if verbose: raise unittest.SkipTest("cannot import ctypes")
print("test_PyThreadState_SetAsyncExc can't import ctypes")
return # can't do anything
set_async_exc = ctypes.pythonapi.PyThreadState_SetAsyncExc set_async_exc = ctypes.pythonapi.PyThreadState_SetAsyncExc
...@@ -226,9 +223,7 @@ class ThreadTests(unittest.TestCase): ...@@ -226,9 +223,7 @@ class ThreadTests(unittest.TestCase):
try: try:
import ctypes import ctypes
except ImportError: except ImportError:
if verbose: raise unittest.SkipTest("cannot import ctypes")
print("test_finalize_with_runnning_thread can't import ctypes")
return # can't do anything
import subprocess import subprocess
rc = subprocess.call([sys.executable, "-c", """if 1: rc = subprocess.call([sys.executable, "-c", """if 1:
...@@ -387,11 +382,9 @@ class ThreadJoinOnShutdown(unittest.TestCase): ...@@ -387,11 +382,9 @@ class ThreadJoinOnShutdown(unittest.TestCase):
self._run_and_join(script) self._run_and_join(script)
@unittest.skipUnless(hasattr(os, 'fork'), "needs os.fork()")
def test_2_join_in_forked_process(self): def test_2_join_in_forked_process(self):
# Like the test above, but from a forked interpreter # Like the test above, but from a forked interpreter
import os
if not hasattr(os, 'fork'):
return
script = """if 1: script = """if 1:
childpid = os.fork() childpid = os.fork()
if childpid != 0: if childpid != 0:
...@@ -405,18 +398,15 @@ class ThreadJoinOnShutdown(unittest.TestCase): ...@@ -405,18 +398,15 @@ class ThreadJoinOnShutdown(unittest.TestCase):
""" """
self._run_and_join(script) self._run_and_join(script)
@unittest.skipUnless(hasattr(os, 'fork'), "needs os.fork()")
def test_3_join_in_forked_from_thread(self): def test_3_join_in_forked_from_thread(self):
# Like the test above, but fork() was called from a worker thread # Like the test above, but fork() was called from a worker thread
# In the forked process, the main Thread object must be marked as stopped. # In the forked process, the main Thread object must be marked as stopped.
import os
if not hasattr(os, 'fork'):
return
# Skip platforms with known problems forking from a worker thread. # Skip platforms with known problems forking from a worker thread.
# See http://bugs.python.org/issue3863. # See http://bugs.python.org/issue3863.
if sys.platform in ('freebsd4', 'freebsd5', 'freebsd6', 'os2emx'): if sys.platform in ('freebsd4', 'freebsd5', 'freebsd6', 'os2emx'):
raise unittest.SkipTest( raise unittest.SkipTest('due to known OS bugs on ' + sys.platform)
'test_3_join_in_forked_from_thread due to known OS bugs on ' +
sys.platform)
script = """if 1: script = """if 1:
main_thread = threading.current_thread() main_thread = threading.current_thread()
def worker(): def worker():
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment