Author: Antonio Cuni <[email protected]>
Branch: jitypes2
Changeset: r44614:3d3f05c245d8
Date: 2011-05-31 16:54 +0200
http://bitbucket.org/pypy/pypy/changeset/3d3f05c245d8/
Log: a failing ctypes test, which makes pyglet segfaulting
diff --git a/pypy/module/test_lib_pypy/ctypes_tests/_ctypes_test.c
b/pypy/module/test_lib_pypy/ctypes_tests/_ctypes_test.c
--- a/pypy/module/test_lib_pypy/ctypes_tests/_ctypes_test.c
+++ b/pypy/module/test_lib_pypy/ctypes_tests/_ctypes_test.c
@@ -43,6 +43,12 @@
qsort(base, num, width, compare);
}
+EXPORT(char) deref_LP_c_char_p(char** argv)
+{
+ char* s = *argv;
+ return s[0];
+}
+
EXPORT(int *) _testfunc_ai8(int a[8])
{
return a;
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
@@ -218,6 +218,17 @@
result = f(byref(c_int(99)))
assert not result.contents == 99
+ def test_convert_pointers(self):
+ py.test.skip("segfault")
+ f = dll.deref_LP_c_char_p
+ f.restype = c_char
+ f.argtypes = [POINTER(c_char_p)]
+ #
+ s = c_char_p('hello world')
+ ps = pointer(s)
+ assert f(ps) == 'h'
+ assert f(s) == 'h' # automatic conversion from char** to char*
+
def test_errors_1(self):
f = dll._testfunc_p_p
f.argtypes = [POINTER(c_int)]
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit