Fix test_from_dll* in test_returnfuncptrs.py.
This commit is contained in:
parent
785d1b1703
commit
8e8bbc5e7d
|
@ -32,31 +32,30 @@ class ReturnFuncPtrTestCase(unittest.TestCase):
|
||||||
self.assertRaises(ArgumentError, strchr, "abcdef", 3)
|
self.assertRaises(ArgumentError, strchr, "abcdef", 3)
|
||||||
self.assertRaises(TypeError, strchr, "abcdef")
|
self.assertRaises(TypeError, strchr, "abcdef")
|
||||||
|
|
||||||
@unittest.skipIf(os.name == 'nt', 'Temporarily disabled for Windows')
|
|
||||||
def test_from_dll(self):
|
def test_from_dll(self):
|
||||||
dll = CDLL(_ctypes_test.__file__)
|
dll = CDLL(_ctypes_test.__file__)
|
||||||
# _CFuncPtr instances are now callable with a tuple argument
|
# _CFuncPtr instances are now callable with a tuple argument
|
||||||
# which denotes a function name and a dll:
|
# which denotes a function name and a dll:
|
||||||
strchr = CFUNCTYPE(c_char_p, c_char_p, c_char)(("strchr", dll))
|
strchr = CFUNCTYPE(c_char_p, c_char_p, c_char)(("my_strchr", dll))
|
||||||
self.assertTrue(strchr(b"abcdef", b"b"), "bcdef")
|
self.assertTrue(strchr(b"abcdef", b"b"), "bcdef")
|
||||||
self.assertEqual(strchr(b"abcdef", b"x"), None)
|
self.assertEqual(strchr(b"abcdef", b"x"), None)
|
||||||
self.assertRaises(ArgumentError, strchr, b"abcdef", 3.0)
|
self.assertRaises(ArgumentError, strchr, b"abcdef", 3.0)
|
||||||
self.assertRaises(TypeError, strchr, b"abcdef")
|
self.assertRaises(TypeError, strchr, b"abcdef")
|
||||||
|
|
||||||
# Issue 6083: Reference counting bug
|
# Issue 6083: Reference counting bug
|
||||||
@unittest.skipIf(os.name == 'nt', 'Temporarily disabled for Windows')
|
|
||||||
def test_from_dll_refcount(self):
|
def test_from_dll_refcount(self):
|
||||||
class BadSequence(tuple):
|
class BadSequence(tuple):
|
||||||
def __getitem__(self, key):
|
def __getitem__(self, key):
|
||||||
if key == 0:
|
if key == 0:
|
||||||
return "strchr"
|
return "my_strchr"
|
||||||
if key == 1:
|
if key == 1:
|
||||||
return CDLL(_ctypes_test.__file__)
|
return CDLL(_ctypes_test.__file__)
|
||||||
raise IndexError
|
raise IndexError
|
||||||
|
|
||||||
# _CFuncPtr instances are now callable with a tuple argument
|
# _CFuncPtr instances are now callable with a tuple argument
|
||||||
# which denotes a function name and a dll:
|
# which denotes a function name and a dll:
|
||||||
strchr = CFUNCTYPE(c_char_p, c_char_p, c_char)(BadSequence(("strchr", CDLL(_ctypes_test.__file__))))
|
strchr = CFUNCTYPE(c_char_p, c_char_p, c_char)(
|
||||||
|
BadSequence(("my_strchr", CDLL(_ctypes_test.__file__))))
|
||||||
self.assertTrue(strchr(b"abcdef", b"b"), "bcdef")
|
self.assertTrue(strchr(b"abcdef", b"b"), "bcdef")
|
||||||
self.assertEqual(strchr(b"abcdef", b"x"), None)
|
self.assertEqual(strchr(b"abcdef", b"x"), None)
|
||||||
self.assertRaises(ArgumentError, strchr, b"abcdef", 3.0)
|
self.assertRaises(ArgumentError, strchr, b"abcdef", 3.0)
|
||||||
|
|
Loading…
Reference in New Issue