mirror of
https://github.com/python/cpython.git
synced 2025-10-01 04:42:10 +00:00
bpo-32852: Fix trace changing sys.argv to tuple. (GH-5692)
(cherry picked from commit 9f4223261f
)
Co-authored-by: Kyle Altendorf <sda@fstab.net>
This commit is contained in:
parent
025544a855
commit
afb5e55836
3 changed files with 12 additions and 1 deletions
|
@ -387,5 +387,15 @@ class TestCommandLine(unittest.TestCase):
|
||||||
status, stdout, stderr = assert_python_ok('-m', 'trace', '-l', TESTFN)
|
status, stdout, stderr = assert_python_ok('-m', 'trace', '-l', TESTFN)
|
||||||
self.assertIn(b'functions called:', stdout)
|
self.assertIn(b'functions called:', stdout)
|
||||||
|
|
||||||
|
def test_sys_argv_list(self):
|
||||||
|
with open(TESTFN, 'w') as fd:
|
||||||
|
self.addCleanup(unlink, TESTFN)
|
||||||
|
fd.write("import sys\n")
|
||||||
|
fd.write("print(type(sys.argv))\n")
|
||||||
|
|
||||||
|
status, direct_stdout, stderr = assert_python_ok(TESTFN)
|
||||||
|
status, trace_stdout, stderr = assert_python_ok('-m', 'trace', '-l', TESTFN)
|
||||||
|
self.assertIn(direct_stdout.strip(), trace_stdout)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
|
@ -705,7 +705,7 @@ def main():
|
||||||
if opts.filename is None:
|
if opts.filename is None:
|
||||||
parser.error('filename is missing: required with the main options')
|
parser.error('filename is missing: required with the main options')
|
||||||
|
|
||||||
sys.argv = opts.filename, *opts.arguments
|
sys.argv = [opts.filename, *opts.arguments]
|
||||||
sys.path[0] = os.path.dirname(opts.filename)
|
sys.path[0] = os.path.dirname(opts.filename)
|
||||||
|
|
||||||
t = Trace(opts.count, opts.trace, countfuncs=opts.listfuncs,
|
t = Trace(opts.count, opts.trace, countfuncs=opts.listfuncs,
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Make sure sys.argv remains as a list when running trace.
|
Loading…
Add table
Add a link
Reference in a new issue