[pypy-commit] pypy release-5.x: Add a failing (skipped) whitebox test and a test about ctypes that fails
arigo
pypy.commits at gmail.com
Thu Sep 1 23:36:39 EDT 2016
Author: Armin Rigo <arigo at tunes.org>
Branch: release-5.x
Changeset: r86829:2cab10de65ad
Date: 2016-09-01 20:35 -0700
http://bitbucket.org/pypy/pypy/changeset/2cab10de65ad/
Log: Add a failing (skipped) whitebox test and a test about ctypes that
fails on -A (xfailed)
diff --git a/pypy/module/test_lib_pypy/ctypes_tests/test_numbers.py b/pypy/module/test_lib_pypy/ctypes_tests/test_numbers.py
--- a/pypy/module/test_lib_pypy/ctypes_tests/test_numbers.py
+++ b/pypy/module/test_lib_pypy/ctypes_tests/test_numbers.py
@@ -195,6 +195,29 @@
_fields_ = [('t', enum)]
assert isinstance(S().t, enum)
+ def test_no_missing_shape_to_ffi_type(self):
+ # whitebox test
+ import sys
+ if '__pypy__' not in sys.builtin_module_names:
+ skip("only for pypy's ctypes")
+ skip("re-enable after adding 'g' to _shape_to_ffi_type.typemap, "
+ "which I think needs fighting all the way up from "
+ "rpython.rlib.libffi")
+ from _ctypes.basics import _shape_to_ffi_type
+ from _rawffi import Array
+ for i in range(1, 256):
+ try:
+ Array(chr(i))
+ except ValueError:
+ pass
+ else:
+ assert chr(i) in _shape_to_ffi_type.typemap
+
+ @py.test.mark.xfail
+ def test_pointer_to_long_double(self):
+ import ctypes
+ ctypes.POINTER(ctypes.c_longdouble)
+
## def test_perf(self):
## check_perf()
diff --git a/rpython/rlib/libffi.py b/rpython/rlib/libffi.py
--- a/rpython/rlib/libffi.py
+++ b/rpython/rlib/libffi.py
@@ -47,6 +47,8 @@
cls.ulonglong = clibffi.cast_type_to_ffitype(rffi.ULONGLONG)
cls.signed = clibffi.cast_type_to_ffitype(rffi.SIGNED)
cls.wchar_t = clibffi.cast_type_to_ffitype(lltype.UniChar)
+ # XXX long double support: clibffi.ffi_type_longdouble, but then
+ # XXX fix the whole rest of this file to add a case for long double
del cls._import
@staticmethod
More information about the pypy-commit
mailing list