Commit Graph

236 Commits

Author SHA1 Message Date
Victor Stinner 372b838db5 (merge 3.2) Close #12383: Fix subprocess module with env={}: don't copy the
environment variables, start with an empty environment.
2011-06-21 17:24:21 +02:00
Victor Stinner f1512a2967 Close #12383: Fix subprocess module with env={}: don't copy the environment
variables, start with an empty environment.
2011-06-21 17:18:38 +02:00
Victor Stinner 149b1c7797 Use a sleep for test_subprocess timeout test
instead of an active loop (while True: pass) to limit race conditions.
2011-06-06 23:43:02 +02:00
Victor Stinner ebbbdafd87 (Merge 3.2) Close #12230: Mac OS X Tiger (10.4) has a kernel bug: sometimes,
the file descriptor of a pipe closed in the parent process is valid in the
child process according to fstat(), but the mode of the file descriptor is
invalid, and read or write raise an error.

test.support.requires_mac_ver() is now a decorator, as suggested by Ezio
Melotti, and its docstring is fixed (linux_version => mac_ver).
2011-06-01 13:19:07 +02:00
Victor Stinner 88701e27e9 Close #12230: Mac OS X Tiger (10.4) has a kernel bug: sometimes, the file
descriptor of a pipe closed in the parent process is valid in the child process
according to fstat(), but the mode of the file descriptor is invalid, and read
or write raise an error.

Add also requires_mac_ver() decorator to test.support.
2011-06-01 13:13:04 +02:00
Victor Stinner 1b5b9d7434 (Merge 3.2) Close #12085: Fix an attribute error in subprocess.Popen destructor
if the constructor has failed, e.g. because of an undeclared keyword argument.
Patch written by Oleg Oshmyan.
2011-06-01 00:58:57 +02:00
Victor Stinner 87b9bc3893 Close #12085: Fix an attribute error in subprocess.Popen destructor if the
constructor has failed, e.g. because of an undeclared keyword argument. Patch
written by Oleg Oshmyan.
2011-06-01 00:57:47 +02:00
Charles-François Natali 2d51721832 Issue #12196: Add PIPE_MAX_SIZE to test.support, constant larger than the
underlying OS pipe buffer size.
2011-05-29 16:36:44 +02:00
Gregory P. Smith 8281ba8bcb follow on to the last commit, remove the final POSIXPurePythonTestCase
reference.  (the difference between running test_subprocess.py
directly rather than via regrtest.py)
2011-05-28 10:00:14 -07:00
Gregory P. Smith 59fd1bfcc1 The _posixsubprocess module is now required on POSIX.
Remove the pure Python POSIX subprocess implementation.

If non-CPython VMs (are there any for 3.x yet?) were somehow depending
on this, they already have the exact same set of problems with Python
code being executed after os.fork() that _posixsubprocess was written
to deal with.  They should implement an equivalent outside of Python.
2011-05-28 09:32:39 -07:00
Gregory P. Smith 7439e7b7ce Fix ProcessTestCasePOSIXPurePython to test the module from import when
_posixsubprocess doesn't exist rather than simply stubbing it out
after the fact.  This adds coverage for the RuntimeWarning as well as
using the pure python _create_pipe instead of using
_posixsubprocess.cloexec_pipe unintentionally with the pure python
code.

Ironically: I don't think any platform should ever actually _use_ the
pure Python subprocess code on POSIX platforms anymore.  This at least
tests it properly in this stable branch.  The pure python code for
this is likely to be removed in 3.3.
2011-05-28 09:06:02 -07:00
Gregory P. Smith c80504fb69 Fix ProcessTestCasePOSIXPurePython to test the module from import when
_posixsubprocess doesn't exist rather than simply stubbing it out
after the fact.  This adds coverage for the RuntimeWarning as well as
using the pure python _create_pipe instead of using
_posixsubprocess.cloexec_pipe unintentionally with the pure python
code.

