Python 3.12.0a2

This commit is contained in:
Thomas Wouters 2022-11-14 12:12:42 +01:00
parent db115682bd
commit 3b9d793efc
107 changed files with 1134 additions and 293 deletions

View File

@ -20,10 +20,10 @@
#define PY_MINOR_VERSION 12
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 1
#define PY_RELEASE_SERIAL 2
/* Version as a string */
#define PY_VERSION "3.12.0a1+"
#define PY_VERSION "3.12.0a2"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# Autogenerated by Sphinx on Tue Oct 25 00:07:40 2022
# Autogenerated by Sphinx on Mon Nov 14 12:13:19 2022
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@ -358,7 +358,7 @@ topics = {'assert': 'The "assert" statement\n'
'yield_expression)]\n'
'\n'
'The difference from normal Assignment statements is that only '
'single\n'
'a single\n'
'target is allowed.\n'
'\n'
'For simple names as assignment targets, if in class or module '
@ -408,12 +408,13 @@ topics = {'assert': 'The "assert" statement\n'
'analysis\n'
' tools and IDEs.\n'
'\n'
'Changed in version 3.8: Now annotated assignments allow same\n'
'expressions in the right hand side as the regular '
'assignments.\n'
'Previously, some expressions (like un-parenthesized tuple '
'expressions)\n'
'caused a syntax error.\n',
'Changed in version 3.8: Now annotated assignments allow the '
'same\n'
'expressions in the right hand side as regular assignments. '
'Previously,\n'
'some expressions (like un-parenthesized tuple expressions) '
'caused a\n'
'syntax error.\n',
'async': 'Coroutines\n'
'**********\n'
'\n'
@ -7320,7 +7321,7 @@ topics = {'assert': 'The "assert" statement\n'
'the clauses had been separated out into individual import '
'statements.\n'
'\n'
'The details of the first step, finding and loading modules are\n'
'The details of the first step, finding and loading modules, are\n'
'described in greater detail in the section on the import system, '
'which\n'
'also describes the various types of packages and modules that can '
@ -11314,6 +11315,10 @@ topics = {'assert': 'The "assert" statement\n'
'*start* and\n'
' *end* are interpreted as in slice notation.\n'
'\n'
' If *sub* is empty, returns the number of empty strings '
'between\n'
' characters which is the length of the string plus one.\n'
'\n'
"str.encode(encoding='utf-8', errors='strict')\n"
'\n'
' Return an encoded version of the string as a bytes '
@ -12360,10 +12365,12 @@ topics = {'assert': 'The "assert" statement\n'
'2. As in Standard C, up to three octal digits are accepted.\n'
'\n'
' Changed in version 3.11: Octal escapes with value larger than\n'
' "0o377" produce a "DeprecationWarning". In a future Python '
'version\n'
' they will be a "SyntaxWarning" and eventually a '
'"SyntaxError".\n'
' "0o377" produce a "DeprecationWarning".\n'
'\n'
' Changed in version 3.12: Octal escapes with value larger than\n'
' "0o377" produce a "SyntaxWarning". In a future Python version '
'they\n'
' will be eventually a "SyntaxError".\n'
'\n'
'3. Unlike in Standard C, exactly two hex digits are required.\n'
'\n'
@ -12398,9 +12405,13 @@ topics = {'assert': 'The "assert" statement\n'
'\n'
' Changed in version 3.6: Unrecognized escape sequences produce '
'a\n'
' "DeprecationWarning". In a future Python version they will be '
' "DeprecationWarning".\n'
'\n'
' Changed in version 3.12: Unrecognized escape sequences produce '
'a\n'
' "SyntaxWarning" and eventually a "SyntaxError".\n'
' "SyntaxWarning". In a future Python version they will be '
'eventually\n'
' a "SyntaxError".\n'
'\n'
'Even in a raw literal, quotes can be escaped with a backslash, '
'but the\n'
@ -13974,17 +13985,11 @@ topics = {'assert': 'The "assert" statement\n'
'dictionaries or\n'
'other mutable types (that are compared by value rather than '
'by object\n'
'identity) may not be used as keys. Numeric types used for '
'keys obey\n'
'the normal rules for numeric comparison: if two numbers '
'compare equal\n'
'(such as "1" and "1.0") then they can be used '
'interchangeably to index\n'
'the same dictionary entry. (Note however, that since '
'computers store\n'
'floating-point numbers as approximations it is usually '
'unwise to use\n'
'them as dictionary keys.)\n'
'identity) may not be used as keys. Values that compare equal '
'(such as\n'
'"1", "1.0", and "True") can be used interchangeably to index '
'the same\n'
'dictionary entry.\n'
'\n'
'class dict(**kwargs)\n'
'class dict(mapping, **kwargs)\n'

1100
Misc/NEWS.d/3.12.0a2.rst Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +0,0 @@
Don't use vendored ``libmpdec`` headers if :option:`--with-system-libmpdec`
is passed to :program:`configure`.
Don't use vendored ``libexpat`` headers if :option:`--with-system-expat`
is passed to :program:`!configure`.

View File

@ -1 +0,0 @@
Fix ``make regen-test-levenshtein`` for out-of-tree builds.

View File

@ -1,3 +0,0 @@
Remove PCbuild/lib.pyproj: it's not used for anything, is only a minor
convenience for Visual Studio users (who probably mostly don't even know
about it), and it takes a lot of maintenance effort to keep updated.

View File

@ -1,9 +0,0 @@
Add new tooling, in ``Tools/cases_generator``,
to generate the interpreter switch statement from a list of opcode definitions.
This only affects adding, modifying or removing instruction definitions.
The instruction definitions now live in ``Python/bytecodes.c``,
in the form of a `custom DSL (under development)
<https://github.com/faster-cpython/ideas/blob/main/3.12/interpreter_definition.md>`__.
The tooling reads this file and writes ``Python/generated_cases.c.h``,
which is then included by ``Python/ceval.c`` to provide most of the cases
of the main interpreter switch.

View File

@ -1 +0,0 @@
Use ``python3.11``, if available, for regeneration and freezing.

View File

@ -1 +0,0 @@
Drop unused build dependency on ``readelf``.

View File

@ -1,2 +0,0 @@
Specify the full path to the source location for ``make docclean`` (needed for
cross-builds).

View File

@ -1 +0,0 @@
Fix build with ``PYTHON_FOR_REGEN=python3.8``.

View File

@ -1 +0,0 @@
Fix ``-Wimplicit-int`` compiler warning in :program:`configure` check for ``PTHREAD_SCOPE_SYSTEM``.

View File

@ -1,2 +0,0 @@
Add :c:func:`PyFrame_GetVar` and :c:func:`PyFrame_GetVarString` functions to
get a frame variable by its name. Patch by Victor Stinner.

View File

@ -1,4 +0,0 @@
``Py_InitializeEx`` now correctly calls ``PyConfig_Clear`` after initializing
the interpreter (the omission didn't cause a memory leak only because none
of the dynamically allocated config fields are populated by the wrapper
function)

View File

@ -1,4 +0,0 @@
A ``_PyInterpreterConfig`` has been added and ``_Py_NewInterpreter()`` has
been renamed to ``_Py_NewInterpreterFromConfig()``. The
"isolated_subinterpreters" argument is now a granular config that captures
the previous behavior. Note that this is all "private" API.

View File

@ -1,9 +0,0 @@
Some configurable capabilities of sub-interpreters have changed.
They always allow subprocesses (:mod:`subprocess`) now, whereas before
subprocesses could be optionally disaallowed for a sub-interpreter.
Instead :func:`os.exec` can now be disallowed.
Disallowing daemon threads is now supported. Disallowing all threads
is still allowed, but is never done by default.
Note that the optional restrictions are only available through
``_Py_NewInterpreterFromConfig()``, which isn't a public API.
They do not affect the main interpreter, nor :c:func:`Py_NewInterpreter`.

View File

@ -1 +0,0 @@
Add ``getbufferproc`` and ``releasebufferproc`` to the stable API.

View File

@ -1,3 +0,0 @@
Fix use-after-free in ``Py_SetPythonHome(NULL)``,
``Py_SetProgramName(NULL)`` and ``_Py_SetProgramFullPath(NULL)`` function
calls. Issue reported by Benedikt Reinartz. Patch by Victor Stinner.

View File

@ -1,3 +0,0 @@
The :c:macro:`Py_CLEAR`, :c:macro:`Py_SETREF` and :c:macro:`Py_XSETREF` macros
now only evaluate their argument once. If the argument has side effects, these
side effects are no longer duplicated. Patch by Victor Stinner.

View File

@ -1 +0,0 @@
Allow :mod:`pdb` to locate source for frozen modules in the standard library.

View File

@ -1,3 +0,0 @@
Expose :data:`~socket.ETH_P_ALL` and some of the
:ref:`ETHERTYPE_* constants <socket-ethernet-types>` in :mod:`socket`.
Patch by Noam Cohen.

View File

@ -1,3 +0,0 @@
Add _pylong.py module. It includes asymptotically faster algorithms that
can be used for operations on integers with many digits. It is used by
longobject.c to speed up some operations.

View File

@ -1,2 +0,0 @@
The :opcode:`FOR_ITER` now leaves the iterator on the stack on termination
of the loop. This is to assist specialization of loops for generators.

View File

@ -1,3 +0,0 @@
:exc:`ImportError` raised from failed ``from <module> import <name>`` now
include suggestions for the value of ``<name>`` based on the available names
in ``<module>``. Patch by Pablo Galindo

View File

@ -1,2 +0,0 @@
Print exception class name instead of its string representation when raising
errors from :mod:`ctypes` calls.

View File

@ -1,2 +0,0 @@
Quicken all code objects, and specialize adaptive bytecode instructions more
aggressively.

View File

@ -1 +0,0 @@
Fix detection of MAC addresses for :mod:`uuid` on certain OSs. Patch by Chaim Sanders

View File

@ -1,13 +0,0 @@
When calling into Python code from C code, through :c:func:`PyEval_EvalFrameEx` or
a related C-API function, a shim frame in inserted into the call stack.
This occurs in the ``_PyEval_EvalFrameDefault()`` function.
The extra frame should be invisible to all Python and most C extensions,
but out-of-process profilers and debuggers need to be aware of it.
These shim frames can be detected by checking
``frame->owner == FRAME_OWNED_BY_CSTACK``.
Extensions implementing their own interpreters using PEP 523 need to be
aware of this shim frame and the changes to the semantics of
:opcode:`RETURN_VALUE`, :opcode:`YIELD_VALUE`, and :opcode:`RETURN_GENERATOR`,
which now clear the frame.

View File

@ -1,4 +0,0 @@
Rather than changing :attr:`~types.CodeType.co_code`, the interpreter will
now display a :exc:`RuntimeWarning` and assign :const:`None` to any fast
locals that are left unbound after jumps or :keyword:`del`
statements executed while tracing.

View File

@ -1,3 +0,0 @@
Fix an issue where member descriptors (such as those for
:attr:`~object.__slots__`) could behave incorrectly or crash instead of
raising a :exc:`TypeError` when accessed via an instance of an invalid type.

View File

@ -1,7 +0,0 @@
Added the methods :c:func:`PyObject_Vectorcall` and
:c:func:`PyObject_VectorcallMethod` to the :ref:`Limited API <stable>` along
with the auxiliary macro constant :const:`PY_VECTORCALL_ARGUMENTS_OFFSET`.
The availability of these functions enables more efficient :PEP:`590` vector
calls from binary extension modules that avoid argument boxing/unboxing
overheads.

View File

@ -1 +0,0 @@
Fix source locations of :keyword:`match` sub-patterns.

View File

@ -1,3 +0,0 @@
Add specialization of :opcode:`FOR_ITER` for generators. Saves multiple
layers of dispatch and checking to get from the :opcode:`FOR_ITER`
instruction in the caller to the :opcode:`RESUME` in the generator.

View File

@ -1,4 +0,0 @@
Use complete source locations to simplify detection of ``__future__``
imports which are not at the beginning of the file. Also corrects the offset
in the exception raised in one case, which was off by one and impeded
highlighting.

View File

@ -1,2 +0,0 @@
Fix multiple crashes in debug mode when ``str`` subclasses
are used instead of ``str`` itself.

View File

@ -1,2 +0,0 @@
Lower the recursion depth for marshal on WASI to support (in-development)
wasmtime 2.0.

View File

@ -1,4 +0,0 @@
Fix subscription of type aliases containing bare generic types or types like
:class:`~typing.TypeVar`: for example ``tuple[A, T][int]`` and
``tuple[TypeVar, T][int]``, where ``A`` is a generic type, and ``T`` is a
type variable.

View File

@ -1,2 +0,0 @@
Improve the :exc:`SyntaxError` error message when the user types ``import x
from y`` instead of ``from y import x``. Patch by Pablo Galindo

View File

@ -1,2 +0,0 @@
Handle StopIteration and StopAsyncIteration raised in generator or
coroutines in the bytecode, rather than in wrapping C code.

View File

@ -1,7 +0,0 @@
A backslash-character pair that is not a valid escape sequence now generates a
:exc:`SyntaxWarning`, instead of :exc:`DeprecationWarning`. For example,
``re.compile("\d+\.\d+")`` now emits a :exc:`SyntaxWarning` (``"\d"`` is an
invalid escape sequence), use raw strings for regular expression:
``re.compile(r"\d+\.\d+")``. In a future Python version, :exc:`SyntaxError`
will eventually be raised, instead of :exc:`SyntaxWarning`. Patch by Victor
Stinner.

View File

@ -1,4 +0,0 @@
Octal escapes with value larger than ``0o377`` (ex: ``"\477"``), deprecated
in Python 3.11, now produce a :exc:`SyntaxWarning`, instead of
:exc:`DeprecationWarning`. In a future Python version they will be
eventually a :exc:`SyntaxError`. Patch by Victor Stinner.

View File

@ -1,5 +0,0 @@
Improve the error suggestion for :exc:`NameError` exceptions for instances.
Now if a :exc:`NameError` is raised in a method and the instance has an
attribute that's exactly equal to the name in the exception, the suggestion
will include ``self.<NAME>`` instead of the closest match in the method
scope. Patch by Pablo Galindo

View File

@ -1,2 +0,0 @@
Fix the error reporting positions of specialized traceback anchors when the
source line contains Unicode characters.

View File

@ -1,5 +0,0 @@
Merge the adaptive opcode logic into each instruction's unquickened variant,
and merge the logic in ``EXTENDED_ARG_QUICK`` into :opcode:`EXTENDED_ARG`.
With these changes, the quickening that happens at code object creation is
now only responsible for initializing warmup counters and inserting
superinstructions.

View File

@ -1 +0,0 @@
Fix location of :exc:`SyntaxError` for a :keyword:`try` block with both :keyword:`except` and :keyword:`except* <except_star>`.

View File

@ -1,2 +0,0 @@
Update :mod:`faulthandler` to emit an error message with the proper
unexpected signal number. Patch by Dong-hee Na.

View File

@ -1,4 +0,0 @@
Fix calculation of :data:`sys._base_executable` when inside a POSIX virtual
environment using copies of the python binary when the base installation does
not provide the executable name used by the venv. Calculation will fall back to
alternative names ("python<MAJOR>", "python<MAJOR>.<MINOR>").

View File

@ -1 +0,0 @@
Fix failure in :keyword:`except* <except_star>` with unhashable exceptions.

View File

@ -1,3 +0,0 @@
The 18 global C variables holding the state of the allocators have been
moved to ``_PyRuntimeState``. This is a strictly internal change with no
change in behavior.

View File

@ -1,2 +0,0 @@
Fix an issue that prevented :c:type:`PyThreadState` and
:c:type:`PyInterpreterState` memory from being freed properly.

View File

@ -1 +0,0 @@
The compiler now removes all unused constants from code objects (except the first one, which may be a docstring).

View File

@ -1,2 +0,0 @@
Fix an issue that could potentially cause incorrect error handling for some
bytecode instructions.

View File

@ -1,6 +0,0 @@
The docs clearly say that ``PyImport_Inittab``,
:c:func:`PyImport_AppendInittab`, and :c:func:`PyImport_ExtendInittab`
should not be used after :c:func:`Py_Initialize` has been called.
We now enforce this for the two functions. Additionally, the runtime
now uses an internal copy of ``PyImport_Inittab``,
to guard against modification.

View File

@ -1,2 +0,0 @@
Update uname docs to clarify the special nature of the platform attribute
and to indicate when it became late-bound.

View File

@ -1 +0,0 @@
Changes wording of docstring for :func:`pathlib.Path.iterdir`.

View File

@ -1 +0,0 @@
Fix IndexError in :class:`argparse.ArgumentParser` when a ``store_true`` action is given an explicit argument.

View File

@ -1 +0,0 @@
Add walk_up argument in :meth:`pathlib.PurePath.relative_to`.

View File

@ -1,2 +0,0 @@
:func:`shutil.copytree` now applies the *ignore_dangling_symlinks* argument
recursively.

View File

@ -1,3 +0,0 @@
Fix an error when using a method of objects mocked with
:func:`unittest.mock.create_autospec` after it was sealed with
:func:`unittest.mock.seal` function.

View File

@ -1,2 +0,0 @@
Fixed a race condition that could cause :func:`sysconfig.get_config_var` to
incorrectly return :const:`None` in multi-threaded programs.

View File

@ -1,6 +0,0 @@
Add the :attr:`~sqlite3.Connection.autocommit` attribute
to :class:`sqlite3.Connection`
and the *autocommit* parameter to :func:`sqlite3.connect`
to control :pep:`249`-compliant
:ref:`transaction handling <sqlite3-transaction-control-autocommit>`.
Patch by Erlend E. Aasland.

View File

@ -1,5 +0,0 @@
Remove the *keyfile*, *certfile* and *check_hostname* parameters, deprecated
since Python 3.6, in modules: :mod:`ftplib`, :mod:`http.client`,
:mod:`imaplib`, :mod:`poplib` and :mod:`smtplib`. Use the *context*
parameter (*ssl_context* in :mod:`imaplib`) instead. Patch by Victor
Stinner.

View File

@ -1,2 +0,0 @@
:mod:`ftplib`: Remove the ``FTP_TLS.ssl_version`` class attribute: use the
*context* parameter instead. Patch by Victor Stinner

View File

@ -1 +0,0 @@
Fix handling of ``bytes`` :term:`path-like objects <path-like object>` in :func:`os.ismount()`.

View File

@ -1 +0,0 @@
Remove modules :mod:`asyncore` and :mod:`asynchat`, which were deprecated by :pep:`594`.

View File

@ -1 +0,0 @@
Make sure ``patch.dict()`` can be applied on async functions.

View File

@ -1 +0,0 @@
Allow ``BUILTINS`` to be a valid field name for frozen dataclasses.

View File

@ -1,3 +0,0 @@
Improved :class:`TypeError` message for undefined abstract methods of a
:class:`abc.ABC` instance. The names of the missing methods are surrounded
by single-quotes to highlight them.

View File

@ -1,2 +0,0 @@
The :class:`array.array` class now supports subscripting, making it a
:term:`generic type`.

View File

@ -1,2 +0,0 @@
Add a mutex to unittest.mock.NonCallableMock to protect concurrent access
to mock attributes.

View File

@ -1,2 +0,0 @@
Fix :meth:`asyncio.StreamWriter.drain` to call ``protocol.connection_lost``
callback only once on Windows.

View File

@ -1,3 +0,0 @@
Fix internal error in the :mod:`re` module which in very rare circumstances
prevented compilation of a regular expression containing a :ref:`conditional
expression <re-conditional-expression>` without the "else" branch.

View File

@ -1,2 +0,0 @@
Prevent crashing in :mod:`traceback` when retrieving the byte-offset for
some source files that contain certain unicode characters.

View File

@ -1 +0,0 @@
Fix argument typechecks in :func:`!_overlapped.WSAConnect` and :func:`!_overlapped.Overlapped.WSASendTo` functions.

View File

@ -1 +0,0 @@
Fix ``_SelectorDatagramTransport`` to inherit from :class:`~asyncio.DatagramTransport` in :mod:`asyncio`. Patch by Kumar Aditya.

View File

@ -1,2 +0,0 @@
In :mod:`importlib._bootstrap`, enhance namespace package repr to `<module
'x' (namespace) from ['path']>`.

View File

@ -1,2 +0,0 @@
Use the frame bound builtins when offering a name suggestion in
:mod:`traceback` to prevent crashing when ``__builtins__`` is not a dict.

View File

@ -1 +0,0 @@
Fix memory leak in :func:`math.dist` when both points don't have the same dimension. Patch by Kumar Aditya.

View File

@ -1 +0,0 @@
Clean up refleak on failed module initialisation in :mod:`_io`.

View File

@ -1 +0,0 @@
Clean up refleaks on failed module initialisation in in :mod:`_pickle`

View File

@ -1 +0,0 @@
Clean up refleak on failed module initialisation in :mod:`_zoneinfo`

View File

@ -1,2 +0,0 @@
Now :mod:`_pyio` is consistent with :mod:`_io` in raising ``ValueError``
when executing methods over closed buffers.

View File

@ -1,5 +0,0 @@
Remove the ``distutils`` package. It was deprecated in Python 3.10 by
:pep:`632` "Deprecate distutils module". For projects still using
``distutils`` and cannot be updated to something else, the ``setuptools``
project can be installed: it still provides ``distutils``. Patch by Victor
Stinner.

View File

@ -1 +0,0 @@
Update the bundled copy of pip to version 22.3.1.

View File

@ -1 +0,0 @@
``enum.auto()`` is now correctly activated when combined with other assignment values. E.g. ``ONE = auto(), 'some text'`` will now evaluate as ``(1, 'some text')``.

View File

@ -1 +0,0 @@
Fix :class:`statistics.NormalDist` pickle with ``0`` and ``1`` protocols.

View File

@ -1 +0,0 @@
fix negative numbers failing in verify()

View File

@ -1 +0,0 @@
Remove older version of ``_SSLProtocolTransport.get_write_buffer_limits`` in :mod:`!asyncio.sslproto`

View File

@ -1,2 +0,0 @@
Fix ``SystemError`` in :mod:`ctypes` when exception was not set during
``__initsubclass__``.

View File

@ -1 +0,0 @@
Fixed bug where :func:`inspect.signature` reported incorrect arguments for decorated methods.

View File

@ -1 +0,0 @@
Improve performance of :func:`secrets.token_hex`.

View File

@ -1 +0,0 @@
Deprecate :class:`asyncio.AbstractChildWatcher` to be removed in Python 3.14. Patch by Kumar Aditya.

View File

@ -1,2 +0,0 @@
Fix bug in :func:`urllib.parse.urlparse` that causes URL schemes that begin
with a digit, a plus sign, or a minus sign to be parsed incorrectly.

View File

@ -1 +0,0 @@
Update bundled libexpat to 2.5.0

View File

@ -1,14 +0,0 @@
The IDNA codec decoder used on DNS hostnames by :mod:`socket` or :mod:`asyncio`
related name resolution functions no longer involves a quadratic algorithm.
This prevents a potential CPU denial of service if an out-of-spec excessive
length hostname involving bidirectional characters were decoded. Some protocols
such as :mod:`urllib` http ``3xx`` redirects potentially allow for an attacker
to supply such a name.
Individual labels within an IDNA encoded DNS name will now raise an error early
during IDNA decoding if they are longer than 1024 unicode characters given that
each decoded DNS label must be 63 or fewer characters and the entire decoded
DNS name is limited to 255. Only an application presenting a hostname or label
consisting primarily of :rfc:`3454` section 3.1 "Nothing" characters to be
removed would run into of this new limit. See also :rfc:`5894` section 6 and
:rfc:`3491`.

View File

@ -1 +0,0 @@
Some C API tests were moved into the new Lib/test/test_capi/ directory.

View File

@ -1,3 +0,0 @@
Added explicit coverage of ``Py_Initialize`` (and hence ``Py_InitializeEx``)
back to the embedding tests (all other embedding tests migrated to
``Py_InitializeFromConfig`` in Python 3.11)

View File

@ -1 +0,0 @@
Add tests for star-unpacking with PEP 646, and some other miscellaneous PEP 646 tests.

View File

@ -1,3 +0,0 @@
Fix a bug in the :mod:`typing` tests where a test relying on CPython-specific
implementation details was not decorated with ``@cpython_only`` and was not
skipped on other implementations.

View File

@ -1,2 +0,0 @@
The Python test suite now fails wit exit code 4 if no tests ran. It should
help detecting typos in test names and test methods.

Some files were not shown because too many files have changed in this diff Show More