mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
bpo-31904: Disable os.popen and popen test cases on VxWorks (GH-21687)
This commit is contained in:
parent
9cc8fa6ac8
commit
e1e3c2dac3
7 changed files with 58 additions and 46 deletions
|
@ -32,7 +32,7 @@ Notes on the availability of these functions:
|
||||||
objects, and result in an object of the same type, if a path or file name is
|
objects, and result in an object of the same type, if a path or file name is
|
||||||
returned.
|
returned.
|
||||||
|
|
||||||
* On VxWorks, os.fork, os.execv and os.spawn*p* are not supported.
|
* On VxWorks, os.popen, os.fork, os.execv and os.spawn*p* are not supported.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ _names = sys.builtin_module_names
|
||||||
__all__ = ["altsep", "curdir", "pardir", "sep", "pathsep", "linesep",
|
__all__ = ["altsep", "curdir", "pardir", "sep", "pathsep", "linesep",
|
||||||
"defpath", "name", "path", "devnull", "SEEK_SET", "SEEK_CUR",
|
"defpath", "name", "path", "devnull", "SEEK_SET", "SEEK_CUR",
|
||||||
"SEEK_END", "fsencode", "fsdecode", "get_exec_path", "fdopen",
|
"SEEK_END", "fsencode", "fsdecode", "get_exec_path", "fdopen",
|
||||||
"popen", "extsep"]
|
"extsep"]
|
||||||
|
|
||||||
def _exists(name):
|
def _exists(name):
|
||||||
return name in globals()
|
return name in globals()
|
||||||
|
@ -969,7 +969,9 @@ otherwise return -SIG, where SIG is the signal that killed it. """
|
||||||
|
|
||||||
__all__.extend(["spawnlp", "spawnlpe"])
|
__all__.extend(["spawnlp", "spawnlpe"])
|
||||||
|
|
||||||
|
# VxWorks has no user space shell provided. As a result, running
|
||||||
|
# command in a shell can't be supported.
|
||||||
|
if sys.platform != 'vxworks':
|
||||||
# Supply os.popen()
|
# Supply os.popen()
|
||||||
def popen(cmd, mode="r", buffering=-1):
|
def popen(cmd, mode="r", buffering=-1):
|
||||||
if not isinstance(cmd, str):
|
if not isinstance(cmd, str):
|
||||||
|
@ -1015,6 +1017,8 @@ class _wrap_close:
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
return iter(self._stream)
|
return iter(self._stream)
|
||||||
|
|
||||||
|
__all__.append("popen")
|
||||||
|
|
||||||
# Supply os.fdopen()
|
# Supply os.fdopen()
|
||||||
def fdopen(fd, *args, **kwargs):
|
def fdopen(fd, *args, **kwargs):
|
||||||
if not isinstance(fd, int):
|
if not isinstance(fd, int):
|
||||||
|
|
|
@ -991,6 +991,7 @@ class EnvironTests(mapping_tests.BasicTestMappingProtocol):
|
||||||
# Bug 1110478
|
# Bug 1110478
|
||||||
@unittest.skipUnless(unix_shell and os.path.exists(unix_shell),
|
@unittest.skipUnless(unix_shell and os.path.exists(unix_shell),
|
||||||
'requires a shell')
|
'requires a shell')
|
||||||
|
@unittest.skipUnless(hasattr(os, 'popen'), "needs os.popen()")
|
||||||
def test_update2(self):
|
def test_update2(self):
|
||||||
os.environ.clear()
|
os.environ.clear()
|
||||||
os.environ.update(HELLO="World")
|
os.environ.update(HELLO="World")
|
||||||
|
@ -1000,6 +1001,7 @@ class EnvironTests(mapping_tests.BasicTestMappingProtocol):
|
||||||
|
|
||||||
@unittest.skipUnless(unix_shell and os.path.exists(unix_shell),
|
@unittest.skipUnless(unix_shell and os.path.exists(unix_shell),
|
||||||
'requires a shell')
|
'requires a shell')
|
||||||
|
@unittest.skipUnless(hasattr(os, 'popen'), "needs os.popen()")
|
||||||
def test_os_popen_iter(self):
|
def test_os_popen_iter(self):
|
||||||
with os.popen("%s -c 'echo \"line1\nline2\nline3\"'"
|
with os.popen("%s -c 'echo \"line1\nline2\nline3\"'"
|
||||||
% unix_shell) as popen:
|
% unix_shell) as popen:
|
||||||
|
|
|
@ -7,6 +7,9 @@ import unittest
|
||||||
from test import support
|
from test import support
|
||||||
import os, sys
|
import os, sys
|
||||||
|
|
||||||
|
if not hasattr(os, 'popen'):
|
||||||
|
raise unittest.SkipTest("need os.popen()")
|
||||||
|
|
||||||
# Test that command-lines get down as we expect.
|
# Test that command-lines get down as we expect.
|
||||||
# To do this we execute:
|
# To do this we execute:
|
||||||
# python -c "import sys;print(sys.argv)" {rest_of_commandline}
|
# python -c "import sys;print(sys.argv)" {rest_of_commandline}
|
||||||
|
|
|
@ -1045,6 +1045,7 @@ class PosixTester(unittest.TestCase):
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipUnless(hasattr(os, 'getegid'), "test needs os.getegid()")
|
@unittest.skipUnless(hasattr(os, 'getegid'), "test needs os.getegid()")
|
||||||
|
@unittest.skipUnless(hasattr(os, 'popen'), "test needs os.popen()")
|
||||||
def test_getgroups(self):
|
def test_getgroups(self):
|
||||||
with os.popen('id -G 2>/dev/null') as idg:
|
with os.popen('id -G 2>/dev/null') as idg:
|
||||||
groups = idg.read().strip()
|
groups = idg.read().strip()
|
||||||
|
|
|
@ -46,6 +46,7 @@ class SelectTestCase(unittest.TestCase):
|
||||||
self.assertIsNot(r, x)
|
self.assertIsNot(r, x)
|
||||||
self.assertIsNot(w, x)
|
self.assertIsNot(w, x)
|
||||||
|
|
||||||
|
@unittest.skipUnless(hasattr(os, 'popen'), "need os.popen()")
|
||||||
def test_select(self):
|
def test_select(self):
|
||||||
code = textwrap.dedent('''
|
code = textwrap.dedent('''
|
||||||
import time
|
import time
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Disable os.popen and impacted tests on VxWorks
|
Loading…
Add table
Add a link
Reference in a new issue