summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_pdb.py
diff options
context:
space:
mode:
authorXavier de Gaye <xdegaye@users.sourceforge.net>2016-10-12 18:13:24 (GMT)
committerXavier de Gaye <xdegaye@users.sourceforge.net>2016-10-12 18:13:24 (GMT)
commit10e54aeaa234f2806b367c66e3fb4ac6568b39f6 (patch)
treee7b19ba4ccec369878324c2e05690d94e23bfe4c /Lib/test/test_pdb.py
parentfd28cbef4b1a1b85f8fc6d936a8916302abdf171 (diff)
downloadcpython-10e54aeaa234f2806b367c66e3fb4ac6568b39f6.zip
cpython-10e54aeaa234f2806b367c66e3fb4ac6568b39f6.tar.gz
cpython-10e54aeaa234f2806b367c66e3fb4ac6568b39f6.tar.bz2
Issue #20766: Fix references leaked by pdb in the handling of SIGINT handlers.
Diffstat (limited to 'Lib/test/test_pdb.py')
-rw-r--r--Lib/test/test_pdb.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index 45ba5a9..66a7b55 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -911,6 +911,29 @@ def test_pdb_next_command_subiterator():
(Pdb) continue
"""
+def test_pdb_issue_20766():
+ """Test for reference leaks when the SIGINT handler is set.
+
+ >>> def test_function():
+ ... i = 1
+ ... while i <= 2:
+ ... sess = pdb.Pdb()
+ ... sess.set_trace(sys._getframe())
+ ... print('pdb %d: %s' % (i, sess._previous_sigint_handler))
+ ... i += 1
+
+ >>> with PdbTestInput(['continue',
+ ... 'continue']):
+ ... test_function()
+ > <doctest test.test_pdb.test_pdb_issue_20766[0]>(6)test_function()
+ -> print('pdb %d: %s' % (i, sess._previous_sigint_handler))
+ (Pdb) continue
+ pdb 1: <built-in function default_int_handler>
+ > <doctest test.test_pdb.test_pdb_issue_20766[0]>(5)test_function()
+ -> sess.set_trace(sys._getframe())
+ (Pdb) continue
+ pdb 2: <built-in function default_int_handler>
+ """
class PdbTestCase(unittest.TestCase):