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