[pypy-commit] pypy py3.5: Add a failing test. I can't figure out for now why the array.array test

arigo pypy.commits at gmail.com
Wed Aug 22 02:09:55 EDT 2018


Author: Armin Rigo <arigo at tunes.org>
Branch: py3.5
Changeset: r95018:31265dde8699
Date: 2018-08-22 08:09 +0200
http://bitbucket.org/pypy/pypy/changeset/31265dde8699/

Log:	Add a failing test. I can't figure out for now why the array.array
	test passes but not the one with the _cffi_backend.buffer().

diff --git a/pypy/module/cpyext/test/test_buffer.py b/pypy/module/cpyext/test/test_buffer.py
--- a/pypy/module/cpyext/test/test_buffer.py
+++ b/pypy/module/cpyext/test/test_buffer.py
@@ -9,13 +9,21 @@
              void* buf;
              Py_ssize_t buf_len;
              if (PyObject_AsWriteBuffer(args, &buf, &buf_len) < 0) {
-                PyErr_SetString(PyExc_ValueError, "bad value");
+                //PyErr_SetString(PyExc_ValueError, "bad value");
                 return NULL;
              }
              return PyLong_FromLong(buf_len);
              """)])
         assert module.write_buffer_len(bytearray(b'123')) == 3
         assert module.write_buffer_len(array.array('i', [1, 2, 3])) == 12
+        #
+        import _cffi_backend
+        BChar = _cffi_backend.new_primitive_type("char")
+        BCharPtr = _cffi_backend.new_pointer_type(BChar)
+        BCharArray = _cffi_backend.new_array_type(BCharPtr, None)
+        p = _cffi_backend.newp(BCharArray, b"abcde")
+        bb = _cffi_backend.buffer(p)
+        assert module.write_buffer_len(bb) == 6
 
 
 class AppTestMmap(AppTestCpythonExtensionBase):
diff --git a/pypy/module/cpyext/test/test_cpyext.py b/pypy/module/cpyext/test/test_cpyext.py
--- a/pypy/module/cpyext/test/test_cpyext.py
+++ b/pypy/module/cpyext/test/test_cpyext.py
@@ -138,6 +138,7 @@
     """Base class for all cpyext tests."""
     spaceconfig = dict(usemodules=['cpyext', 'thread', 'struct', 'array',
                                    'itertools', 'time', 'binascii', 'mmap',
+                                   '_cffi_backend',
                                    ])
 
     @classmethod


More information about the pypy-commit mailing list