diff options
author | Petr Viktorin <encukou@gmail.com> | 2022-08-09 07:03:11 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-09 07:03:11 (GMT) |
commit | eb81c1aea16914347919745e843c982ed831a9fb (patch) | |
tree | 7dc524185b560e7420debef076120622679d1474 | |
parent | 7c8626ab3db0b896052596066e1a2099b53ed135 (diff) | |
download | cpython-eb81c1aea16914347919745e843c982ed831a9fb.zip cpython-eb81c1aea16914347919745e843c982ed831a9fb.tar.gz cpython-eb81c1aea16914347919745e843c982ed831a9fb.tar.bz2 |
Disable Limited API tests with Py_TRACE_REFS (GH-95796)
-rw-r--r-- | Lib/test/test_call.py | 4 | ||||
-rw-r--r-- | Modules/_testcapi/vectorcall_limited.c | 15 |
2 files changed, 19 insertions, 0 deletions
diff --git a/Lib/test/test_call.py b/Lib/test/test_call.py index d3a254f1..131b45e 100644 --- a/Lib/test/test_call.py +++ b/Lib/test/test_call.py @@ -9,6 +9,7 @@ import collections import itertools import gc import contextlib +import sys class BadStr(str): @@ -759,6 +760,9 @@ class TestPEP590(unittest.TestCase): self.assertEqual(expected, meth(*args1, **kwargs)) self.assertEqual(expected, wrapped(*args, **kwargs)) + @unittest.skipIf( + hasattr(sys, 'getobjects'), + "Limited API is not compatible with Py_TRACE_REFS") def test_vectorcall_limited(self): from _testcapi import pyobject_vectorcall obj = _testcapi.LimitedVectorCallClass() diff --git a/Modules/_testcapi/vectorcall_limited.c b/Modules/_testcapi/vectorcall_limited.c index 63ea3b3..c518431 100644 --- a/Modules/_testcapi/vectorcall_limited.c +++ b/Modules/_testcapi/vectorcall_limited.c @@ -1,3 +1,16 @@ +#include "pyconfig.h" // Py_TRACE_REFS + +#ifdef Py_TRACE_REFS + +// Py_TRACE_REFS is incompatible with Limited API +#include "parts.h" +int +_PyTestCapi_Init_VectorcallLimited(PyObject *m) { + return 0; +} + +#else + #define Py_LIMITED_API 0x030c0000 // 3.12 #include "parts.h" #include "structmember.h" // PyMemberDef @@ -75,3 +88,5 @@ _PyTestCapi_Init_VectorcallLimited(PyObject *m) { return 0; } + +#endif // Py_TRACE_REFS |