cpython/Modules/_testcapi
Victor Stinner 8356e9c721
[3.14] gh-158585: Fix _PyBytes_Resize() if hash value is already computed (#159585)
* [3.15] gh-158585: Fix _PyBytes_Resize() if hash value is already computed (#159555)

* gh-158585: Fix _PyBytes_Resize() if hash value is already computed (#158589)

_PyBytes_Resize() now creates a new bytes object if the hash value
was already computed.

bytes_resize_inplace() no longer sets the hash value to -1, since
this function must not be called if the hash value was already
computed.

Add tests on PyUnicode_Resize().

(cherry picked from commit 6e7738bb5e)

* gh-158585: Fix refleak in _testcapi.bytes_resize() (#158806)

(cherry picked from commit 587b7a5b31)
(cherry picked from commit 251278d5ee)

* Adjust code for 3.14
2026-10-16 22:09:04 +00:00
..
clinic
abstract.c
buffer.c
bytes.c [3.14] gh-158585: Fix _PyBytes_Resize() if hash value is already computed (#159585) 2026-10-16 22:09:04 +00:00
code.c
codec.c
complex.c
config.c
datetime.c
dict.c
docstring.c
exceptions.c
file.c
float.c
frame.c
function.c
gc.c
getargs.c
hash.c
heaptype.c
immortal.c
import.c
list.c
long.c
mem.c
monitoring.c
numbers.c
object.c
parts.h
pyatomic.c
README.txt
run.c
set.c
structmember.c
time.c
tuple.c
type.c
unicode.c [3.14] gh-158451: Add _PyUnicodeWriter_WriteLatin1String() test (#158464) (#159549) 2026-10-16 21:50:55 +00:00
util.h [3.14] gh-156939: Add tests on the PyUnicode C API (#159533) (#159539) 2026-10-16 15:22:29 +00:00
vectorcall.c
watchers.c
weakref.c

Tests in this directory are compiled into the _testcapi extension.
The main file for the extension is Modules/_testcapimodule.c, which
calls `_PyTestCapi_Init_*` from these functions.

General guideline when writing test code for C API.
* Use Argument Clinic to minimise the amount of boilerplate code.
* Add a newline between the argument spec and the docstring.
* If a test description is needed, make sure the added docstring clearly and succinctly describes purpose of the function.
* DRY, use the clone feature of Argument Clinic.
* Try to avoid adding new interned strings; reuse existing parameter names if possible. Use the `as` feature of Argument Clinic to override the C variable name, if needed.