Ironically: I don't think any platform should ever actually _use_ the
pure Python subprocess code on POSIX platforms anymore.  This at least
tests it properly in this stable branch.  The pure python code for
this is likely to be removed in 3.3.
2011-05-28 09:06:02 -07:00
Gregory P. Smith c9557af441 merge - 7a3f3ad83676 Fixes Issue #12044. 2011-05-11 22:18:23 -07:00
Gregory P. Smith 6b65745430 - Issue #12044: Fixed subprocess.Popen when used as a context manager to
wait for the process to end when exiting the context to avoid unintentionally
  leaving zombie processes around.
2011-05-11 21:42:08 -07:00
Ross Lagerwall 0b9ea93a64 Merge with 3.2 2011-04-05 16:07:49 +02:00
Ross Lagerwall 02ba73c0ef Merge with 3.1 2011-04-05 15:48:47 +02:00
Ross Lagerwall 4f61b02520 Issue #10963: Ensure that subprocess.communicate() never raises EPIPE. 2011-04-05 15:34:00 +02:00
Ross Lagerwall 4aeb542a72 Merge with 3.2 2011-03-26 21:22:09 +02:00
Ross Lagerwall 17ace7a07c Merge with 3.1 2011-03-26 21:21:46 +02:00
Ross Lagerwall b8a5769a6d Issue #11659: Fix ResourceWarning in test_subprocess introduced by #11459.
Patch by Ben Hayden.
2011-03-26 21:19:57 +02:00
Antoine Pitrou 7b98d02302 Issue #11459: A `bufsize` value of 0 in subprocess.Popen() really creates
unbuffered pipes, such that select() works properly on them.
2011-03-19 17:04:13 +01:00
Antoine Pitrou 877766dee8 Issue #11459: A `bufsize` value of 0 in subprocess.Popen() really creates
unbuffered pipes, such that select() works properly on them.
2011-03-19 17:00:37 +01:00
Antoine Pitrou 126848a2d8 Fix whitespace in test_subprocess 2011-03-15 21:17:10 +01:00
Gregory P. Smith 961e0e85c0 revert the test_main() change from 08daf3ef6509 so that regrtest continues to run this properly. 2011-03-15 15:43:39 -04:00
Gregory P. Smith e14e9c2218 Add unittests demonstrating issue #11432. 2011-03-15 14:55:17 -04:00
Gregory P. Smith de3909da6b merge 141bbcb19c06 2011-03-15 02:13:09 -04:00
Gregory P. Smith 81ce68597c Fix the @test_NNNN_tmp file terds being left in whatever your $PWD was
when test_subprocess was run.
2011-03-15 02:04:11 -04:00
R David Murray 6924bd72f5 Fix whitespace 2011-03-13 22:48:55 -04:00
R David Murray 384069c2e8 Merge fix for #11490 from 3.1. 2011-03-13 22:26:53 -04:00
R David Murray d79210a0e4 #11490: EACCES can also mean command not found 2011-03-13 22:13:09 -04:00
Antoine Pitrou 1679f4daa1 Issue #11459: A `bufsize` value of 0 in subprocess.Popen() really creates
unbuffered pipes, such that select() works properly on them.
2011-03-19 17:06:22 +01:00
Reid Kleckner da9ac728a8 Bump up the subprocess timeouts even more. :( 2011-03-16 17:08:21 -04:00
Reid Kleckner 2b228f0d9b Include the timeout value in TimeoutExpired.
This was the original intention, but it wasn't threaded all the way through due
to 'endtime'.  Also added a trivial assertion to get coverage of __str__.
2011-03-16 16:57:54 -04:00
Ross Lagerwall ba102ec10d Issue #5870: Add subprocess.DEVNULL constant. 2011-03-16 18:40:25 +02:00
Gregory P. Smith 3b4652e074 revert the test_main() change from 08daf3ef6509 so that regrtest continues to run this properly. 2011-03-15 15:43:39 -04:00
Gregory P. Smith 112bb3ac6a Add unittests demonstrating issue #11432. 2011-03-15 14:55:17 -04:00
Gregory P. Smith 58e317ba92 merge 1579808ef25b 2011-03-15 02:15:13 -04:00
Reid Kleckner 93479ccbf0 Tweak subprocess test timeouts to satisfy the buildbot. 2011-03-14 19:32:41 -04:00
Reid Kleckner 80b92d106e Attempt a larger timeout value to satisfy the buildbots. 2011-03-14 13:34:12 -04:00
Reid Kleckner 31aa7dd141 Add a 'timeout' argument to subprocess.Popen.
If the timeout expires before the subprocess exits, the wait method and the
communicate method will raise a subprocess.TimeoutExpired exception.  When used
with communicate, it is possible to catch the exception, kill the process, and
retry the communicate and receive any output written to stdout or stderr.
2011-03-14 12:02:10 -04:00
R David Murray 74fb7601ba Merge whitespace fix from 3.2. 2011-03-13 22:49:44 -04:00
R David Murray dcd79a2d15 Merge fix for #11490 from 3.2. 2011-03-13 22:31:35 -04:00
Victor Stinner 7b3b20ad29 Issue #8513: On UNIX, subprocess supports bytes command string. 2011-03-03 12:54:05 +00:00
Marc-André Lemburg 8f36af7a4c Normalize the encoding names for Latin-1 and UTF-8 to
'latin-1' and 'utf-8'.

These are optimized in the Python Unicode implementation
to result in more direct processing, bypassing the codec
registry.

Also see issue11303.
2011-02-25 15:42:01 +00:00
Antoine Pitrou a47c25d74f Merged revisions 88484 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r88484 | antoine.pitrou | 2011-02-21 22:55:48 +0100 (lun., 21 févr. 2011) | 4 lines

  Issue #10826: Prevent sporadic failure in test_subprocess on Solaris due
  to open door files.
........
2011-02-21 21:58:42 +00:00
Antoine Pitrou ce58dc7b16 Issue #10826: Prevent sporadic failure in test_subprocess on Solaris due
to open door files.
2011-02-21 21:55:48 +00:00
Antoine Pitrou dcdc3b4c5d Add some more output 2011-01-03 22:24:52 +00:00
Antoine Pitrou c43ec08baf Temporary debug output for intermittent failures in test_subprocess 2011-01-03 22:12:43 +00:00
Antoine Pitrou 95aaeee59a Add a subprocess test of remapping standard file descriptors (issue #1187). 2011-01-03 21:15:48 +00:00
Antoine Pitrou f50a6b6b6d Merged revisions 87695 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r87695 | antoine.pitrou | 2011-01-03 19:23:55 +0100 (lun., 03 janv. 2011) | 5 lines

  Issue #10806, issue #9905: Fix subprocess pipes when some of the standard
  file descriptors (0, 1, 2) are closed in the parent process.  Initial
  patch by Ross Lagerwall.
........
2011-01-03 18:36:36 +00:00
Antoine Pitrou c9c83ba896 Issue #10806, issue #9905: Fix subprocess pipes when some of the standard
file descriptors (0, 1, 2) are closed in the parent process.  Initial
patch by Ross Lagerwall.
2011-01-03 18:23:55 +00:00
Victor Stinner faa8c13ef4 test_subprocess: close pipes at the end of test_pipe_cloexec_real_tools() 2011-01-03 16:36:00 +00:00
Victor Stinner 667d4b577f Issue #10763: subprocess.communicate() closes stdout and stderr if both are
pipes (bug specific to Windows).

Improve also the unit test: write a portable unit test.
2010-12-25 22:40:32 +00:00
Gregory P. Smith 773d7dffb1 fix "BytesWarning: str() on a bytes instance" 2010-12-14 15:25:20 +00:00
Gregory P. Smith a80f4fb048 Fix "BytesWarning: str() on a bytes instance" 2010-12-14 15:23:02 +00:00
Gregory P. Smith b740e76af0 Merged revisions 87233 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r87233 | gregory.p.smith | 2010-12-14 06:38:00 -0800 (Tue, 14 Dec 2010) | 4 lines

  Issue #1731717: Fixed the problem where subprocess.wait() could cause an
  OSError exception when The OS had been told to ignore SIGCLD in our process
  or otherwise not wait for exiting child processes.
........
2010-12-14 15:16:24 +00:00
Gregory P. Smith e85db2bbb8 Issue #1731717: Fixed the problem where subprocess.wait() could cause an
OSError exception when The OS had been told to ignore SIGCLD in our process
or otherwise not wait for exiting child processes.
2010-12-14 14:38:00 +00:00
Gregory P. Smith 8edd99d085 Issue #6559: fix the subprocess.Popen pass_fds implementation. Add a unittest.
Issue #7213: Change the close_fds default on Windows to better match the new
default on POSIX.  True when possible (False if stdin/stdout/stderr are
supplied).

Update the documentation to reflect all of the above.
2010-12-14 13:43:30 +00:00
Gregory P. Smith 51ee270876 issue7213: Open the pipes used by subprocesses with the FD_CLOEXEC flag from
the C code, using pipe2() when available.  Adds unittests for close_fds and
cloexec behaviors.
2010-12-13 07:59:39 +00:00
Gregory P. Smith f560485388 Get rid of the close_fds DeprecationWarning. Changes the default on a per
platform basis.  It remains False on Windows and changes to True on all
other platforms (POSIX).  Based on python-dev discussion and
http://bugs.python.org/issue7213.
2010-12-13 06:45:02 +00:00
Gregory P. Smith b4162305bb refactor the warning test. 2010-12-04 09:59:52 +00:00
Gregory P. Smith d23047b62c issue7213 + issue2320: Cause a DeprecationWarning if the close_fds argument is
not passed to subprocess.Popen as the default value will be changing in a
future Python to the safer and more often desired value of True.

DeprecationWarnings that show up in a lot of existing code are controversial
and have caused pain in the past.  I'd like to leave this on for 3.2 beta1 and
see how things go.  We can remove the warning if it is deemed too noisy during
any betas.  (case study: the md5 and sha module DeprecationWarnings are loathed
around the world as those modules were never going to be removed in 2.x and
2to3 has a fixer for code that uses them)
2010-12-04 09:10:44 +00:00
Brian Curtin 79cdb661f5 Fix #10554. Added context manager support to Popen objects.
Added a few common Popen uses to the tests like we've done for a few other
instances of adding context managers. Eventually the entire test suite
could be converted to use the context manager format.
2010-12-03 02:46:02 +00:00
Ezio Melotti 19f2aeba67 Merged revisions 86596 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r86596 | ezio.melotti | 2010-11-20 21:04:17 +0200 (Sat, 20 Nov 2010) | 1 line

  #9424: Replace deprecated assert* methods in the Python test suite.
........
2010-11-21 01:30:29 +00:00
Ezio Melotti b3aedd4862 #9424: Replace deprecated assert* methods in the Python test suite. 2010-11-20 19:04:17 +00:00
Benjamin Peterson 5f78040057 add filename to ENOENT message #4925 2010-11-20 18:07:52 +00:00
Brian Curtin 19a5379c97 Fix a number of ResourceWarnings on Windows due to open pipes. 2010-11-05 17:09:05 +00:00
Brian Curtin 3c6a951cfb Add cleanups to stdout/stderr pipes to remove ResourceWarnings. 2010-11-05 03:58:52 +00:00
Benjamin Peterson cc221b2411 close some more files 2010-10-31 02:06:21 +00:00
Victor Stinner f6782ac0b6 test_subprocess: use surrogateescape error handler to write shell scripts
test_args_string() and test_call_string() create shell scripts including the
path to the Python executable: use surrogateescape to encode paths including
surrogate characters.
2010-10-16 23:46:43 +00:00
Victor Stinner 89f3ad10d2 test_subprocess doesn't need to C locale to test os.environb
Improve also the comment to explain why C locale is needed to test os.environ.
2010-10-14 10:43:31 +00:00
Victor Stinner ebc78d23ef test_subprocess: use C locale to get ascii locale encoding 2010-10-14 10:38:17 +00:00
Victor Stinner 8f6b6b0cc3 Issue #9992: Remove PYTHONFSENCODING environment variable. 2010-10-13 22:02:27 +00:00
Antoine Pitrou a4024e2dd5 Make _kill_process more robust under Windows too (see issue #8432) 2010-09-24 18:57:01 +00:00
Antoine Pitrou 4a5dd5c576 Merged revisions 84909-84913 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r84909 | antoine.pitrou | 2010-09-20 00:46:05 +0200 (lun., 20 sept. 2010) | 3 lines

  Try to fix test_subprocess on "x86 debian parallel 3.x" buildbot
........
  r84910 | antoine.pitrou | 2010-09-20 01:06:53 +0200 (lun., 20 sept. 2010) | 3 lines

  Try to make signal-sending tests in test_subprocess more robust on slow machines
........
  r84911 | antoine.pitrou | 2010-09-20 01:28:30 +0200 (lun., 20 sept. 2010) | 3 lines

  Make error more explicit in test_finalize_with_trace
........
  r84912 | antoine.pitrou | 2010-09-20 02:12:19 +0200 (lun., 20 sept. 2010) | 3 lines

  Try to fix buildbot failure (#9902)
........
  r84913 | antoine.pitrou | 2010-09-20 03:33:21 +0200 (lun., 20 sept. 2010) | 3 lines

  Try a more robust implementation of _kill_process
........
2010-09-20 11:17:39 +00:00
Antoine Pitrou 3d8580f690 Try a more robust implementation of _kill_process 2010-09-20 01:33:21 +00:00
Antoine Pitrou 84e751a442 Try to fix buildbot failure (#9902) 2010-09-20 00:12:19 +00:00
Antoine Pitrou fedd481596 Try to make signal-sending tests in test_subprocess more robust on slow machines 2010-09-19 23:06:53 +00:00
Antoine Pitrou fb8db8f635 Try to fix test_subprocess on "x86 debian parallel 3.x" buildbot 2010-09-19 22:46:05 +00:00
Antoine Pitrou 6fab1f69e2 Merged revisions 84883 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r84883 | antoine.pitrou | 2010-09-19 00:38:48 +0200 (dim., 19 sept. 2010) | 3 lines

  Issue #9895: speed up test_subprocess
........
2010-09-18 22:40:56 +00:00
Antoine Pitrou 8db3027e6a Issue #9895: speed up test_subprocess 2010-09-18 22:38:48 +00:00
Antoine Pitrou f61045fd15 Merged revisions 84878 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r84878 | antoine.pitrou | 2010-09-18 19:56:02 +0200 (sam., 18 sept. 2010) | 5 lines

  Issue #9894: Do not hardcode ENOENT in test_subprocess.

  (GNU/Hurd is not dead)
........
2010-09-18 18:16:39 +00:00
Antoine Pitrou 679e0f2328 Issue #9894: Do not hardcode ENOENT in test_subprocess.
(GNU/Hurd is not dead)
2010-09-18 17:56:02 +00:00
Brian Curtin f263c0594c Merged revisions 83983 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r83983 | brian.curtin | 2010-08-13 15:42:57 -0500 (Fri, 13 Aug 2010) | 3 lines

  Fix #9588. Add sys.executable to two shell=True tests.
........
2010-08-13 20:59:27 +00:00
Brian Curtin d835cf1c84 Fix #9588. Add sys.executable to two shell=True tests. 2010-08-13 20:42:57 +00:00
Tim Golden 595c8d34a3 #2304: fix incorporating Eric Smith's .format suggestion and tested on Ubuntu as well as Windows 2010-08-12 09:45:25 +00:00
Tim Golden 126c2960ca #2304: fix incorporating Eric Smith's .format suggestion and tested on Ubuntu as well as Windows 2010-08-11 14:20:40 +00:00
Benjamin Peterson a0baf55b2b revert r83831, unix test breakage 2010-08-08 19:17:15 +00:00
Benjamin Peterson 1a0a737b13 revert r83830, breaks tests on unixes 2010-08-08 19:08:44 +00:00
Tim Golden 818afb55c9 Issue #2304: Add additional quotes when using cmd shell on Windows. Original patch from Gabriel Genellina 2010-08-08 16:18:18 +00:00
Tim Golden e3f76168a9 Issue #2304: Add additional quotes when using cmd shell on Windows. Original patch from Gabriel Genellina 2010-08-08 16:17:48 +00:00
Tim Golden 40b3744efa Issue #3210: Ensure stdio handles are closed if CreateProcess fails 2010-08-06 13:20:12 +00:00
Tim Golden af5ac3974b Issue #3210: Ensure stdio handles are closed if CreateProcess fails 2010-08-06 13:03:56 +00:00
Antoine Pitrou 62f68ed31f Factor out stripping of interpreter debug output in test.support.strip_python_stderr() 2010-08-04 11:48:56 +00:00
Ronald Oussoren d7eb3a8d73 Merged revisions 83067 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r83067 | ronald.oussoren | 2010-07-23 10:50:05 +0100 (Fri, 23 Jul 2010) | 8 lines

  Workaround for issue 4047: in some configurations of
  the Crash Reporter on OSX test_subprocess will trigger
  the reporter.

  This patch prints a warning when the Crash Reporter will
  get triggered intentionally, which should avoid confusing
  people.
........
2010-07-23 10:35:20 +00:00
Ronald Oussoren 102d11a6d6 Workaround for issue 4047: in some configurations of
the Crash Reporter on OSX test_subprocess will trigger
the reporter.

This patch prints a warning when the Crash Reporter will
get triggered intentionally, which should avoid confusing
people.
2010-07-23 09:50:05 +00:00
Stefan Krah 8db99c8995 Merged revisions 82971 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r82971 | stefan.krah | 2010-07-19 16:20:53 +0200 (Mon, 19 Jul 2010) | 4 lines

  Issue #9265: Incorrect name passed as arg[0] when shell=True
  and executable specified.
........
2010-07-19 14:39:36 +00:00
Stefan Krah 9542cc6eb5 Issue #9265: Incorrect name passed as arg[0] when shell=True
and executable specified.
2010-07-19 14:20:53 +00:00
Jean-Paul Calderone 2323d20289 Merged revisions 82076 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r82076 | jean-paul.calderone | 2010-06-18 16:03:54 -0400 (Fri, 18 Jun 2010) | 19 lines

  Merged revisions 82075 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r82075 | jean-paul.calderone | 2010-06-18 16:00:17 -0400 (Fri, 18 Jun 2010) | 12 lines

    Revert r60115

    This revision introduced quoting for strings containing | based
    on a misunderstanding of the commonly used quoting rules used
    on Windows.

    | is interpreted by cmd.exe, not by the MS C runtime argv initializer.
    It only needs to be quoted if it is part of an argument passed through
    cmd.exe.

    See issue1300, issue7839, and issue8972.
  ........
................
2010-06-18 20:11:43 +00:00
Jean-Paul Calderone 1ddd4075bf Merged revisions 82075 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r82075 | jean-paul.calderone | 2010-06-18 16:00:17 -0400 (Fri, 18 Jun 2010) | 12 lines

  Revert r60115

  This revision introduced quoting for strings containing | based
  on a misunderstanding of the commonly used quoting rules used
  on Windows.

  | is interpreted by cmd.exe, not by the MS C runtime argv initializer.
  It only needs to be quoted if it is part of an argument passed through
  cmd.exe.

  See issue1300, issue7839, and issue8972.
........
2010-06-18 20:03:54 +00:00