GeezerVison is showing github.com — gh-104736: Fix test_gdb tests on ppc64le with clang by vstinner · Pull Request #109360 · python/cpython
Conversation
vstinner
commented
Sep 13, 2023
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
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.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
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.
|
Test on this machine:
- Fedora 38
Linux xxx 6.2.8-200.fc37.ppc64le #1 SMP Wed Mar 22 18:34:43 UTC 2023 ppc64le ppc64le ppc64le GNU/Linux
- clang version 16.0.6 (Fedora 16.0.6-2.fc38)
- GNU gdb (GDB) Fedora Linux 13.2-3.fc38
Results:
- Without the fix: FAILURE: Total tests: run=46 failures=2 skipped=39 -- 5 tests pass
- With the fix: SUCCESS: Total tests: run=46 skipped=41 -- 5 tests pass
Without the fix
$ ./python -m test test_gdb -v -u all
(...)
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_varargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... FAIL
Verify that "py-bt" displays invocations of PyCFunction instances ... FAIL
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_fastcall_keywords]
(...)
======================================================================
FAIL: test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_varargs]
Verify that "py-bt" displays invocations of PyCFunction instances
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/vstinner/cpython/Lib/test/test_gdb.py", line 950, in test_pycfunction
self.assertIn(f'<built-in method {func_name}', gdb_output)
AssertionError: '<built-in method meth_varargs' not found in 'Breakpoint 1 (meth_varargs) pending.\n\nThis GDB supports auto-downloading debuginfo from the following URLs:\n <https://debuginfod.fedoraproject.org/>\nEnable debuginfod for this session? (y or [n]) [answered N; input not from terminal]\nDebuginfod has been disabled.\nTo make this setting permanent, add \'set debuginfod enabled off\' to .gdbinit.\n[Thread debugging using libthread_db enabled]\nUsing host libthread_db library "/lib64/libthread_db.so.1".\n\nBreakpoint 1, meth_varargs (self=<module at remote 0x7fffea383170>, args=()) at ./Modules/_testcapimodule.c:2060\n2060\t return Py_BuildValue("NO", _null_to_none(self), args);\n#0 meth_varargs (self=<module at remote 0x7fffea383170>, args=()) at ./Modules/_testcapimodule.c:2060\n#1 PyModuleDef_Type ()\nBacktrace stopped: frame did not save the PC\nUnable to locate python frame\n'
======================================================================
FAIL: test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_fastcall_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/vstinner/cpython/Lib/test/test_gdb.py", line 950, in test_pycfunction
self.assertIn(f'<built-in method {func_name}', gdb_output)
AssertionError: '<built-in method meth_fastcall_keywords' not found in 'Breakpoint 1 (meth_fastcall_keywords) pending.\n\nThis GDB supports auto-downloading debuginfo from the following URLs:\n <https://debuginfod.fedoraproject.org/>\nEnable debuginfod for this session? (y or [n]) [answered N; input not from terminal]\nDebuginfod has been disabled.\nTo make this setting permanent, add \'set debuginfod enabled off\' to .gdbinit.\n[Thread debugging using libthread_db enabled]\nUsing host libthread_db library "/lib64/libthread_db.so.1".\n\nBreakpoint 1, meth_fastcall_keywords (self=<module at remote 0x7fffea3831d0>, args=, nargs=0, kwargs=0x0) at ./Modules/_testcapimodule.c:2107\n2107\t PyObject *pyargs = _fastcall_to_tuple(args, nargs);\n#0 meth_fastcall_keywords (self=<module at remote 0x7fffea3831d0>, args=, nargs=0, kwargs=0x0) at ./Modules/_testcapimodule.c:2107\n#1 ?? ()\nUnable to locate python frame\n'
(...)
Total duration: 1 min 23 sec
Total tests: run=46 failures=2 skipped=39
Total test files: run=1/1 failed=1
Result: FAILURE
Full logs:
Details
[vstinner@localhost cpython]$ ./python -m test test_gdb -v -u all
== CPython 3.13.0a0 (heads/main:388d91c, Sep 12 2023, 22:49:42) [Clang 16.0.6 (Fedora 16.0.6-2.fc38)]
== Linux-5.8.17-200.fc32.ppc64le-ppc64le-with-glibc2.37 little-endian
== Python build: debug
== cwd: /home/vstinner/cpython/build/test_python_worker_2057070æ
== CPU count: 8
== encodings: locale=UTF-8, FS=utf-8
0:00:00 load avg: 1.99 Run 1 test sequentially
0:00:00 load avg: 1.99 [1/1] test_gdb
GDB version 13.2:
GNU gdb (GDB) Fedora Linux 13.2-3.fc38
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
test_NULL_ob_type (test.test_gdb.PrettyPrintTests.test_NULL_ob_type)
Ensure that a PyObject* with NULL ob_type is handled gracefully ... ok
test_NULL_ptr (test.test_gdb.PrettyPrintTests.test_NULL_ptr)
Ensure that a NULL PyObject* is handled gracefully ... ok
test_builtin_method (test.test_gdb.PrettyPrintTests.test_builtin_method) ... ok
test_builtins_help (test.test_gdb.PrettyPrintTests.test_builtins_help)
Ensure that the new-style class _Helper in site.py can be handled ... ok
test_bytes (test.test_gdb.PrettyPrintTests.test_bytes)
Verify the pretty-printing of bytes ... ok
test_corrupt_ob_type (test.test_gdb.PrettyPrintTests.test_corrupt_ob_type)
Ensure that a PyObject* with a corrupt ob_type is handled gracefully ... ok
test_corrupt_tp_flags (test.test_gdb.PrettyPrintTests.test_corrupt_tp_flags)
Ensure that a PyObject* with a type with corrupt tp_flags is handled ... ok
test_corrupt_tp_name (test.test_gdb.PrettyPrintTests.test_corrupt_tp_name)
Ensure that a PyObject* with a type with corrupt tp_name is handled ... ok
test_dicts (test.test_gdb.PrettyPrintTests.test_dicts)
Verify the pretty-printing of dictionaries ... ok
test_exceptions (test.test_gdb.PrettyPrintTests.test_exceptions) ... ok
test_frames (test.test_gdb.PrettyPrintTests.test_frames) ... ok
test_frozensets (test.test_gdb.PrettyPrintTests.test_frozensets)
Verify the pretty-printing of frozensets ... ok
test_getting_backtrace (test.test_gdb.PrettyPrintTests.test_getting_backtrace) ... ok
test_int (test.test_gdb.PrettyPrintTests.test_int)
Verify the pretty-printing of various int values ... ok
test_lists (test.test_gdb.PrettyPrintTests.test_lists)
Verify the pretty-printing of lists ... ok
test_modern_class (test.test_gdb.PrettyPrintTests.test_modern_class)
Verify the pretty-printing of new-style class instances ... ok
test_selfreferential_dict (test.test_gdb.PrettyPrintTests.test_selfreferential_dict)
Ensure that a reference loop involving a dict doesn't lead proxyval ... ok
test_selfreferential_list (test.test_gdb.PrettyPrintTests.test_selfreferential_list)
Ensure that a reference loop involving a list doesn't lead proxyval ... ok
test_selfreferential_new_style_instance (test.test_gdb.PrettyPrintTests.test_selfreferential_new_style_instance) ... ok
test_selfreferential_old_style_instance (test.test_gdb.PrettyPrintTests.test_selfreferential_old_style_instance) ... ok
test_sets (test.test_gdb.PrettyPrintTests.test_sets)
Verify the pretty-printing of sets ... ok
test_singletons (test.test_gdb.PrettyPrintTests.test_singletons)
Verify the pretty-printing of True, False and None ... ok
test_strings (test.test_gdb.PrettyPrintTests.test_strings)
Verify the pretty-printing of unicode strings ... ok
test_subclassing_list (test.test_gdb.PrettyPrintTests.test_subclassing_list)
Verify the pretty-printing of an instance of a list subclass ... ok
test_subclassing_tuple (test.test_gdb.PrettyPrintTests.test_subclassing_tuple)
Verify the pretty-printing of an instance of a tuple subclass ... ok
test_truncation (test.test_gdb.PrettyPrintTests.test_truncation)
Verify that very long output is truncated ... ok
test_tuples (test.test_gdb.PrettyPrintTests.test_tuples)
Verify the pretty-printing of tuples ... ok
test_bt (test.test_gdb.PyBtTests.test_bt)
Verify that the "py-bt" command works ... skipped "'(unable to read python frame information)' found in gdb output"
test_bt_full (test.test_gdb.PyBtTests.test_bt_full)
Verify that the "py-bt-full" command works ... skipped "'(unable to read python frame information)' found in gdb output"
test_gc (test.test_gdb.PyBtTests.test_gc)
Verify that "py-bt" indicates if a thread is garbage-collecting ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction)
Verify that "py-bt" displays invocations of PyCFunction instances ...
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_varargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... FAIL
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_varargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass().meth_varargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethStatic().meth_varargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_varargs_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_varargs_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass().meth_varargs_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethStatic().meth_varargs_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_o]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_o]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass().meth_o]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethStatic().meth_o]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_noargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_noargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass().meth_noargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethStatic().meth_noargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_fastcall]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_fastcall]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass().meth_fastcall]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethStatic().meth_fastcall]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_fastcall_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... FAIL
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_fastcall_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass().meth_fastcall_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethStatic().meth_fastcall_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_threads (test.test_gdb.PyBtTests.test_threads)
Verify that "py-bt" indicates threads that are waiting for the GIL ... skipped "'(unable to read python frame information)' found in gdb output"
test_wrapper_call (test.test_gdb.PyBtTests.test_wrapper_call) ... skipped "'(unable to read python frame information)' found in gdb output"
test_basic_command (test.test_gdb.PyListTests.test_basic_command)
Verify that the "py-list" command works ... skipped "'Unable to read information on python frame' found in gdb output"
test_one_abs_arg (test.test_gdb.PyListTests.test_one_abs_arg)
Verify the "py-list" command with one absolute argument ... skipped "'Unable to read information on python frame' found in gdb output"
test_two_abs_args (test.test_gdb.PyListTests.test_two_abs_args)
Verify the "py-list" command with two absolute arguments ... skipped "'Unable to read information on python frame' found in gdb output"
test_basic_command (test.test_gdb.PyLocalsTests.test_basic_command) ... skipped "'Unable to read information on python frame' found in gdb output"
test_locals_after_up (test.test_gdb.PyLocalsTests.test_locals_after_up) ... skipped "'Unable to read information on python frame' found in gdb output"
test_basic_command (test.test_gdb.PyPrintTests.test_basic_command)
Verify that the "py-print" command works ... skipped "'Unable to read information on python frame' found in gdb output"
test_print_after_up (test.test_gdb.PyPrintTests.test_print_after_up) ... skipped "'Unable to read information on python frame' found in gdb output"
test_printing_builtin (test.test_gdb.PyPrintTests.test_printing_builtin) ... skipped "'Unable to read information on python frame' found in gdb output"
test_printing_global (test.test_gdb.PyPrintTests.test_printing_global) ... skipped "'Unable to read information on python frame' found in gdb output"
test_down_at_bottom (test.test_gdb.StackNavigationTests.test_down_at_bottom)
Verify handling of "py-down" at the bottom of the stack ... ok
test_pyup_command (test.test_gdb.StackNavigationTests.test_pyup_command)
Verify that the "py-up" command works ... skipped "'(unable to read python frame information)' found in gdb output"
test_up_at_top (test.test_gdb.StackNavigationTests.test_up_at_top)
Verify handling of "py-up" at the top of the stack ... skipped "'(unable to read python frame information)' found in gdb output"
test_up_then_down (test.test_gdb.StackNavigationTests.test_up_then_down)
Verify "py-up" followed by "py-down" ... skipped "'(unable to read python frame information)' found in gdb output"
======================================================================
FAIL: test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_varargs]
Verify that "py-bt" displays invocations of PyCFunction instances
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/vstinner/cpython/Lib/test/test_gdb.py", line 950, in test_pycfunction
self.assertIn(f'<built-in method {func_name}', gdb_output)
AssertionError: '<built-in method meth_varargs' not found in 'Breakpoint 1 (meth_varargs) pending.\n\nThis GDB supports auto-downloading debuginfo from the following URLs:\n <https://debuginfod.fedoraproject.org/>\nEnable debuginfod for this session? (y or [n]) [answered N; input not from terminal]\nDebuginfod has been disabled.\nTo make this setting permanent, add \'set debuginfod enabled off\' to .gdbinit.\n[Thread debugging using libthread_db enabled]\nUsing host libthread_db library "/lib64/libthread_db.so.1".\n\nBreakpoint 1, meth_varargs (self=<module at remote 0x7fffea383170>, args=()) at ./Modules/_testcapimodule.c:2060\n2060\t return Py_BuildValue("NO", _null_to_none(self), args);\n#0 meth_varargs (self=<module at remote 0x7fffea383170>, args=()) at ./Modules/_testcapimodule.c:2060\n#1 PyModuleDef_Type ()\nBacktrace stopped: frame did not save the PC\nUnable to locate python frame\n'
======================================================================
FAIL: test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_fastcall_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/vstinner/cpython/Lib/test/test_gdb.py", line 950, in test_pycfunction
self.assertIn(f'<built-in method {func_name}', gdb_output)
AssertionError: '<built-in method meth_fastcall_keywords' not found in 'Breakpoint 1 (meth_fastcall_keywords) pending.\n\nThis GDB supports auto-downloading debuginfo from the following URLs:\n <https://debuginfod.fedoraproject.org/>\nEnable debuginfod for this session? (y or [n]) [answered N; input not from terminal]\nDebuginfod has been disabled.\nTo make this setting permanent, add \'set debuginfod enabled off\' to .gdbinit.\n[Thread debugging using libthread_db enabled]\nUsing host libthread_db library "/lib64/libthread_db.so.1".\n\nBreakpoint 1, meth_fastcall_keywords (self=<module at remote 0x7fffea3831d0>, args=, nargs=0, kwargs=0x0) at ./Modules/_testcapimodule.c:2107\n2107\t PyObject *pyargs = _fastcall_to_tuple(args, nargs);\n#0 meth_fastcall_keywords (self=<module at remote 0x7fffea3831d0>, args=, nargs=0, kwargs=0x0) at ./Modules/_testcapimodule.c:2107\n#1 ?? ()\nUnable to locate python frame\n'
----------------------------------------------------------------------
Ran 46 tests in 82.800s
FAILED (failures=2, skipped=39)
test test_gdb failed
test_gdb failed (2 failures) in 1 min 23 sec
== Tests result: FAILURE ==
1 test failed:
test_gdb
Total duration: 1 min 23 sec
Total tests: run=46 failures=2 skipped=39
Total test files: run=1/1 failed=1
Result: FAILURE
With the fix
[vstinner@localhost cpython]$ ./python -m test test_gdb -v -u all
(...)
1 test OK.
Total duration: 1 min 26 sec
Total tests: run=46 skipped=41
Total test files: run=1/1
Result: SUCCESS
Full logs:
Details
[vstinner@localhost cpython]$ ./python -m test test_gdb -v -u all
== CPython 3.13.0a0 (heads/main:388d91c, Sep 12 2023, 22:49:42) [Clang 16.0.6 (Fedora 16.0.6-2.fc38)]
== Linux-5.8.17-200.fc32.ppc64le-ppc64le-with-glibc2.37 little-endian
== Python build: debug
== cwd: /home/vstinner/cpython/build/test_python_worker_2058409æ
== CPU count: 8
== encodings: locale=UTF-8, FS=utf-8
0:00:00 load avg: 2.24 Run 1 test sequentially
0:00:00 load avg: 2.24 [1/1] test_gdb
GDB version 13.2:
GNU gdb (GDB) Fedora Linux 13.2-3.fc38
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
test_NULL_ob_type (test.test_gdb.PrettyPrintTests.test_NULL_ob_type)
Ensure that a PyObject* with NULL ob_type is handled gracefully ... ok
test_NULL_ptr (test.test_gdb.PrettyPrintTests.test_NULL_ptr)
Ensure that a NULL PyObject* is handled gracefully ... ok
test_builtin_method (test.test_gdb.PrettyPrintTests.test_builtin_method) ... ok
test_builtins_help (test.test_gdb.PrettyPrintTests.test_builtins_help)
Ensure that the new-style class _Helper in site.py can be handled ... ok
test_bytes (test.test_gdb.PrettyPrintTests.test_bytes)
Verify the pretty-printing of bytes ... ok
test_corrupt_ob_type (test.test_gdb.PrettyPrintTests.test_corrupt_ob_type)
Ensure that a PyObject* with a corrupt ob_type is handled gracefully ... ok
test_corrupt_tp_flags (test.test_gdb.PrettyPrintTests.test_corrupt_tp_flags)
Ensure that a PyObject* with a type with corrupt tp_flags is handled ... ok
test_corrupt_tp_name (test.test_gdb.PrettyPrintTests.test_corrupt_tp_name)
Ensure that a PyObject* with a type with corrupt tp_name is handled ... ok
test_dicts (test.test_gdb.PrettyPrintTests.test_dicts)
Verify the pretty-printing of dictionaries ... ok
test_exceptions (test.test_gdb.PrettyPrintTests.test_exceptions) ... ok
test_frames (test.test_gdb.PrettyPrintTests.test_frames) ... ok
test_frozensets (test.test_gdb.PrettyPrintTests.test_frozensets)
Verify the pretty-printing of frozensets ... ok
test_getting_backtrace (test.test_gdb.PrettyPrintTests.test_getting_backtrace) ... ok
test_int (test.test_gdb.PrettyPrintTests.test_int)
Verify the pretty-printing of various int values ... ok
test_lists (test.test_gdb.PrettyPrintTests.test_lists)
Verify the pretty-printing of lists ... ok
test_modern_class (test.test_gdb.PrettyPrintTests.test_modern_class)
Verify the pretty-printing of new-style class instances ... ok
test_selfreferential_dict (test.test_gdb.PrettyPrintTests.test_selfreferential_dict)
Ensure that a reference loop involving a dict doesn't lead proxyval ... ok
test_selfreferential_list (test.test_gdb.PrettyPrintTests.test_selfreferential_list)
Ensure that a reference loop involving a list doesn't lead proxyval ... ok
test_selfreferential_new_style_instance (test.test_gdb.PrettyPrintTests.test_selfreferential_new_style_instance) ... ok
test_selfreferential_old_style_instance (test.test_gdb.PrettyPrintTests.test_selfreferential_old_style_instance) ... ok
test_sets (test.test_gdb.PrettyPrintTests.test_sets)
Verify the pretty-printing of sets ... ok
test_singletons (test.test_gdb.PrettyPrintTests.test_singletons)
Verify the pretty-printing of True, False and None ... ok
test_strings (test.test_gdb.PrettyPrintTests.test_strings)
Verify the pretty-printing of unicode strings ... ok
test_subclassing_list (test.test_gdb.PrettyPrintTests.test_subclassing_list)
Verify the pretty-printing of an instance of a list subclass ... ok
test_subclassing_tuple (test.test_gdb.PrettyPrintTests.test_subclassing_tuple)
Verify the pretty-printing of an instance of a tuple subclass ... ok
test_truncation (test.test_gdb.PrettyPrintTests.test_truncation)
Verify that very long output is truncated ... ok
test_tuples (test.test_gdb.PrettyPrintTests.test_tuples)
Verify the pretty-printing of tuples ... ok
test_bt (test.test_gdb.PyBtTests.test_bt)
Verify that the "py-bt" command works ... skipped "'(unable to read python frame information)' found in gdb output"
test_bt_full (test.test_gdb.PyBtTests.test_bt_full)
Verify that the "py-bt-full" command works ... skipped "'(unable to read python frame information)' found in gdb output"
test_gc (test.test_gdb.PyBtTests.test_gc)
Verify that "py-bt" indicates if a thread is garbage-collecting ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction)
Verify that "py-bt" displays invocations of PyCFunction instances ...
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_varargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'Backtrace stopped: frame did not save the PC' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_varargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass().meth_varargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethStatic().meth_varargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_varargs_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_varargs_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass().meth_varargs_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethStatic().meth_varargs_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_o]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_o]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass().meth_o]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethStatic().meth_o]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_noargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_noargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass().meth_noargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethStatic().meth_noargs]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_fastcall]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_fastcall]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass().meth_fastcall]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethStatic().meth_fastcall]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.meth_fastcall_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "' ?? ()' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass.meth_fastcall_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethClass().meth_fastcall_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_pycfunction (test.test_gdb.PyBtTests.test_pycfunction) [_testcapi.MethStatic().meth_fastcall_keywords]
Verify that "py-bt" displays invocations of PyCFunction instances ... skipped "'(unable to read python frame information)' found in gdb output"
test_threads (test.test_gdb.PyBtTests.test_threads)
Verify that "py-bt" indicates threads that are waiting for the GIL ... skipped "'(unable to read python frame information)' found in gdb output"
test_wrapper_call (test.test_gdb.PyBtTests.test_wrapper_call) ... skipped "'(unable to read python frame information)' found in gdb output"
test_basic_command (test.test_gdb.PyListTests.test_basic_command)
Verify that the "py-list" command works ... skipped "'Unable to read information on python frame' found in gdb output"
test_one_abs_arg (test.test_gdb.PyListTests.test_one_abs_arg)
Verify the "py-list" command with one absolute argument ... skipped "'Unable to read information on python frame' found in gdb output"
test_two_abs_args (test.test_gdb.PyListTests.test_two_abs_args)
Verify the "py-list" command with two absolute arguments ... skipped "'Unable to read information on python frame' found in gdb output"
test_basic_command (test.test_gdb.PyLocalsTests.test_basic_command) ... skipped "'Unable to read information on python frame' found in gdb output"
test_locals_after_up (test.test_gdb.PyLocalsTests.test_locals_after_up) ... skipped "'Unable to read information on python frame' found in gdb output"
test_basic_command (test.test_gdb.PyPrintTests.test_basic_command)
Verify that the "py-print" command works ... skipped "'Unable to read information on python frame' found in gdb output"
test_print_after_up (test.test_gdb.PyPrintTests.test_print_after_up) ... skipped "'Unable to read information on python frame' found in gdb output"
test_printing_builtin (test.test_gdb.PyPrintTests.test_printing_builtin) ... skipped "'Unable to read information on python frame' found in gdb output"
test_printing_global (test.test_gdb.PyPrintTests.test_printing_global) ... skipped "'Unable to read information on python frame' found in gdb output"
test_down_at_bottom (test.test_gdb.StackNavigationTests.test_down_at_bottom)
Verify handling of "py-down" at the bottom of the stack ... ok
test_pyup_command (test.test_gdb.StackNavigationTests.test_pyup_command)
Verify that the "py-up" command works ... skipped "'(unable to read python frame information)' found in gdb output"
test_up_at_top (test.test_gdb.StackNavigationTests.test_up_at_top)
Verify handling of "py-up" at the top of the stack ... skipped "'(unable to read python frame information)' found in gdb output"
test_up_then_down (test.test_gdb.StackNavigationTests.test_up_then_down)
Verify "py-up" followed by "py-down" ... skipped "'(unable to read python frame information)' found in gdb output"
----------------------------------------------------------------------
Ran 46 tests in 85.120s
OK (skipped=41)
test_gdb passed in 1 min 26 sec
== Tests result: SUCCESS ==
1 test OK.
Total duration: 1 min 26 sec
Total tests: run=46 skipped=41
Total test files: run=1/1
Result: SUCCESS
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Thanks @vstinner for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11, 3.12.
🐍🍒⛏🤖
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
miss-islington
pushed a commit
to miss-islington/cpython
that referenced
this pull request
Sep 13, 2023
…09360)
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)
Co-authored-by: Victor Stinner <[email protected]>
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
miss-islington
pushed a commit
to miss-islington/cpython
that referenced
this pull request
Sep 13, 2023
…09360)
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)
Co-authored-by: Victor Stinner <[email protected]>
vstinner
added a commit
that referenced
this pull request
Sep 13, 2023
#109362)
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 44d9a71)
Co-authored-by: Victor Stinner <[email protected]>
Yhg1s
pushed a commit
that referenced
this pull request
Sep 13, 2023
#109361)
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 44d9a71)
Co-authored-by: Victor Stinner <[email protected]>
vstinner
added a commit
to vstinner/cpython
that referenced
this pull request
Sep 13, 2023
)
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.
vstinner
added a commit
to vstinner/cpython
that referenced
this pull request
Oct 4, 2023
)
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)
vstinner
added a commit
that referenced
this pull request
Oct 4, 2023
* 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)
* gh-104736: Fix test_gdb tests on ppc64le with clang (#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)
* gh-110166: Fix gdb CFunctionFullTests on ppc64le clang build (#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 1de9406)
miss-islington
pushed a commit
to miss-islington/cpython
that referenced
this pull request
Oct 4, 2023
…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 <[email protected]>
(cherry picked from commit 1de9406)
vstinner
added a commit
that referenced
this pull request
Oct 4, 2023
…10354)
[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 757cbd4)
* 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 44d9a71)
* 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 bbce8bd)
Co-authored-by: Victor Stinner <[email protected]>
(cherry picked from commit 1de9406)
Co-authored-by: Victor Stinner <[email protected]>
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Labels
tests
Tests in the Lib/test dir
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|