mirror of
https://github.com/python/cpython.git
synced 2025-10-02 05:12:23 +00:00
Merged revisions 82973 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/release27-maint ........ r82973 | stefan.krah | 2010-07-19 16:41:08 +0200 (Mon, 19 Jul 2010) | 4 lines Issue #9265: Incorrect name passed as arg[0] when shell=True and executable specified. ........
This commit is contained in:
parent
d483a1a12b
commit
9ea629cc83
2 changed files with 21 additions and 0 deletions
|
@ -1029,6 +1029,8 @@ class Popen(object):
|
||||||
|
|
||||||
if shell:
|
if shell:
|
||||||
args = ["/bin/sh", "-c"] + args
|
args = ["/bin/sh", "-c"] + args
|
||||||
|
if executable:
|
||||||
|
args[0] = executable
|
||||||
|
|
||||||
if executable is None:
|
if executable is None:
|
||||||
executable = args[0]
|
executable = args[0]
|
||||||
|
|
|
@ -613,6 +613,25 @@ class ProcessTestCase(unittest.TestCase):
|
||||||
os.remove(fname)
|
os.remove(fname)
|
||||||
self.assertEqual(rc, 47)
|
self.assertEqual(rc, 47)
|
||||||
|
|
||||||
|
def test_specific_shell(self):
|
||||||
|
# Issue #9265: Incorrect name passed as arg[0].
|
||||||
|
shells = []
|
||||||
|
for prefix in ['/bin', '/usr/bin/', '/usr/local/bin']:
|
||||||
|
for name in ['bash', 'ksh']:
|
||||||
|
sh = os.path.join(prefix, name)
|
||||||
|
if os.path.isfile(sh):
|
||||||
|
shells.append(sh)
|
||||||
|
if not shells: # Will probably work for any shell but csh.
|
||||||
|
self.skipTest("bash or ksh required for this test")
|
||||||
|
sh = '/bin/sh'
|
||||||
|
if os.path.isfile(sh) and not os.path.islink(sh):
|
||||||
|
# Test will fail if /bin/sh is a symlink to csh.
|
||||||
|
shells.append(sh)
|
||||||
|
for sh in shells:
|
||||||
|
p = subprocess.Popen("echo $0", executable=sh, shell=True,
|
||||||
|
stdout=subprocess.PIPE)
|
||||||
|
self.assertEqual(p.stdout.read().strip(), sh)
|
||||||
|
|
||||||
def DISABLED_test_send_signal(self):
|
def DISABLED_test_send_signal(self):
|
||||||
p = subprocess.Popen([sys.executable,
|
p = subprocess.Popen([sys.executable,
|
||||||
"-c", "input()"])
|
"-c", "input()"])
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue