Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 81 additions & 1 deletion graalpython/com.oracle.graal.python.test/src/tests/test_pdb.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright (c) 2023, 2025, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2023, 2026, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# The Universal Permissive License (UPL), Version 1.0
Expand Down Expand Up @@ -100,6 +100,86 @@ def doctest_pdb_locals():
"""


# Extracted from CPython test_pdb_basic_commands and test_pdb_issue_gh_91742.
# The full upstream doctests require unsupported Bytecode DSL f_lineno jumps;
# these keep the non-jump debugger coverage that is still relevant.
def doctest_pdb_args_for_kwonly_and_posonly():
"""
Test that args displays keyword-only and positional-only parameters.

>>> def kwonly_func(arg=None, *, kwonly=None):
... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace()
... pass

>>> def posonly_func(a, b, /, c=None):
... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace()
... pass

>>> with PdbTestInput([
... 'args',
... 'continue',
... 'args',
... 'continue',
... ]):
... kwonly_func('value', kwonly=True)
... posonly_func(1, 2, c=3)
> <doctest tests.test_pdb.doctest_pdb_args_for_kwonly_and_posonly[0]>(3)kwonly_func()
-> pass
(Pdb) args
arg = 'value'
kwonly = True
(Pdb) continue
> <doctest tests.test_pdb.doctest_pdb_args_for_kwonly_and_posonly[1]>(3)posonly_func()
-> pass
(Pdb) args
a = 1
b = 2
c = 3
(Pdb) continue
"""


def doctest_pdb_multiline_call_line_tracing():
"""
Test stepping through a nested function and stopping on a multiline call continuation.

>>> def test_function():
... __author__ = "pi"
... __version__ = "3.14"
...
... def about():
... '''About'''
... print(f"Author: {__author__!r}",
... f"Version: {__version__!r}",
... sep=" ")
...
... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace()
... about()

>>> with PdbTestInput([ # doctest: +NORMALIZE_WHITESPACE
... 'step',
... 'next',
... 'next',
... 'continue',
... ]):
... test_function()
> <doctest tests.test_pdb.doctest_pdb_multiline_call_line_tracing[0]>(12)test_function()
-> about()
(Pdb) step
--Call--
> <doctest tests.test_pdb.doctest_pdb_multiline_call_line_tracing[0]>(5)about()
-> def about():
(Pdb) next
> <doctest tests.test_pdb.doctest_pdb_multiline_call_line_tracing[0]>(7)about()
-> print(f"Author: {__author__!r}",
(Pdb) next
> <doctest tests.test_pdb.doctest_pdb_multiline_call_line_tracing[0]>(8)about()
-> f"Version: {__version__!r}",
(Pdb) continue
Author: 'pi' Version: '3.14'
"""


if not util.IS_BYTECODE_DSL:
def doctest_pdb_locals_generator():
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ DocTestCase.test.test_pdb.test_list_commands @ darwin-arm64,linux-aarch64,linux-
DocTestCase.test.test_pdb.test_next_until_return_at_return_event @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
DocTestCase.test.test_pdb.test_pdb_alias_command @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
DocTestCase.test.test_pdb.test_pdb_ambiguous_statements @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
# GR-71866
# Arbitrary jumps in pdb not supported in Bytecode DSL
!DocTestCase.test.test_pdb.test_pdb_basic_commands @ darwin-arm64,linux-x86_64,win32-AMD64
DocTestCase.test.test_pdb.test_pdb_breakpoint_commands @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
DocTestCase.test.test_pdb.test_pdb_breakpoint_on_annotated_function_def @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
Expand All @@ -17,7 +17,7 @@ DocTestCase.test.test_pdb.test_pdb_issue_43318 @ darwin-arm64,linux-aarch64,linu
DocTestCase.test.test_pdb.test_pdb_issue_gh_101673 @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
DocTestCase.test.test_pdb.test_pdb_issue_gh_103225 @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
DocTestCase.test.test_pdb.test_pdb_issue_gh_65052 @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
# GR-71866
# Arbitrary jumps in pdb not supported in Bytecode DSL
!DocTestCase.test.test_pdb.test_pdb_issue_gh_91742 @ darwin-arm64,linux-aarch64,linux-x86_64,win32-AMD64
DocTestCase.test.test_pdb.test_pdb_next_command_for_generator @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
DocTestCase.test.test_pdb.test_pdb_pp_repr_exc @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,7 @@ test.test_threading.SemaphoreTests.test_repr @ darwin-arm64,linux-aarch64,linux-
test.test_threading.SemaphoreTests.test_try_acquire @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_threading.SemaphoreTests.test_try_acquire_contended @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_threading.SemaphoreTests.test_with @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
# Can transiently fail with java.lang.AssertionError: The TruffleContext must be entered
!test.test_threading.ThreadJoinOnShutdown.test_1_join_on_shutdown
test.test_threading.ThreadJoinOnShutdown.test_1_join_on_shutdown @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_threading.ThreadJoinOnShutdown.test_4_daemon_threads @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_threading.ThreadJoinOnShutdown.test_thread_from_thread @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
test.test_threading.ThreadTests.test_BoundedSemaphore_limit @ darwin-arm64,linux-aarch64,linux-aarch64-github,linux-x86_64,linux-x86_64-github,win32-AMD64,win32-AMD64-github
Expand Down
3 changes: 1 addition & 2 deletions graalpython/lib-python/3/test/test_memoryio.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import unittest
from test import support

import gc
import io
import _pyio as pyio
import pickle
Expand Down Expand Up @@ -495,7 +494,7 @@ def test_getbuffer_gc_collect(self):
del a
# The C implementation emits an unraisable exception.
with support.catch_unraisable_exception():
gc.collect()
support.gc_collect(lambda: memiowr() is not None or bufwr() is not None)
self.assertIsNone(memiowr())
self.assertIsNone(bufwr())

Expand Down
Loading