Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[3.11] [3.12] gh-109972: Enhance test_gdb (GH-110026) (GH-110351) #110354

Merged
merged 1 commit into from
Oct 4, 2023

Conversation

miss-islington
Copy link
Contributor

  • test_gdb failed with 15 min timeout on PPC64LE RHEL8 3.x (LTO + pydebug) #109972: Enhance test_gdb (gh-109972: Enhance test_gdb #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 757cbd4)

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 44d9a71)

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 bbce8bd)

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

…110351)

* pythongh-109972: Enhance test_gdb (pythonGH-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 757cbd4)

* pythongh-104736: Fix test_gdb tests on ppc64le with clang (pythonGH-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 44d9a71)

* pythongh-110166: Fix gdb CFunctionFullTests on ppc64le clang build (pythonGH-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 bbce8bd)

Co-authored-by: Victor Stinner <vstinner@python.org>
(cherry picked from commit 1de9406)
@vstinner vstinner enabled auto-merge (squash) October 4, 2023 11:39
@vstinner vstinner merged commit aa8d3db into python:3.11 Oct 4, 2023
23 checks passed
@miss-islington miss-islington deleted the backport-bbce8bd-3.11 branch October 4, 2023 12:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants