From: Eric Snow Date: Mon, 29 Jul 2024 16:23:23 +0000 (-0600) Subject: gh-117482: Fix the Slot Wrapper Inheritance Tests (gh-122248) X-Git-Tag: v3.14.0a1~947 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=490e0ad83ac72c5688dfbbab4eac61ccfd7be5fd;p=thirdparty%2FPython%2Fcpython.git gh-117482: Fix the Slot Wrapper Inheritance Tests (gh-122248) The tests were only checking cases where the slot wrapper was present in the initial case. They were missing when the slot wrapper was added in the additional initializations. This fixes that. --- diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 37e3305036f4..f4dce793ff1a 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -2608,6 +2608,61 @@ def copy_python_src_ignore(path, names): return ignored +def iter_builtin_types(): + for obj in __builtins__.values(): + if not isinstance(obj, type): + continue + cls = obj + if cls.__module__ != 'builtins': + continue + yield cls + + +def iter_slot_wrappers(cls): + assert cls.__module__ == 'builtins', cls + + def is_slot_wrapper(name, value): + if not isinstance(value, types.WrapperDescriptorType): + assert not repr(value).startswith(' 3 + ? main_argc - 2 + : INIT_LOOPS; - for (int i=1; i <= INIT_LOOPS; i++) { - fprintf(stderr, "--- Loop #%d ---\n", i); + for (int i=0; i < loops; i++) { + fprintf(stderr, "--- Loop #%d ---\n", i+1); fflush(stderr); + if (main_argc > 3) { + code = main_argv[i+2]; + } + _testembed_Py_InitializeFromConfig(); int err = PyRun_SimpleString(code); Py_Finalize();