]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Disable Limited API tests with Py_TRACE_REFS (GH-95796)
authorPetr Viktorin <encukou@gmail.com>
Tue, 9 Aug 2022 07:03:11 +0000 (09:03 +0200)
committerGitHub <noreply@github.com>
Tue, 9 Aug 2022 07:03:11 +0000 (09:03 +0200)
Lib/test/test_call.py
Modules/_testcapi/vectorcall_limited.c

index d3a254f15b62911526b5953781b4a141efe9dd23..131b45e6caaab34dd2484faa29344005590372f1 100644 (file)
@@ -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()
index 63ea3b3101b2766817a990d10ee65211e82ce784..c5184318e292e6cadd8d02520b5b4413333323b0 100644 (file)
@@ -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