mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Merged manually from 2.7 branch to 3.x trunk.
------------------------------------------------------------------------ r79925 | nick.coghlan | 2010-04-10 16:24:36 +0200 (sam. 10 avril 2010) Try to turn some buildbots green by allowing test_multiprocessing to pass even if it hits the sys.exc_clear code in the threading module, and improve the test coverage by making the ctypes dependencies a bit more granular (two of the cited ctypes objects don't exist on my system) ------------------------------------------------------------------------
This commit is contained in:
parent
54ebb78171
commit
aa17106e41
1 changed files with 16 additions and 8 deletions
|
@ -13,7 +13,6 @@ import os
|
|||
import gc
|
||||
import signal
|
||||
import array
|
||||
import copy
|
||||
import socket
|
||||
import random
|
||||
import logging
|
||||
|
@ -71,11 +70,21 @@ WIN32 = (sys.platform == "win32")
|
|||
#
|
||||
|
||||
try:
|
||||
from ctypes import Structure, Value, copy, c_int, c_double
|
||||
from ctypes import Structure, c_int, c_double
|
||||
except ImportError:
|
||||
Structure = object
|
||||
c_int = c_double = None
|
||||
|
||||
try:
|
||||
from ctypes import Value
|
||||
except ImportError:
|
||||
Value = None
|
||||
|
||||
try:
|
||||
from ctypes import copy as ctypes_copy
|
||||
except ImportError:
|
||||
ctypes_copy = None
|
||||
|
||||
#
|
||||
# Creates a wrapper for a function which records the time it takes to finish
|
||||
#
|
||||
|
@ -1138,11 +1147,9 @@ def baz():
|
|||
yield i*i
|
||||
|
||||
class IteratorProxy(BaseProxy):
|
||||
_exposed_ = ('next', '__next__')
|
||||
_exposed_ = ('__next__',)
|
||||
def __iter__(self):
|
||||
return self
|
||||
def __next__(self):
|
||||
return self._callmethod('next')
|
||||
def __next__(self):
|
||||
return self._callmethod('__next__')
|
||||
|
||||
|
@ -1600,7 +1607,7 @@ class _TestSharedCTypes(BaseTestCase):
|
|||
for i in range(len(arr)):
|
||||
arr[i] *= 2
|
||||
|
||||
@unittest.skipIf(c_int is None, "requires _ctypes")
|
||||
@unittest.skipIf(Value is None, "requires ctypes.Value")
|
||||
def test_sharedctypes(self, lock=False):
|
||||
x = Value('i', 7, lock=lock)
|
||||
y = Value(c_double, 1.0/3.0, lock=lock)
|
||||
|
@ -1621,13 +1628,14 @@ class _TestSharedCTypes(BaseTestCase):
|
|||
self.assertAlmostEqual(arr[i], i*2)
|
||||
self.assertEqual(string.value, latin('hellohello'))
|
||||
|
||||
@unittest.skipIf(Value is None, "requires ctypes.Value")
|
||||
def test_synchronize(self):
|
||||
self.test_sharedctypes(lock=True)
|
||||
|
||||
@unittest.skipIf(c_int is None, "requires _ctypes")
|
||||
@unittest.skipIf(ctypes_copy is None, "requires ctypes.copy")
|
||||
def test_copy(self):
|
||||
foo = _Foo(2, 5.0)
|
||||
bar = copy(foo)
|
||||
bar = ctypes_copy(foo)
|
||||
foo.x = 0
|
||||
foo.y = 0
|
||||
self.assertEqual(bar.x, 2)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue