Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r93440:dae84ef106dd Date: 2017-12-16 10:31 +0100 http://bitbucket.org/pypy/pypy/changeset/dae84ef106dd/
Log: Half-test, and fix diff --git a/pypy/module/cpyext/pyerrors.py b/pypy/module/cpyext/pyerrors.py --- a/pypy/module/cpyext/pyerrors.py +++ b/pypy/module/cpyext/pyerrors.py @@ -122,7 +122,9 @@ error indicator.""" raise oefmt(space.w_TypeError, "bad argument type for built-in operation") -@cpython_api([], lltype.Void) +# NB. this returns 'void' in CPython, but we can't easily, otherwise the +# function is supposed not to fail +@cpython_api([], rffi.INT_real, error=-1) def PyErr_BadInternalCall(space): raise oefmt(space.w_SystemError, "Bad internal call!") diff --git a/pypy/module/cpyext/test/test_pyerrors.py b/pypy/module/cpyext/test/test_pyerrors.py --- a/pypy/module/cpyext/test/test_pyerrors.py +++ b/pypy/module/cpyext/test/test_pyerrors.py @@ -425,3 +425,15 @@ assert orig_exc_info == reset_sys_exc_info assert new_exc_info == (new_exc.__class__, new_exc, None) assert new_exc_info == new_sys_exc_info + + def test_PyErr_BadInternalCall(self): + # NB. it only seemed to fail when run with '-s'... but I think + # that it always printed stuff to stderr + module = self.import_extension('foo', [ + ("oops", "METH_NOARGS", + r''' + PyErr_BadInternalCall(); + return NULL; + '''), + ]) + raises(SystemError, module.oops) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit