diff --git a/tests/test_buffers.cpp b/tests/test_buffers.cpp index 3eb7df9464..ac4489f70c 100644 --- a/tests/test_buffers.cpp +++ b/tests/test_buffers.cpp @@ -389,6 +389,7 @@ TEST_SUBMODULE(buffers, m) { m.def("get_buffer_info", [](const py::buffer &buffer) { return buffer.request(); }); // Expose Py_buffer for testing. + m.attr("PyBUF_FORMAT") = PyBUF_FORMAT; m.attr("PyBUF_SIMPLE") = PyBUF_SIMPLE; m.attr("PyBUF_ND") = PyBUF_ND; m.attr("PyBUF_STRIDES") = PyBUF_STRIDES; diff --git a/tests/test_buffers.py b/tests/test_buffers.py index 60565875a5..2612edb270 100644 --- a/tests/test_buffers.py +++ b/tests/test_buffers.py @@ -251,6 +251,16 @@ def test_c_contiguous_to_pybuffer(type): raise ValueError(f"Unknown parametrization {type}") info = m.get_py_buffer(mat, m.PyBUF_SIMPLE) + assert info.format is None + assert info.itemsize == ctypes.sizeof(ctypes.c_float) + assert info.len == 5 * 4 * info.itemsize + assert info.ndim == 0 # See discussion on PR #5407. + assert info.shape is None + assert info.strides is None + assert info.suboffsets is None + assert not info.readonly + info = m.get_py_buffer(mat, m.PyBUF_SIMPLE | m.PyBUF_FORMAT) + assert info.format == "f" assert info.itemsize == ctypes.sizeof(ctypes.c_float) assert info.len == 5 * 4 * info.itemsize assert info.ndim == 0 # See discussion on PR #5407.