summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_cmd_line.py
diff options
context:
space:
mode:
authorHynek Schlawack <hs@ox.cx>2012-11-07 08:02:24 (GMT)
committerHynek Schlawack <hs@ox.cx>2012-11-07 08:02:24 (GMT)
commit5c6b3e214ce3506c454e8009602f0de651cc7922 (patch)
tree84de35ed7bdb2987e52da094bbd7c05c17d14cab /Lib/test/test_cmd_line.py
parent692b023f7763ccc73f5459f812717f0c627188fd (diff)
downloadcpython-5c6b3e214ce3506c454e8009602f0de651cc7922.zip
cpython-5c6b3e214ce3506c454e8009602f0de651cc7922.tar.gz
cpython-5c6b3e214ce3506c454e8009602f0de651cc7922.tar.bz2
Issue #15001: fix segfault on "del sys.module['__main__']"
Patch by Victor Stinner.
Diffstat (limited to 'Lib/test/test_cmd_line.py')
-rw-r--r--Lib/test/test_cmd_line.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/Lib/test/test_cmd_line.py b/Lib/test/test_cmd_line.py
index f463af4..7d039ee 100644
--- a/Lib/test/test_cmd_line.py
+++ b/Lib/test/test_cmd_line.py
@@ -364,6 +364,18 @@ class CmdLineTest(unittest.TestCase):
self.assertEqual(rc, 0)
self.assertIn(b'random is 1', out)
+ def test_del___main__(self):
+ # Issue #15001: PyRun_SimpleFileExFlags() did crash because it kept a
+ # borrowed reference to the dict of __main__ module and later modify
+ # the dict whereas the module was destroyed
+ filename = test.support.TESTFN
+ self.addCleanup(test.support.unlink, filename)
+ with open(filename, "w") as script:
+ print("import sys", file=script)
+ print("del sys.modules['__main__']", file=script)
+ assert_python_ok(filename)
+
+
def test_main():
test.support.run_unittest(CmdLineTest)
test.support.reap_children()