Commit 79644f9c authored by Victor Stinner's avatar Victor Stinner

Issue #22117: Fix test_gdb for the new time.sleep()

Use time.gmtime() instead of time.sleep(), because time.sleep() is no more
declared with METH_VARARGS but with METH_O. time.gmtime() is still declared
with METH_VARARGS and so it is called with PyCFunction_Call() which is the
target of the test_gdb unit test.
parent ba508d5d
...@@ -802,25 +802,27 @@ id(42) ...@@ -802,25 +802,27 @@ id(42)
"Python was compiled without thread support") "Python was compiled without thread support")
def test_pycfunction(self): def test_pycfunction(self):
'Verify that "py-bt" displays invocations of PyCFunction instances' 'Verify that "py-bt" displays invocations of PyCFunction instances'
cmd = ('from time import sleep\n' # Tested function must not be defined with METH_NOARGS or METH_O,
# otherwise call_function() doesn't call PyCFunction_Call()
cmd = ('from time import gmtime\n'
'def foo():\n' 'def foo():\n'
' sleep(1)\n' ' gmtime(1)\n'
'def bar():\n' 'def bar():\n'
' foo()\n' ' foo()\n'
'bar()\n') 'bar()\n')
# Verify with "py-bt": # Verify with "py-bt":
gdb_output = self.get_stack_trace(cmd, gdb_output = self.get_stack_trace(cmd,
breakpoint='time_sleep', breakpoint='time_gmtime',
cmds_after_breakpoint=['bt', 'py-bt'], cmds_after_breakpoint=['bt', 'py-bt'],
) )
self.assertIn('<built-in method sleep', gdb_output) self.assertIn('<built-in method gmtime', gdb_output)
# Verify with "py-bt-full": # Verify with "py-bt-full":
gdb_output = self.get_stack_trace(cmd, gdb_output = self.get_stack_trace(cmd,
breakpoint='time_sleep', breakpoint='time_gmtime',
cmds_after_breakpoint=['py-bt-full'], cmds_after_breakpoint=['py-bt-full'],
) )
self.assertIn('#0 <built-in method sleep', gdb_output) self.assertIn('#0 <built-in method gmtime', gdb_output)
class PyPrintTests(DebuggerTests): class PyPrintTests(DebuggerTests):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment