[pypy-commit] pypy issue2968: Add test for #2968
rlamy
pypy.commits at gmail.com
Tue Mar 5 14:53:44 EST 2019
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: issue2968
Changeset: r96213:a0245fd17c4f
Date: 2019-03-05 19:52 +0000
http://bitbucket.org/pypy/pypy/changeset/a0245fd17c4f/
Log: Add test for #2968
diff --git a/pypy/module/cpyext/test/THPSize.c b/pypy/module/cpyext/test/THPSize.c
new file mode 100644
--- /dev/null
+++ b/pypy/module/cpyext/test/THPSize.c
@@ -0,0 +1,85 @@
+#include "Python.h"
+
+struct THPSize {
+ PyTupleObject tuple;
+} THPSize;
+
+static PyObject * THPSize_pynew(PyTypeObject *type, PyObject *args, PyObject *kwargs)
+{
+ return PyTuple_Type.tp_new(type, args, kwargs);
+}
+
+static PyMappingMethods THPSize_as_mapping = {
+ 0, //PyTuple_Type.tp_as_mapping->mp_length,
+ 0,
+ 0
+};
+
+
+PyTypeObject THPSizeType = {
+ PyVarObject_HEAD_INIT(0, 0)
+ "torch.Size", /* tp_name */
+ sizeof(THPSize), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ 0, /* tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_reserved */
+ 0, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ &THPSize_as_mapping, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
+ 0, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ 0, /* tp_methods */
+ 0, /* tp_members */
+ 0, /* tp_getset */
+ &PyTuple_Type, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ 0, /* tp_init */
+ 0, /* tp_alloc */
+ THPSize_pynew, /* tp_new */
+};
+
+static struct PyModuleDef moduledef = {
+ PyModuleDef_HEAD_INIT,
+ "THPSize",
+ "Module Doc",
+ -1,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+};
+
+PyMODINIT_FUNC
+PyInit_THPSize(void)
+{
+ PyObject *module = PyModule_Create(&moduledef);
+ THPSize_as_mapping.mp_length = PyTuple_Type.tp_as_mapping->mp_length;
+ if (PyType_Ready(&THPSizeType) < 0) {
+ return NULL;
+ }
+ Py_INCREF(&THPSizeType);
+ if (PyModule_AddObject(module, "Size", (PyObject*)&THPSizeType) < 0) {
+ return NULL;
+ }
+ return module;
+}
diff --git a/pypy/module/cpyext/test/test_tupleobject.py b/pypy/module/cpyext/test/test_tupleobject.py
--- a/pypy/module/cpyext/test/test_tupleobject.py
+++ b/pypy/module/cpyext/test/test_tupleobject.py
@@ -226,3 +226,7 @@
raises(SystemError, module.set_after_use, s)
else:
module.set_after_use(s)
+
+ def test_torch(self):
+ module = self.import_module('THPSize')
+ module.Size()
More information about the pypy-commit
mailing list