Commit aa17106e authored by Florent Xicluna's avatar Florent Xicluna

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)
  ------------------------------------------------------------------------
parent 54ebb781
......@@ -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)
......
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