msg172432 - (view) |
Author: Chris Jerdonek (chris.jerdonek) *  |
Date: 2012-10-09 01:41 |
This issue is to make whatever changes are necessary to remove the skip from test_subprocess's test_executable() test (currently skipping machines that are neither Windows nor Mac): http://hg.python.org/cpython/file/ef90c5e482f4/Lib/test/test_subprocess.py#l203 The test currently fails on several Linux buildbots, but the test succeeds on Mac and Windows. Perhaps this points to a different, underlying issue that needs to be fixed. Either way, we should be able to test Popen()'s executable argument on Linux machines. This issue seems closely related to closed issue #7774. Below is more information from a buildbot about the failure (the AMD64 Ubuntu LTS buildbot): http://buildbot.python.org/all/builders/AMD64%20Ubuntu%20LTS%203.3/builds/38/steps/test/logs/stdio FAIL: test_executable (test.test_subprocess.ProcessTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/python/3.x.langa-ubuntu/build/Lib/test/test_subprocess.py", line 205, in test_executable self._assert_python(["doesnotexist", "-c"], executable=sys.executable) File "/opt/python/3.x.langa-ubuntu/build/Lib/test/test_subprocess.py", line 201, in _assert_python self.assertEqual(47, p.returncode) AssertionError: 47 != -6 ====================================================================== FAIL: test_executable (test.test_subprocess.ProcessTestCaseNoPoll) ---------------------------------------------------------------------- Traceback (most recent call last): File "/opt/python/3.x.langa-ubuntu/build/Lib/test/test_subprocess.py", line 205, in test_executable self._assert_python(["doesnotexist", "-c"], executable=sys.executable) File "/opt/python/3.x.langa-ubuntu/build/Lib/test/test_subprocess.py", line 201, in _assert_python self.assertEqual(47, p.returncode) AssertionError: 47 != -6 test_executable (test.test_subprocess.ProcessTestCase) ... Could not find platform independent libraries Could not find platform dependent libraries <exec_prefix> Consider setting $PYTHONHOME to [:<exec_prefix>] Fatal Python error: Py_Initialize: Unable to get the locale encoding ImportError: No module named 'encodings' FAIL |
|
|
msg172435 - (view) |
Author: Chris Jerdonek (chris.jerdonek) *  |
Date: 2012-10-09 01:48 |
For future reference, this issue resulted from the tests committed for issue 16115. |
|
|
msg172468 - (view) |
Author: Antoine Pitrou (pitrou) *  |
Date: 2012-10-09 10:15 |
Try prefixing "doesnotexist" with the same dirname as sys.executable (i.e. `os.path.join(os.path.dirname(sys.executable), "doesnotexist")`). Python under Unix uses its own path to determine where the standard library is, and it does so by inspecting argv[0]. |
|
|
msg172511 - (view) |
Author: Chris Jerdonek (chris.jerdonek) *  |
Date: 2012-10-09 20:01 |
Thanks for the explanation and suggestion, Antoine. I'm attaching a patch that incorporates the suggestion, but I haven't checked that it works yet (I would need to use snakebite). |
|
|
msg172512 - (view) |
Author: Antoine Pitrou (pitrou) *  |
Date: 2012-10-09 20:03 |
Chris, you can also push a custom repo to a custom builder: http://docs.python.org/devguide/buildbots.html#custom-builders |
|
|
msg172513 - (view) |
Author: Antoine Pitrou (pitrou) *  |
Date: 2012-10-09 20:05 |
Actually, I've just checked that your patch works under Linux. |
|
|
msg172514 - (view) |
Author: Chris Jerdonek (chris.jerdonek) *  |
Date: 2012-10-09 20:06 |
That's great, thanks for the pointer, Antoine. I will try that out later today. |
|
|
msg172516 - (view) |
Author: Chris Jerdonek (chris.jerdonek) *  |
Date: 2012-10-09 20:07 |
Okay, even better. :) |
|
|
msg172518 - (view) |
Author: Roundup Robot (python-dev)  |
Date: 2012-10-09 20:21 |
New changeset 9451908da615 by Chris Jerdonek in branch '3.3': Issue #16170: Remove Linux skip from test_subprocess's test_executable test. http://hg.python.org/cpython/rev/9451908da615 New changeset 0ee03c9b098f by Chris Jerdonek in branch 'default': Issue #16170: Merge subprocess test unskip from 3.3. http://hg.python.org/cpython/rev/0ee03c9b098f |
|
|
msg172541 - (view) |
Author: Chris Jerdonek (chris.jerdonek) *  |
Date: 2012-10-09 22:33 |
> Python under Unix uses its own path to determine where the standard library is, and it does so by inspecting argv[0]. Actually, how is the above able to work if sys.argv[0] is set to "-c" when Python is invoked using the "-c" option (as it is in the test). http://docs.python.org/dev/library/sys.html#sys.argv |
|
|
msg172543 - (view) |
Author: Chris Jerdonek (chris.jerdonek) *  |
Date: 2012-10-09 23:43 |
Never mind on the above question. Those are different argv's. |
|
|