]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-115058: Add ``reset_rare_event_counters`` function in `_testinternalcapi` (GH...
authorKirill Podoprigora <kirill.bast9@mail.ru>
Mon, 12 Feb 2024 16:05:30 +0000 (19:05 +0300)
committerGitHub <noreply@github.com>
Mon, 12 Feb 2024 16:05:30 +0000 (16:05 +0000)
Lib/test/test_optimizer.py
Modules/_testinternalcapi.c

index c8554c40df4b2deac9467bbba178eee06c6efefb..dfea8be3c6956f31d47214130647adce19d5ab59 100644 (file)
@@ -7,6 +7,9 @@ _testinternalcapi = import_helper.import_module("_testinternalcapi")
 
 
 class TestRareEventCounters(unittest.TestCase):
+    def setUp(self):
+        _testinternalcapi.reset_rare_event_counters()
+
     def test_set_class(self):
         class A:
             pass
index 0bb739b5398b113d48c69465ba8ffde7db1cbe3d..3834f00009cea4eae2ca83be08c7238b3af8044a 100644 (file)
@@ -1650,6 +1650,20 @@ get_rare_event_counters(PyObject *self, PyObject *type)
     );
 }
 
+static PyObject *
+reset_rare_event_counters(PyObject *self, PyObject *Py_UNUSED(type))
+{
+    PyInterpreterState *interp = PyInterpreterState_Get();
+
+    interp->rare_events.set_class = 0;
+    interp->rare_events.set_bases = 0;
+    interp->rare_events.set_eval_frame_func = 0;
+    interp->rare_events.builtin_dict = 0;
+    interp->rare_events.func_modification = 0;
+
+    return Py_None;
+}
+
 
 #ifdef Py_GIL_DISABLED
 static PyObject *
@@ -1727,6 +1741,7 @@ static PyMethodDef module_functions[] = {
     _TESTINTERNALCAPI_TEST_LONG_NUMBITS_METHODDEF
     {"get_type_module_name",    get_type_module_name,            METH_O},
     {"get_rare_event_counters", get_rare_event_counters, METH_NOARGS},
+    {"reset_rare_event_counters", reset_rare_event_counters, METH_NOARGS},
 #ifdef Py_GIL_DISABLED
     {"py_thread_id", get_py_thread_id, METH_NOARGS},
 #endif