summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorcostypetrisor <costypetrisor@users.noreply.github.com>2018-07-31 20:55:14 (GMT)
committerVictor Stinner <vstinner@redhat.com>2018-07-31 20:55:14 (GMT)
commit8ed317f1ca42a43df14282bbc3ccc0b5610432f4 (patch)
tree608abbe452767ddbd65946d45665082c2af4e773 /Lib
parent944451cd8d3e897138f4b43569de13cd081ee251 (diff)
downloadcpython-8ed317f1ca42a43df14282bbc3ccc0b5610432f4.zip
cpython-8ed317f1ca42a43df14282bbc3ccc0b5610432f4.tar.gz
cpython-8ed317f1ca42a43df14282bbc3ccc0b5610432f4.tar.bz2
bpo-34113: Fix a crash when using LLTRACE is on (GH-8517)
Fix a crash on negative STACKADJ() when Low-Level trace (LLTRACE) is enabled.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_lltrace.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/Lib/test/test_lltrace.py b/Lib/test/test_lltrace.py
new file mode 100644
index 0000000..49fae81
--- /dev/null
+++ b/Lib/test/test_lltrace.py
@@ -0,0 +1,31 @@
+import os
+import textwrap
+import unittest
+
+from test import support
+from test.support.script_helper import assert_python_ok
+
+
+class TestLLTrace(unittest.TestCase):
+
+ def test_lltrace_does_not_crash_on_subscript_operator(self):
+ # If this test fails, it will reproduce a crash reported as
+ # bpo-34113. The crash happened at the command line console of
+ # debug Python builds with __ltrace__ enabled (only possible in console),
+ # when the interal Python stack was negatively adjusted
+ with open(support.TESTFN, 'w') as fd:
+ self.addCleanup(os.unlink, support.TESTFN)
+ fd.write(textwrap.dedent("""\
+ import code
+
+ console = code.InteractiveConsole()
+ console.push('__ltrace__ = 1')
+ console.push('a = [1, 2, 3]')
+ console.push('a[0] = 1')
+ print('unreachable if bug exists')
+ """))
+
+ assert_python_ok(support.TESTFN)
+
+if __name__ == "__main__":
+ unittest.main()