Issue 16170: remove Linux skip from test_subprocess's test_executable() test (original) (raw)

Created on 2012-10-09 01:41 by chris.jerdonek, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
issue-16170-1.patch chris.jerdonek,2012-10-09 20:01 review
Messages (11)
msg172432 - (view) Author: Chris Jerdonek (chris.jerdonek) * (Python committer) 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) * (Python committer) 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) * (Python committer) 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) * (Python committer) 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) * (Python committer) 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) * (Python committer) Date: 2012-10-09 20:05
Actually, I've just checked that your patch works under Linux.
msg172514 - (view) Author: Chris Jerdonek (chris.jerdonek) * (Python committer) 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) * (Python committer) Date: 2012-10-09 20:07
Okay, even better. :)
msg172518 - (view) Author: Roundup Robot (python-dev) (Python triager) 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) * (Python committer) 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) * (Python committer) Date: 2012-10-09 23:43
Never mind on the above question. Those are different argv's.
History
Date User Action Args
2022-04-11 14:57:37 admin set github: 60374
2012-10-09 23:43:08 chris.jerdonek set messages: +
2012-10-09 22:33:37 chris.jerdonek set messages: +
2012-10-09 20:23:42 chris.jerdonek set status: open -> closedresolution: fixedstage: patch review -> resolved
2012-10-09 20:21:20 python-dev set nosy: + python-devmessages: +
2012-10-09 20:07:19 chris.jerdonek set messages: +
2012-10-09 20:06:25 chris.jerdonek set messages: +
2012-10-09 20:05:35 pitrou set messages: +
2012-10-09 20:03:11 pitrou set messages: +
2012-10-09 20:01:51 chris.jerdonek set stage: patch review
2012-10-09 20:01:31 chris.jerdonek set files: + issue-16170-1.patchkeywords: + patchmessages: +
2012-10-09 10:15:44 pitrou set nosy: + pitroumessages: +
2012-10-09 01:48:49 chris.jerdonek set messages: +
2012-10-09 01:41:15 chris.jerdonek create