Commit graph

382 commits

Author SHA1 Message Date
Miss Islington (bot)
62a3b6b0d9
[3.13] gh-140082: Forward colorizing from libregrtest to unittest (GH-140083) (#140755)
gh-140082: Forward colorizing from libregrtest to unittest (GH-140083)

libregrtest redirects test output to a file as part of its operation.
When `unittest` checks to see if it should colorize with
`isatty(sys.stdout)` that fails resulting in no colorizing of the
unittest output.

Update `libregrtest` to set `FORCE_COLOR=1` when redirecting test output
so that unittest will do color printing.
(cherry picked from commit 6ff62ac4fb)

Co-authored-by: Cody Maloney <cmaloney@users.noreply.github.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
2025-10-29 12:55:54 +00:00
Miss Islington (bot)
0f0ca07d79
[3.13] gh-140482: Preserve and restore stty echo as a test environment (GH-140519) (#140563)
gh-140482: Preserve and restore `stty echo` as a test environment (GH-140519)
(cherry picked from commit b3c713a0af)


gh-140482: Restore `stty echo` as a test environment

Co-authored-by: Barry Warsaw <barry@python.org>
2025-10-24 18:30:59 +00:00
Miss Islington (bot)
d3a4e0608b
[3.13] gh-137242: Allow Android testbed to take all Python command-line options (GH-138805) (#139638)
Modifies the Android test runner to ensure that all valid Python command line
options are preserved when running the test suite.
(cherry picked from commit a9b0506d8d)

Co-authored-by: Malcolm Smith <smith@chaquo.com>
2025-10-06 06:25:58 +00:00
Miss Islington (bot)
096772dd5d
[3.13] gh-139208: Fix regrtest --fast-ci --verbose (GH-139240) (#139261)
gh-139208: Fix regrtest --fast-ci --verbose (GH-139240)

Don't ignore the --verbose option anymore.
(cherry picked from commit dd683f8f34)

Co-authored-by: Victor Stinner <vstinner@python.org>
2025-09-23 14:32:19 +00:00
Russell Keith-Magee
85649b769f
[3.13] gh-137242: Add a --no-randomize option, and use it in Android CI (GH-138649) (#138685)
Adds a --no-randomize option to the CI runner, so that randomisation can be easily
disabled for --fast-ci and --slow-ci configurations on single-threaded testing platforms
like Android, iOS, and Emscripten.

---------
(cherry picked from commit 01895d233b)

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Malcolm Smith <smith@chaquo.com>
2025-09-09 10:53:01 +02:00
Bénédikt Tran
41c2c8f01c
[3.13] gh-135734: correctly handle --enable-optimizations --disable-test-modules combination (#137998) 2025-08-21 20:28:03 +02:00
Serhiy Storchaka
1c96723cb1
[3.13] gh-137341: Remove more word duplications (GH-137342) (GH-137347)
(cherry picked from commit 1612dcbafe)
2025-08-03 17:24:26 +00:00
Victor Stinner
a27398d5b3
[3.13] gh-135494: Fix python -m test --pgo -x test_re (#135713) (#135881)
gh-135494: Fix python -m test --pgo -x test_re (#135713)

Fix regrtest to support excluding tests from --pgo tests.

(cherry picked from commit 15c6d63fe6)
2025-06-24 10:49:31 +00:00
Miss Islington (bot)
28a70a59e4
[3.13] gh-135489: Show verbose output for failing tests during PGO profiling step with --enable-optimizations (#135600)
Co-authored-by: PuQing <me@puqing.work>
2025-06-17 01:47:27 -04:00
Miss Islington (bot)
5a69d4fe00
[3.13] gh-135124: Change stdout errors in regrtest worker process (GH-135138) (#135169)
gh-135124: Change stdout errors in regrtest worker process (GH-135138)

Set sys.stdout encoder error handler to backslashreplace in regrtest
workers to avoid UnicodeEncodeError when printing a traceback
or any other non-encodable character.

Move the code from the Regrtest class to setup_process().

Call setup_process() earlier, before displaying regrtest headers.
(cherry picked from commit 3d396ab759)

Co-authored-by: Victor Stinner <vstinner@python.org>
2025-06-05 10:11:26 +00:00
Miss Islington (bot)
ddd6ca193f
[3.13] gh-133519: Add console to resources in libregrtest (GH-133520) (#133777)
gh-133519: Add console to resources in libregrtest (GH-133520)

Add console to resources in libregrtest
(cherry picked from commit 4274b47156)

Co-authored-by: AN Long <aisk@users.noreply.github.com>
2025-05-09 16:53:19 +00:00
Miss Islington (bot)
df1669ed20
[3.13] Bump mypy to 1.15 (GH-133405) (#133429)
Bump mypy to 1.15 (GH-133405)
(cherry picked from commit 8467026ed6)

Co-authored-by: sobolevn <mail@sobolevn.me>
2025-05-05 10:54:56 +00:00
Thomas Grainger
07d4c7e7db
[3.13] gh-128770: raise warnings as errors in test suite - except for test_socket which still logs warnings, and internal test warnings that are now logged (#131802)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
(cherry picked from commit 8a00c9a4d2)
2025-03-29 21:21:33 +02:00
Pablo Galindo Salgado
0980e2e370
[3.13] gh-117174: Fix reference leak and gdb tests (GH-131095) (#131120)
(cherry picked from commit ebc24d54bc)
2025-03-11 23:43:07 +00:00
Sam Gross
9966daee60
[3.13] gh-117657: Enable test_opcache under TSAN (GH-129831) (GH-130597)
Fix a few thread-safety bugs to enable test_opcache when run with TSAN:

 * Use relaxed atomics when clearing `ht->_spec_cache.getitem`
   (gh-115999)
 * Add temporary suppression for type slot modifications (gh-127266)
 * Use atomic load when reading `*dictptr`

(cherry picked from commit f151d27159)
2025-02-26 13:59:59 -05:00
Miss Islington (bot)
8ce48c8ebc
[3.13] gh-129363: Change regrtest sequential mode output (GH-129476) (#130405)
gh-129363: Change regrtest sequential mode output (GH-129476)

First, write the test name without color. Then, write the test name
and the result with color. Each test is displayed twice.
(cherry picked from commit f1b81c408f)

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2025-02-21 14:18:32 +00:00
neonene
19ceb342b5
[3.13] gh-129660: Do not use test_embed in PGO profile builds (#129662) 2025-02-05 12:22:30 +01:00
Miss Islington (bot)
32012ed3bc
[3.13] gh-109413: Add more type hints to libregrtest (GH-126352) (#126388)
gh-109413: Add more type hints to `libregrtest` (GH-126352)
(cherry picked from commit bfc1d2504c)

Co-authored-by: sobolevn <mail@sobolevn.me>
2025-01-08 09:00:46 +00:00
Miss Islington (bot)
24b86308f9
[3.13] gh-109413: Enable mypy's disallow_any_generics setting when checking libregrtest (GH-127033) (#127034)
gh-109413: Enable mypy's `disallow_any_generics` setting when checking `libregrtest` (GH-127033)
(cherry picked from commit 824afbf548)

Co-authored-by: sobolevn <mail@sobolevn.me>
2024-11-24 08:40:14 +00:00
Miss Islington (bot)
f0d1a20b77
[3.13] gh-109413: Fix libregrtest get_running() (GH-127153) (#127157)
gh-109413: Fix libregrtest get_running() (GH-127153)

Skip threads which are not running.
(cherry picked from commit 0cb20177d6)

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-11-22 16:34:07 +00:00
Miss Islington (bot)
a7b44d6321
[3.13] gh-109413: Enable strict_optional = true for libregrtest/run_workers (GH-126855) (#126967)
gh-109413: Enable `strict_optional = true` for `libregrtest/run_workers` (GH-126855)
(cherry picked from commit a1d9c8aa80)

Co-authored-by: sobolevn <mail@sobolevn.me>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2024-11-18 14:50:31 +00:00
sobolevn
effedb5ff0
[3.13] gh-109413: Enable strict_optional for libregrtest/main.py (GH-126394) (#126802)
(cherry picked from commit 12ca7e622f)
2024-11-14 13:51:34 +03:00
Miss Islington (bot)
909d5ac295
[3.13] gh-115382: Fix cross compiles when host and target use same SOABI
Co-authored-by: Vincent Fazio <vfazio@gmail.com>
Co-authored-by: Erlend E. Aasland <erlend@python.org>
2024-10-20 08:20:34 +01:00
Victor Stinner
d432fa43b9
[3.13] Fix typos (#123775) (#123866)
Fix typos (#123775)

(cherry picked from commit 9017b95ff2)

Co-authored-by: algonell <algonell@gmail.com>
2024-10-07 23:44:31 +02:00
Miss Islington (bot)
4f3e96f7c2
[3.13] gh-124613, regrtest: Detect JIT in build info (GH-124793) (#124797)
gh-124613, regrtest: Detect JIT in build info (GH-124793)
(cherry picked from commit e44eebfc1e)

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-09-30 13:52:59 -07:00
Miss Islington (bot)
3b3a1a8e7e
[3.13] gh-101525: Skip test_gdb if the binary is relocated by BOLT. (gh-118572) (#123601)
gh-101525: Skip test_gdb if the binary is relocated by BOLT. (gh-118572)
(cherry picked from commit f95fc4de11)

Co-authored-by: Donghee Na <donghee.na@python.org>
2024-09-02 23:10:52 +09:00
Malcolm Smith
350313e731
[3.13] gh-119727: Add --single-process option to regrtest (#119728) (#123010)
gh-119727: Add --single-process option to regrtest (#119728)

(cherry picked from commit 4e8aa32245)

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-08-26 11:59:26 +02:00
Miss Islington (bot)
cf6d14b966
[3.13] gh-116622: Add Android test script (GH-121595) (#123061)
gh-116622: Add Android test script (GH-121595)

Adds a script for running the test suite on Android emulator devices. Starting
with a fresh install of the Android Commandline tools; the script manages
installing other requirements, starting the emulator (if required), and
retrieving results from that emulator.
(cherry picked from commit f84cce6f25)

Co-authored-by: Malcolm Smith <smith@chaquo.com>
2024-08-16 16:36:46 +08:00
Miss Islington (bot)
a2c36ddd16
[3.13] gh-122420: Fix accounting for immortal interned strings in refleak.py (GH-122421) (GH-122430)
The `_PyUnicode_Intern*` functions already adjust the total refcount, so
we don't want to readjust it in refleak.py.
(cherry picked from commit ac8da34621)

Co-authored-by: Sam Gross <colesbury@gmail.com>
2024-07-30 09:36:08 +02:00
Miss Islington (bot)
f00ba7335a
[3.13] gh-99242 Ignore error when running regression tests under certain conditions. (GH-121663) (GH-121669)
(cherry picked from commit 0759cecd9d)

Co-authored-by: Bas Bloemsaat <bas@bloemsaat.com>
Co-authored-by: Kevin Diem <kg.diem@gmail.com>
2024-07-22 14:53:46 +02:00
Miss Islington (bot)
abefbcba8a
[3.13] gh-121084: Fix test_typing random leaks (GH-121360) (#121373)
gh-121084: Fix test_typing random leaks (GH-121360)

Clear typing ABC caches when running tests for refleaks (-R option):
call _abc_caches_clear() on typing abstract classes and their
subclasses.
(cherry picked from commit 5f660e8e2c)

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-07-04 18:07:07 +00:00
Miss Islington (bot)
178b5b16d3
[3.13] gh-121084: Call _abc_registry_clear() when checking refleaks (GH-121191) (#121208)
gh-121084: Call _abc_registry_clear() when checking refleaks (GH-121191)

dash_R_cleanup() now calls _abc_registry_clear() before calling again
register().
(cherry picked from commit c766ad206e)

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-07-01 09:34:53 +00:00
Miss Islington (bot)
1f2f9c4ff5
[3.13] gh-121188: Sanitize invalid XML characters in regrtest (GH-121195) (#121204)
gh-121188: Sanitize invalid XML characters in regrtest (GH-121195)

When creating the JUnit XML file, regrtest now escapes characters
which are invalid in XML, such as the chr(27) control character used
in ANSI escape sequences.
(cherry picked from commit af8c3d7a26)

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-07-01 08:55:38 +00:00
Petr Viktorin
9769b7ae06
[3.13] gh-113993: Allow interned strings to be mortal, and fix related issues (GH-120520) (GH-120945)
* Add an InternalDocs file describing how interning should work and how to use it.

* Add internal functions to *explicitly* request what kind of interning is done:
  - `_PyUnicode_InternMortal`
  - `_PyUnicode_InternImmortal`
  - `_PyUnicode_InternStatic`

* Switch uses of `PyUnicode_InternInPlace` to those.

* Disallow using `_Py_SetImmortal` on strings directly.
  You should use `_PyUnicode_InternImmortal` instead:
  - Strings should be interned before immortalization, otherwise you're possibly
    interning a immortalizing copy.
  - `_Py_SetImmortal` doesn't handle the `SSTATE_INTERNED_MORTAL` to
    `SSTATE_INTERNED_IMMORTAL` update, and those flags can't be changed in
    backports, as they are now part of public API and version-specific ABI.

* Add private `_only_immortal` argument for `sys.getunicodeinternedsize`, used in refleak test machinery.

* Make sure the statically allocated string singletons are unique. This means these sets are now disjoint:
  - `_Py_ID`
  - `_Py_STR` (including the empty string)
  - one-character latin-1 singletons

  Now, when you intern a singleton, that exact singleton will be interned.

* Add a `_Py_LATIN1_CHR` macro, use it instead of `_Py_ID`/`_Py_STR` for one-character latin-1 singletons everywhere (including Clinic).

* Intern `_Py_STR` singletons at startup.

* For free-threaded builds, intern `_Py_LATIN1_CHR` singletons at startup.

* Beef up the tests. Cover internal details (marked with `@cpython_only`).

* Add lots of assertions

Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
2024-06-24 20:24:19 +02:00
Miss Islington (bot)
42a8d11752
[3.13] gh-119050: Add XML support to libregrtest refleak checker (GH-119148) (#119270)
gh-119050: Add XML support to libregrtest refleak checker (GH-119148)

regrtest test runner: Add XML support to the refleak checker
(-R option).

* run_unittest() now stores XML elements as string, rather than
  objects, in support.junit_xml_list.
* runtest_refleak() now saves/restores XML strings before/after
  checking for reference leaks. Save XML into a temporary file.
(cherry picked from commit 9257731f5d)

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-05-20 22:50:20 +00:00
Miss Islington (bot)
91296146d5
[3.13] gh-119050: Add type hints to libregrtest/results.py (GH-119144) (#119156)
gh-119050: Add type hints to libregrtest/results.py (GH-119144)

Sort also 'omitted' in TestResults.display_result().
(cherry picked from commit 30b4e9f9c4)

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-05-18 21:05:58 +00:00
Sam Gross
7ccacb220d
gh-117783: Immortalize objects that use deferred reference counting (#118112)
Deferred reference counting is not fully implemented yet. As a temporary
measure, we immortalize objects that would use deferred reference
counting to avoid multi-threaded scaling bottlenecks.

This is only performed in the free-threaded build once the first
non-main thread is started. Additionally, some tests, including refleak
tests, suppress this behavior.
2024-04-29 14:36:02 -04:00
Alex Waygood
8227883d1f
gh-118013: Use weakrefs for the cache key in inspect._shadowed_dict (#118202) 2024-04-24 15:55:02 +01:00
Victor Stinner
ed785c0899
Enhance regrtest get_signal_name(): support shell exit code (#117647) 2024-04-08 17:16:43 +00:00
Sam Gross
26a680a585
gh-117293: Fix race condition in run_workers.py (#117298)
The worker thread may still be alive after it enqueues it's last result,
which can lead to a delay of 30 seconds after the test finishes. This
happens much more frequently in the free-threaded build with the GIL
disabled.

This changes run_workers.py to track of live workers by enqueueing a
`WorkerExited()` instance before the worker exits.
2024-04-08 10:47:42 -04:00
dependabot[bot]
348cf6e007
Bump mypy from 1.8.0 to 1.9.0 in /Tools (#117418)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2024-04-01 11:14:37 +00:00
Victor Stinner
d52bdfb19f
gh-83434: Disable XML in regrtest when -R option is used (#117232) 2024-03-26 08:35:59 +01:00
Antoine Pitrou
b8d808ddd7
GH-112536: Add more TSan tests (#116911)
These may all exercise some non-trivial aspects of thread synchronization.
2024-03-17 09:47:14 +01:00
Donghee Na
bee7e290cd
gh-112536: Add more TSAN tests (#116896)
---------

Co-authored-by: Antoine Pitrou <antoine@python.org>
2024-03-16 14:52:44 +00:00
Antoine Pitrou
86bc40dd41
gh-112536: Add test_threading to TSAN tests (#116898) 2024-03-16 11:55:46 +00:00
Donghee Na
ebf29b3a02
gh-112536: Add --tsan test for reasonable TSAN execution times. (gh-116601) 2024-03-16 01:07:16 +09:00
Petr Viktorin
bae6579b46
gh-116731: libregrtest: Clear inspect & importlib.metadata caches in clear_caches (GH-116805)
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
2024-03-14 16:47:12 +01:00
Victor Stinner
612f1ec988
gh-110918: Fix side effects of regrtest test_match_tests() (#116718)
test_match_tests now saves and restores patterns.

Add get_match_tests() function to libregrtest.filter.

Previously, running test_regrtest multiple times in a row only ran
tests once: "./python -m test test_regrtest -R 3:3.
2024-03-13 14:20:33 +01:00
cui fliter
e7ba6e9dbe
chore: fix typos (#116345)
Signed-off-by: cui fliter <imcusg@gmail.com>
2024-03-05 09:05:52 -07:00
Eric Snow
eb22e2b251
gh-115490: Make the interpreter.channels and interpreter.queues Modules Handle Reloading Properly (gh-115493)
The problem manifested when the .py module got reloaded and the corresponding extension module didn't. The .py module registers types with the extension and the extension was not allowing that to happen more than once. The solution: let it happen more than once.
2024-03-04 20:59:30 +00:00