44 F_S_TO_PY convert signed to pylong; TYPENAME -> PyObject*
55 F_PY_TO_S convert pylong to signed; PyObject* -> TYPENAME
66 F_U_TO_PY convert unsigned to pylong; unsigned TYPENAME -> PyObject*
7- F_PY_TO_U convert pylong to unsigned; PyObject* -> TypeError
8- F_ERROR error-report function; char* -> PyObject* (returns NULL)
7+ F_PY_TO_U convert pylong to unsigned; PyObject* -> unsigned TYPENAME
98*/
109
1110static PyObject *
12- TESTNAME ()
11+ TESTNAME (PyObject * error ( const char * ) )
1312{
1413 const int NBITS = sizeof (TYPENAME ) * 8 ;
1514 unsigned TYPENAME base ;
@@ -45,30 +44,30 @@ TESTNAME()
4544
4645 pyresult = F_U_TO_PY (uin );
4746 if (pyresult == NULL )
48- return F_ERROR (
47+ return error (
4948 "unsigned unexpected null result" );
5049
5150 uout = F_PY_TO_U (pyresult );
5251 if (uout == (unsigned TYPENAME )-1 && PyErr_Occurred ())
53- return F_ERROR (
52+ return error (
5453 "unsigned unexpected -1 result" );
5554 if (uout != uin )
56- return F_ERROR (
55+ return error (
5756 "unsigned output != input" );
5857 UNBIND (pyresult );
5958
6059 in = (TYPENAME )uin ;
6160 pyresult = F_S_TO_PY (in );
6261 if (pyresult == NULL )
63- return F_ERROR (
62+ return error (
6463 "signed unexpected null result" );
6564
6665 out = F_PY_TO_S (pyresult );
6766 if (out == (TYPENAME )- 1 && PyErr_Occurred ())
68- return F_ERROR (
67+ return error (
6968 "signed unexpected -1 result" );
7069 if (out != in )
71- return F_ERROR (
70+ return error (
7271 "signed output != input" );
7372 UNBIND (pyresult );
7473 }
@@ -85,37 +84,37 @@ TESTNAME()
8584
8685 one = PyLong_FromLong (1 );
8786 if (one == NULL )
88- return F_ERROR (
87+ return error (
8988 "unexpected NULL from PyLong_FromLong" );
9089
9190 /* Unsigned complains about -1? */
9291 x = PyNumber_Negative (one );
9392 if (x == NULL )
94- return F_ERROR (
93+ return error (
9594 "unexpected NULL from PyNumber_Negative" );
9695
9796 uout = F_PY_TO_U (x );
9897 if (uout != (unsigned TYPENAME )-1 || !PyErr_Occurred ())
99- return F_ERROR (
98+ return error (
10099 "PyLong_AsUnsignedXXX(-1) didn't complain" );
101100 PyErr_Clear ();
102101 UNBIND (x );
103102
104103 /* Unsigned complains about 2**NBITS? */
105104 y = PyLong_FromLong ((long )NBITS );
106105 if (y == NULL )
107- return F_ERROR (
106+ return error (
108107 "unexpected NULL from PyLong_FromLong" );
109108
110109 x = PyNumber_Lshift (one , y ); /* 1L << NBITS, == 2**NBITS */
111110 UNBIND (y );
112111 if (x == NULL )
113- return F_ERROR (
112+ return error (
114113 "unexpected NULL from PyNumber_Lshift" );
115114
116115 uout = F_PY_TO_U (x );
117116 if (uout != (unsigned TYPENAME )-1 || !PyErr_Occurred ())
118- return F_ERROR (
117+ return error (
119118 "PyLong_AsUnsignedXXX(2**NBITS) didn't "
120119 "complain" );
121120 PyErr_Clear ();
@@ -125,12 +124,12 @@ TESTNAME()
125124 y = PyNumber_Rshift (x , one ); /* 2**(NBITS-1) */
126125 UNBIND (x );
127126 if (y == NULL )
128- return F_ERROR (
127+ return error (
129128 "unexpected NULL from PyNumber_Rshift" );
130129
131130 out = F_PY_TO_S (y );
132131 if (out != (TYPENAME )- 1 || !PyErr_Occurred ())
133- return F_ERROR (
132+ return error (
134133 "PyLong_AsXXX(2**(NBITS-1)) didn't "
135134 "complain" );
136135 PyErr_Clear ();
@@ -140,18 +139,18 @@ TESTNAME()
140139 x = PyNumber_Negative (y ); /* -(2**(NBITS-1)) */
141140 UNBIND (y );
142141 if (x == NULL )
143- return F_ERROR (
142+ return error (
144143 "unexpected NULL from PyNumber_Negative" );
145144
146145 y = PyNumber_Subtract (x , one ); /* -(2**(NBITS-1))-1 */
147146 UNBIND (x );
148147 if (y == NULL )
149- return F_ERROR (
148+ return error (
150149 "unexpected NULL from PyNumber_Subtract" );
151150
152151 out = F_PY_TO_S (y );
153152 if (out != (TYPENAME )- 1 || !PyErr_Occurred ())
154- return F_ERROR (
153+ return error (
155154 "PyLong_AsXXX(-2**(NBITS-1)-1) didn't "
156155 "complain" );
157156 PyErr_Clear ();
0 commit comments