| 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() |