Author: Armin Rigo <[email protected]>
Branch:
Changeset: r85981:e87949c507ce
Date: 2016-08-02 10:43 +0200
http://bitbucket.org/pypy/pypy/changeset/e87949c507ce/
Log: Issue #2360: Test and probable fix for _rawffi.alt on Windows
diff --git a/pypy/module/_rawffi/alt/interp_funcptr.py
b/pypy/module/_rawffi/alt/interp_funcptr.py
--- a/pypy/module/_rawffi/alt/interp_funcptr.py
+++ b/pypy/module/_rawffi/alt/interp_funcptr.py
@@ -20,7 +20,8 @@
def _getfunc(space, CDLL, w_name, w_argtypes, w_restype):
argtypes_w, argtypes, w_restype, restype = unpack_argtypes(
space, w_argtypes, w_restype)
- if space.isinstance_w(w_name, space.w_str):
+ if (space.isinstance_w(w_name, space.w_str) or
+ space.isinstance_w(w_name, space.w_unicode)):
name = space.str_w(w_name)
try:
func = CDLL.cdll.getpointer(name, argtypes, restype,
diff --git a/pypy/module/test_lib_pypy/ctypes_tests/test_functions.py
b/pypy/module/test_lib_pypy/ctypes_tests/test_functions.py
--- a/pypy/module/test_lib_pypy/ctypes_tests/test_functions.py
+++ b/pypy/module/test_lib_pypy/ctypes_tests/test_functions.py
@@ -133,6 +133,12 @@
# You cannot assing character format codes as restype any longer
raises(TypeError, setattr, f, "restype", "i")
+ def test_unicode_function_name(self):
+ f = dll[u'_testfunc_i_bhilfd']
+ f.argtypes = [c_byte, c_short, c_int, c_long, c_float, c_double]
+ f.restype = c_int
+ result = f(1, 2, 3, 4, 5.0, 6.0)
+ assert result == 21
def test_truncate_python_longs(self):
f = dll._testfunc_i_bhilfd
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit