Skip to content

Commit 3ff1606

Browse files
committed
Add test for 'PySequence_Fast_ITEMS'.
1 parent bd50cba commit 3ff1606

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

graalpython/com.oracle.graal.python.test/src/tests/cpyext/test_abstract.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -468,3 +468,30 @@ def compile_module(self, name):
468468
arguments=["PyObject* sequence"],
469469
)
470470

471+
test_PySequence_Fast_ITEMS = CPyExtFunction(
472+
lambda args: list(args[0]),
473+
lambda: (
474+
(tuple(),),
475+
((1,2,3),),
476+
((None,),),
477+
([],),
478+
(['a','b','c'],),
479+
([None],),
480+
),
481+
code='''PyObject* wrap_PySequence_Fast_ITEMS(PyObject* sequence) {
482+
Py_ssize_t i;
483+
Py_ssize_t n = PySequence_Fast_GET_SIZE(sequence);
484+
PyObject **items = PySequence_Fast_ITEMS(sequence);
485+
PyObject* result = PyList_New(n);
486+
for (i = 0; i < n; i++) {
487+
PyList_SetItem(result, i, items[i]);
488+
}
489+
return result;
490+
}
491+
''',
492+
resultspec="O",
493+
argspec='O',
494+
callfunction="wrap_PySequence_Fast_ITEMS",
495+
arguments=["PyObject* sequence"],
496+
)
497+

0 commit comments

Comments
 (0)