mirror of
https://github.com/python/cpython.git
synced 2025-09-24 09:23:02 +00:00
Issue #15001: fix segfault on "del sys.modules['__main__']"
Patch by Victor Stinner.
This commit is contained in:
parent
6cad3712b3
commit
b271b3e188
3 changed files with 25 additions and 7 deletions
|
@ -2,9 +2,12 @@
|
|||
# All tests are executed with environment variables ignored
|
||||
# See test_cmd_line_script.py for testing of script execution
|
||||
|
||||
import test.test_support, unittest
|
||||
import test.test_support
|
||||
import sys
|
||||
from test.script_helper import spawn_python, kill_python, python_exit_code
|
||||
import unittest
|
||||
from test.script_helper import (
|
||||
assert_python_ok, spawn_python, kill_python, python_exit_code
|
||||
)
|
||||
|
||||
|
||||
class CmdLineTest(unittest.TestCase):
|
||||
|
@ -101,6 +104,18 @@ class CmdLineTest(unittest.TestCase):
|
|||
data = self.start_python('-R', '-c', code)
|
||||
self.assertTrue('hash_randomization=1' in data)
|
||||
|
||||
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.test_support.TESTFN
|
||||
self.addCleanup(test.test_support.unlink, filename)
|
||||
with open(filename, "w") as script:
|
||||
print >>script, "import sys"
|
||||
print >>script, "del sys.modules['__main__']"
|
||||
assert_python_ok(filename)
|
||||
|
||||
|
||||
def test_main():
|
||||
test.test_support.run_unittest(CmdLineTest)
|
||||
test.test_support.reap_children()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue