diff options
author | Victor Stinner <vstinner@redhat.com> | 2018-10-25 15:28:11 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-25 15:28:11 (GMT) |
commit | 18618e652c56e61a134e596b315a13c7cb997a89 (patch) | |
tree | 007e352f7e49a7b78469a1bff62a8a01d1bb2f8d /Lib | |
parent | d03b7757811ae51277f8ed399a9a0fd78dfd3425 (diff) | |
download | cpython-18618e652c56e61a134e596b315a13c7cb997a89.zip cpython-18618e652c56e61a134e596b315a13c7cb997a89.tar.gz cpython-18618e652c56e61a134e596b315a13c7cb997a89.tar.bz2 |
bpo-35059: Add Py_STATIC_INLINE() macro (GH-10093)
* Add Py_STATIC_INLINE() macro to declare a "static inline" function.
If the compiler supports it, try to always inline the function even if no
optimization level was specified.
* Modify pydtrace.h to use Py_STATIC_INLINE() when WITH_DTRACE is
not defined.
* Add an unit test on Py_DECREF() to make sure that
_Py_NegativeRefcount() reports the correct filename.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_capi.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py index 49297f4..a732f4f 100644 --- a/Lib/test/test_capi.py +++ b/Lib/test/test_capi.py @@ -315,6 +315,23 @@ class CAPITest(unittest.TestCase): self.assertRaises(TypeError, _testcapi.get_mapping_values, bad_mapping) self.assertRaises(TypeError, _testcapi.get_mapping_items, bad_mapping) + @unittest.skipUnless(hasattr(_testcapi, 'negative_refcount'), + 'need _testcapi.negative_refcount') + def test_negative_refcount(self): + # bpo-35059: Check that Py_DECREF() reports the correct filename + # when calling _Py_NegativeRefcount() to abort Python. + code = textwrap.dedent(""" + import _testcapi + from test import support + + with support.SuppressCrashReport(): + _testcapi.negative_refcount() + """) + rc, out, err = assert_python_failure('-c', code) + self.assertRegex(err, + br'_testcapimodule\.c:[0-9]+ object at .* ' + br'has negative ref count', err) + class TestPendingCalls(unittest.TestCase): |