summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle Altendorf <sda@fstab.net>2018-02-16 22:32:37 -0800
committerSerhiy Storchaka <storchaka@gmail.com>2018-02-17 08:32:37 +0200
commit9f4223261fd129ad7b9a09b2b0d625d1bb90b22b (patch)
tree4e0060662acd684de7e7ce01d8e561998e6f36c8
parent243d6d71265be1996a8326002deae429106a5fba (diff)
downloadcpython-git-9f4223261fd129ad7b9a09b2b0d625d1bb90b22b.tar.gz
bpo-32852: Fix trace changing sys.argv to tuple. (GH-5692)
-rw-r--r--Lib/test/test_trace.py10
-rwxr-xr-xLib/trace.py2
-rw-r--r--Misc/NEWS.d/next/Library/2018-02-15-12-04-29.bpo-32852.HDqIxM.rst1
3 files changed, 12 insertions, 1 deletions
diff --git a/Lib/test/test_trace.py b/Lib/test/test_trace.py
index 1d87aea5a3..e04ca01c42 100644
--- a/Lib/test/test_trace.py
+++ b/Lib/test/test_trace.py
@@ -387,5 +387,15 @@ class TestCommandLine(unittest.TestCase):
status, stdout, stderr = assert_python_ok('-m', 'trace', '-l', TESTFN)
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__':
unittest.main()
diff --git a/Lib/trace.py b/Lib/trace.py
index 48a1d1b6a9..ade76166bd 100755
--- a/Lib/trace.py
+++ b/Lib/trace.py
@@ -705,7 +705,7 @@ def main():
if opts.filename is None:
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)
t = Trace(opts.count, opts.trace, countfuncs=opts.listfuncs,
diff --git a/Misc/NEWS.d/next/Library/2018-02-15-12-04-29.bpo-32852.HDqIxM.rst b/Misc/NEWS.d/next/Library/2018-02-15-12-04-29.bpo-32852.HDqIxM.rst
new file mode 100644
index 0000000000..8eabbfaea2
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2018-02-15-12-04-29.bpo-32852.HDqIxM.rst
@@ -0,0 +1 @@
+Make sure sys.argv remains as a list when running trace.