cpython/Lib/test/support
Miss Islington (bot) aa8d3db6f2
[3.11] [3.12] gh-109972: Enhance test_gdb (GH-110026) (GH-110351) (#110354)
[3.12] gh-109972: Enhance test_gdb (GH-110026) (GH-110351)

* gh-109972: Enhance test_gdb (GH-110026)

* Split test_pycfunction.py: add test_cfunction_full.py.
  Split the function into the following 6 functions. In verbose
  mode, these "pycfunction" tests now log each tested call.

  * test_pycfunction_noargs()
  * test_pycfunction_o()
  * test_pycfunction_varargs()
  * test_pycfunction_varargs_keywords()
  * test_pycfunction_fastcall()
  * test_pycfunction_fastcall_keywords()

* Move get_gdb_repr() to PrettyPrintTests.
* Replace DebuggerTests.get_sample_script() with SAMPLE_SCRIPT.
* Rename checkout_hook_path to CHECKOUT_HOOK_PATH.
* Rename gdb_version to GDB_VERSION_TEXT.
* Replace (gdb_major_version, gdb_minor_version) with GDB_VERSION.
* run_gdb() uses "backslashreplace" error handler instead of "replace".
* Add check_gdb() function to util.py.
* Enhance support.check_cflags_pgo(): check also for sysconfig
  PGO_PROF_USE_FLAG (if available) in compiler flags.
* Move some SkipTest checks to test_gdb/__init__.py.
* Elaborate why gdb cannot be tested on Windows: gdb doesn't support
  PDB debug symbol files.

(cherry picked from commit 757cbd4f29)

* gh-104736: Fix test_gdb tests on ppc64le with clang (GH-109360)

Fix test_gdb on Python built with LLVM clang 16 on Linux ppc64le (ex:
Fedora 38). Search patterns in gdb "bt" command output to detect
when gdb fails to retrieve the traceback. For example, skip a test if
"Backtrace stopped: frame did not save the PC" is found.

(cherry picked from commit 44d9a71ea2)

* gh-110166: Fix gdb CFunctionFullTests on ppc64le clang build (GH-110331)

CFunctionFullTests now also runs "bt" command before "py-bt-full",
similar to CFunctionTests which also runs "bt" command before
"py-bt". So test_gdb can skip the test if patterns like "?? ()" are
found in the gdb output.

(cherry picked from commit bbce8bd05d)

Co-authored-by: Victor Stinner <vstinner@python.org>
(cherry picked from commit 1de9406f91)

Co-authored-by: Victor Stinner <vstinner@python.org>
2023-10-04 12:03:28 +00:00
..
__init__.py [3.11] [3.12] gh-109972: Enhance test_gdb (GH-110026) (GH-110351) (#110354) 2023-10-04 12:03:28 +00:00
bytecode_helper.py bpo-42199: Fix bytecode_helper assertNotInBytecode (#23031) 2020-12-17 16:30:29 -08:00
hashlib_helper.py bpo-45042: Now test classes decorated with requires_hashdigest are not skipped (GH-28060) 2021-09-04 23:42:36 +03:00
import_helper.py [3.11] gh-109625: Move _ready_to_import() from test_import to support.import_helper (GH-109626) (#109718) 2023-09-22 12:34:46 +02:00
interpreters.py bpo-32604: Clean up test.support.interpreters. (gh-20926) 2020-06-16 18:24:40 -06:00
logging_helper.py bpo-40275: Avoid importing logging in test.support (GH-19601) 2020-04-25 11:35:18 +03:00
os_helper.py gh-90473: Fix more tests on platforms without umask (GH-95164) 2022-07-23 03:51:29 -07:00
script_helper.py bpo-40280: Skip subprocess-based tests on wasm32-emscripten (GH-30615) 2022-01-25 08:09:06 +01:00
socket_helper.py [3.11] gh-109015: Add test.support.socket_helper.tcp_blackhole() (#109016) (#109042) 2023-09-07 00:34:16 +00:00
testresult.py bpo-46126: Restore 'descriptions' when running tests internally. (GH-32128) 2022-04-03 12:33:28 -07:00
threading_helper.py gh-84461: Add sys._emscripten_info, improve docs and build (gh-91781) 2022-04-23 09:52:16 +02:00
warnings_helper.py gh-103109: Document ignore_warnings() test support helper (GH-103110) 2023-04-02 15:42:43 -07:00