11#include "parts.h"
2+ #include "clinic/long.c.h"
3+
4+ /*[clinic input]
5+ module _testcapi
6+ [clinic start generated code]*/
7+ /*[clinic end generated code: output=da39a3ee5e6b4b0d input=6361033e795369fc]*/
28
39
410static PyObject *
@@ -40,8 +46,13 @@ raise_test_long_error(const char* msg)
4046
4147#include "testcapi_long.h"
4248
49+ /*[clinic input]
50+ _testcapi.test_long_api
51+ [clinic start generated code]*/
52+
4353static PyObject *
44- test_long_api (PyObject * self , PyObject * Py_UNUSED (ignored ))
54+ _testcapi_test_long_api_impl (PyObject * module )
55+ /*[clinic end generated code: output=4405798ca1e9f444 input=e9b8880d7331c688]*/
4556{
4657 return TESTNAME (raise_test_long_error );
4758}
@@ -68,8 +79,13 @@ raise_test_longlong_error(const char* msg)
6879
6980#include "testcapi_long.h"
7081
82+ /*[clinic input]
83+ _testcapi.test_longlong_api
84+ [clinic start generated code]*/
85+
7186static PyObject *
72- test_longlong_api (PyObject * self , PyObject * args )
87+ _testcapi_test_longlong_api_impl (PyObject * module )
88+ /*[clinic end generated code: output=2b3414ba8c31dfe6 input=ccbb2a48c2b3c4a5]*/
7389{
7490 return TESTNAME (raise_test_longlong_error );
7591}
@@ -81,13 +97,19 @@ test_longlong_api(PyObject* self, PyObject *args)
8197#undef F_U_TO_PY
8298#undef F_PY_TO_U
8399
84- /* Test the PyLong_AsLongAndOverflow API. General conversion to PY_LONG
85- is tested by test_long_api_inner. This test will concentrate on proper
86- handling of overflow.
87- */
100+
101+ /*[clinic input]
102+ _testcapi.test_long_and_overflow
103+
104+ Test the PyLong_AsLongAndOverflow API.
105+
106+ General conversion to PY_LONG is tested by test_long_api_inner.
107+ This test will concentrate on proper handling of overflow.
108+ [clinic start generated code]*/
88109
89110static PyObject *
90- test_long_and_overflow (PyObject * self , PyObject * Py_UNUSED (ignored ))
111+ _testcapi_test_long_and_overflow_impl (PyObject * module )
112+ /*[clinic end generated code: output=f8460ca115e31d8e input=762f6b62da0a3cdc]*/
91113{
92114 PyObject * num , * one , * temp ;
93115 long value ;
@@ -243,13 +265,18 @@ test_long_and_overflow(PyObject *self, PyObject *Py_UNUSED(ignored))
243265 Py_RETURN_NONE ;
244266}
245267
246- /* Test the PyLong_AsLongLongAndOverflow API. General conversion to
247- long long is tested by test_long_api_inner. This test will
248- concentrate on proper handling of overflow.
249- */
268+ /*[clinic input]
269+ _testcapi.test_long_long_and_overflow
270+
271+ Test the PyLong_AsLongLongAndOverflow API.
272+
273+ General conversion to long long is tested by test_long_api_inner.
274+ This test will concentrate on proper handling of overflow.
275+ [clinic start generated code]*/
250276
251277static PyObject *
252- test_long_long_and_overflow (PyObject * self , PyObject * Py_UNUSED (ignored ))
278+ _testcapi_test_long_long_and_overflow_impl (PyObject * module )
279+ /*[clinic end generated code: output=0b92330786f45483 input=544bb0aefe5e8a9e]*/
253280{
254281 PyObject * num , * one , * temp ;
255282 long long value ;
@@ -405,13 +432,18 @@ test_long_long_and_overflow(PyObject *self, PyObject *Py_UNUSED(ignored))
405432 Py_RETURN_NONE ;
406433}
407434
408- /* Test the PyLong_As{Size,Ssize}_t API. At present this just tests that
409- non-integer arguments are handled correctly. It should be extended to
410- test overflow handling.
411- */
435+ /*[clinic input]
436+ _testcapi.test_long_as_size_t
437+
438+ Test the PyLong_As{Size,Ssize}_t API.
439+
440+ At present this just tests that non-integer arguments are handled correctly.
441+ It should be extended to test overflow handling.
442+ [clinic start generated code]*/
412443
413444static PyObject *
414- test_long_as_size_t (PyObject * self , PyObject * Py_UNUSED (ignored ))
445+ _testcapi_test_long_as_size_t_impl (PyObject * module )
446+ /*[clinic end generated code: output=f6490ea2b41e6173 input=922990c4a3edfb0d]*/
415447{
416448 size_t out_u ;
417449 Py_ssize_t out_s ;
@@ -442,9 +474,13 @@ test_long_as_size_t(PyObject *self, PyObject *Py_UNUSED(ignored))
442474 return Py_None ;
443475}
444476
477+ /*[clinic input]
478+ _testcapi.test_long_as_unsigned_long_long_mask
479+ [clinic start generated code]*/
480+
445481static PyObject *
446- test_long_as_unsigned_long_long_mask (PyObject * self ,
447- PyObject * Py_UNUSED ( ignored ))
482+ _testcapi_test_long_as_unsigned_long_long_mask_impl (PyObject * module )
483+ /*[clinic end generated code: output=e3e16cd0189440cc input=eb2438493ae7b9af]*/
448484{
449485 unsigned long long res = PyLong_AsUnsignedLongLongMask (NULL );
450486
@@ -462,12 +498,13 @@ test_long_as_unsigned_long_long_mask(PyObject *self,
462498 Py_RETURN_NONE ;
463499}
464500
465- /* Test the PyLong_AsDouble API. At present this just tests that
466- non-integer arguments are handled correctly.
467- */
501+ /*[clinic input]
502+ _testcapi.test_long_as_double
503+ [clinic start generated code] */
468504
469505static PyObject *
470- test_long_as_double (PyObject * self , PyObject * Py_UNUSED (ignored ))
506+ _testcapi_test_long_as_double_impl (PyObject * module )
507+ /*[clinic end generated code: output=deca0898e15adde5 input=c77bc88ef5a1de76]*/
471508{
472509 double out ;
473510
@@ -487,9 +524,13 @@ test_long_as_double(PyObject *self, PyObject *Py_UNUSED(ignored))
487524 return Py_None ;
488525}
489526
490- /* Simple test of _PyLong_NumBits and _PyLong_Sign. */
527+ /*[clinic input]
528+ _testcapi.test_long_numbits
529+ [clinic start generated code]*/
530+
491531static PyObject *
492- test_long_numbits (PyObject * self , PyObject * Py_UNUSED (ignored ))
532+ _testcapi_test_long_numbits_impl (PyObject * module )
533+ /*[clinic end generated code: output=9eaf8458cb15d7f7 input=265c02d48a13059e]*/
493534{
494535 struct triple {
495536 long input ;
@@ -534,8 +575,16 @@ test_long_numbits(PyObject *self, PyObject *Py_UNUSED(ignored))
534575 Py_RETURN_NONE ;
535576}
536577
578+ /*[clinic input]
579+ _testcapi.call_long_compact_api
580+ arg: object
581+ /
582+ [clinic start generated code]*/
583+
537584static PyObject *
538- check_long_compact_api (PyObject * self , PyObject * arg )
585+ _testcapi_call_long_compact_api (PyObject * module , PyObject * arg )
586+ /*[clinic end generated code: output=7e3894f611b1b2b7 input=87b87396967af14c]*/
587+
539588{
540589 assert (PyLong_Check (arg ));
541590 int is_compact = PyUnstable_Long_IsCompact ((PyLongObject * )arg );
@@ -547,15 +596,15 @@ check_long_compact_api(PyObject *self, PyObject *arg)
547596}
548597
549598static PyMethodDef test_methods [] = {
550- { "test_long_and_overflow" , test_long_and_overflow , METH_NOARGS },
551- { "test_long_api" , test_long_api , METH_NOARGS },
552- { "test_long_as_double" , test_long_as_double , METH_NOARGS },
553- { "test_long_as_size_t" , test_long_as_size_t , METH_NOARGS },
554- { "test_long_as_unsigned_long_long_mask" , test_long_as_unsigned_long_long_mask , METH_NOARGS },
555- { "test_long_long_and_overflow" , test_long_long_and_overflow , METH_NOARGS },
556- { "test_long_numbits" , test_long_numbits , METH_NOARGS },
557- { "test_longlong_api" , test_longlong_api , METH_NOARGS },
558- { "call_long_compact_api" , check_long_compact_api , METH_O },
599+ _TESTCAPI_TEST_LONG_AND_OVERFLOW_METHODDEF
600+ _TESTCAPI_TEST_LONG_API_METHODDEF
601+ _TESTCAPI_TEST_LONG_AS_DOUBLE_METHODDEF
602+ _TESTCAPI_TEST_LONG_AS_SIZE_T_METHODDEF
603+ _TESTCAPI_TEST_LONG_AS_UNSIGNED_LONG_LONG_MASK_METHODDEF
604+ _TESTCAPI_TEST_LONG_LONG_AND_OVERFLOW_METHODDEF
605+ _TESTCAPI_TEST_LONG_NUMBITS_METHODDEF
606+ _TESTCAPI_TEST_LONGLONG_API_METHODDEF
607+ _TESTCAPI_CALL_LONG_COMPACT_API_METHODDEF
559608 {NULL },
560609};
561610
0 commit comments