[pypy-commit] pypy call-via-pyobj: add a failing test
mattip
pypy.commits at gmail.com
Fri Jul 1 05:54:18 EDT 2016
Author: Matti Picus <matti.picus at gmail.com>
Branch: call-via-pyobj
Changeset: r85483:143f7a33f037
Date: 2016-07-01 12:45 +0300
http://bitbucket.org/pypy/pypy/changeset/143f7a33f037/
Log: add a failing test
diff --git a/pypy/module/cpyext/test/array.c b/pypy/module/cpyext/test/array.c
--- a/pypy/module/cpyext/test/array.c
+++ b/pypy/module/cpyext/test/array.c
@@ -2144,6 +2144,15 @@
return array_new(type, args, NULL);
}
+static PyObject *
+switch_multiply(void)
+{
+ fprintf(stdout, "switching nb_multiply from %p to %p\n",
+ Arraytype.tp_as_number->nb_multiply, array_base_multiply);
+ Arraytype.tp_as_number->nb_multiply = array_base_multiply;
+ Py_RETURN_NONE;
+};
+
PyDoc_STRVAR(module_doc,
"This module defines an object type which can efficiently represent\n\
an array of basic values: characters, integers, floating point\n\
@@ -2394,6 +2403,7 @@
/* No functions in array module. */
static PyMethodDef a_methods[] = {
{"_reconstruct", (PyCFunction)_reconstruct, METH_VARARGS, NULL},
+ {"switch_multiply", (PyCFunction)switch_multiply, METH_NOARGS, NULL},
{NULL, NULL, 0, NULL} /* Sentinel */
};
diff --git a/pypy/module/cpyext/test/test_arraymodule.py b/pypy/module/cpyext/test/test_arraymodule.py
--- a/pypy/module/cpyext/test/test_arraymodule.py
+++ b/pypy/module/cpyext/test/test_arraymodule.py
@@ -84,3 +84,7 @@
arr = module.array('i', [2])
res = [1, 2, 3] * arr
assert res == [1, 2, 3, 1, 2, 3]
+ module.switch_multiply()
+ res = [1, 2, 3] * arr
+ assert res == [2, 4, 6]
+
More information about the pypy-commit
mailing list