Python os.get_inheritable() Examples
The following are 30
code examples of os.get_inheritable().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
os
, or try the search function
.
Example #1
Source File: ipc.py From hupper with MIT License | 6 votes |
def set_inheritable(fd, inheritable): # On py34+ we can use os.set_inheritable but < py34 we must polyfill # with fcntl and SetHandleInformation if hasattr(os, 'get_inheritable'): if os.get_inheritable(fd) != inheritable: os.set_inheritable(fd, inheritable) elif WIN: h = get_handle(fd) flags = winapi.HANDLE_FLAG_INHERIT if inheritable else 0 winapi.SetHandleInformation(h, winapi.HANDLE_FLAG_INHERIT, flags) else: flags = fcntl.fcntl(fd, fcntl.F_GETFD) if inheritable: new_flags = flags & ~fcntl.FD_CLOEXEC else: new_flags = flags | fcntl.FD_CLOEXEC if new_flags != flags: fcntl.fcntl(fd, fcntl.F_SETFD, new_flags)
Example #2
Source File: test_posix.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_pipe2(self): self.assertRaises(TypeError, os.pipe2, 'DEADBEEF') self.assertRaises(TypeError, os.pipe2, 0, 0) # try calling with flags = 0, like os.pipe() r, w = os.pipe2(0) os.close(r) os.close(w) # test flags r, w = os.pipe2(os.O_CLOEXEC|os.O_NONBLOCK) self.addCleanup(os.close, r) self.addCleanup(os.close, w) self.assertFalse(os.get_inheritable(r)) self.assertFalse(os.get_inheritable(w)) self.assertTrue(fcntl.fcntl(r, fcntl.F_GETFL) & os.O_NONBLOCK) self.assertTrue(fcntl.fcntl(w, fcntl.F_GETFL) & os.O_NONBLOCK) # try reading from an empty pipe: this should fail, not block self.assertRaises(OSError, os.read, r, 1) # try a write big enough to fill-up the pipe: this should either # fail or perform a partial write, not block try: os.write(w, b'x' * support.PIPE_MAX_SIZE) except OSError: pass
Example #3
Source File: test_os.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def test_dup2(self): fd = os.open(__file__, os.O_RDONLY) self.addCleanup(os.close, fd) # inheritable by default fd2 = os.open(__file__, os.O_RDONLY) try: os.dup2(fd, fd2) self.assertEqual(os.get_inheritable(fd2), True) finally: os.close(fd2) # force non-inheritable fd3 = os.open(__file__, os.O_RDONLY) try: os.dup2(fd, fd3, inheritable=False) self.assertEqual(os.get_inheritable(fd3), False) finally: os.close(fd3)
Example #4
Source File: test_os.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_dup2(self): fd = os.open(__file__, os.O_RDONLY) self.addCleanup(os.close, fd) # inheritable by default fd2 = os.open(__file__, os.O_RDONLY) try: os.dup2(fd, fd2) self.assertEqual(os.get_inheritable(fd2), True) finally: os.close(fd2) # force non-inheritable fd3 = os.open(__file__, os.O_RDONLY) try: os.dup2(fd, fd3, inheritable=False) self.assertEqual(os.get_inheritable(fd3), False) finally: os.close(fd3)
Example #5
Source File: test_posix.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_pipe2(self): self.assertRaises(TypeError, os.pipe2, 'DEADBEEF') self.assertRaises(TypeError, os.pipe2, 0, 0) # try calling with flags = 0, like os.pipe() r, w = os.pipe2(0) os.close(r) os.close(w) # test flags r, w = os.pipe2(os.O_CLOEXEC|os.O_NONBLOCK) self.addCleanup(os.close, r) self.addCleanup(os.close, w) self.assertFalse(os.get_inheritable(r)) self.assertFalse(os.get_inheritable(w)) self.assertFalse(os.get_blocking(r)) self.assertFalse(os.get_blocking(w)) # try reading from an empty pipe: this should fail, not block self.assertRaises(OSError, os.read, r, 1) # try a write big enough to fill-up the pipe: this should either # fail or perform a partial write, not block try: os.write(w, b'x' * support.PIPE_MAX_SIZE) except OSError: pass
Example #6
Source File: test_subprocess.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_pass_fds_inheritable(self): script = support.findfile("fd_status.py", subdir="subprocessdata") inheritable, non_inheritable = os.pipe() self.addCleanup(os.close, inheritable) self.addCleanup(os.close, non_inheritable) os.set_inheritable(inheritable, True) os.set_inheritable(non_inheritable, False) pass_fds = (inheritable, non_inheritable) args = [sys.executable, script] args += list(map(str, pass_fds)) p = subprocess.Popen(args, stdout=subprocess.PIPE, close_fds=True, pass_fds=pass_fds) output, ignored = p.communicate() fds = set(map(int, output.split(b','))) # the inheritable file descriptor must be inherited, so its inheritable # flag must be set in the child process after fork() and before exec() self.assertEqual(fds, set(pass_fds), "output=%a" % output) # inheritable flag must not be changed in the parent process self.assertEqual(os.get_inheritable(inheritable), True) self.assertEqual(os.get_inheritable(non_inheritable), False)
Example #7
Source File: test_subprocess.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def test_pass_fds_inheritable(self): script = support.findfile("fd_status.py", subdir="subprocessdata") inheritable, non_inheritable = os.pipe() self.addCleanup(os.close, inheritable) self.addCleanup(os.close, non_inheritable) os.set_inheritable(inheritable, True) os.set_inheritable(non_inheritable, False) pass_fds = (inheritable, non_inheritable) args = [sys.executable, script] args += list(map(str, pass_fds)) p = subprocess.Popen(args, stdout=subprocess.PIPE, close_fds=True, pass_fds=pass_fds) output, ignored = p.communicate() fds = set(map(int, output.split(b','))) # the inheritable file descriptor must be inherited, so its inheritable # flag must be set in the child process after fork() and before exec() self.assertEqual(fds, set(pass_fds), "output=%a" % output) # inheritable flag must not be changed in the parent process self.assertEqual(os.get_inheritable(inheritable), True) self.assertEqual(os.get_inheritable(non_inheritable), False)
Example #8
Source File: test_os.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_dup2(self): fd = os.open(__file__, os.O_RDONLY) self.addCleanup(os.close, fd) # inheritable by default fd2 = os.open(__file__, os.O_RDONLY) try: os.dup2(fd, fd2) self.assertEqual(os.get_inheritable(fd2), True) finally: os.close(fd2) # force non-inheritable fd3 = os.open(__file__, os.O_RDONLY) try: os.dup2(fd, fd3, inheritable=False) self.assertEqual(os.get_inheritable(fd3), False) finally: os.close(fd3)
Example #9
Source File: test_subprocess.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_pass_fds_inheritable(self): script = support.findfile("fd_status.py", subdir="subprocessdata") inheritable, non_inheritable = os.pipe() self.addCleanup(os.close, inheritable) self.addCleanup(os.close, non_inheritable) os.set_inheritable(inheritable, True) os.set_inheritable(non_inheritable, False) pass_fds = (inheritable, non_inheritable) args = [sys.executable, script] args += list(map(str, pass_fds)) p = subprocess.Popen(args, stdout=subprocess.PIPE, close_fds=True, pass_fds=pass_fds) output, ignored = p.communicate() fds = set(map(int, output.split(b','))) # the inheritable file descriptor must be inherited, so its inheritable # flag must be set in the child process after fork() and before exec() self.assertEqual(fds, set(pass_fds), "output=%a" % output) # inheritable flag must not be changed in the parent process self.assertEqual(os.get_inheritable(inheritable), True) self.assertEqual(os.get_inheritable(non_inheritable), False)
Example #10
Source File: test_posix.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def test_pipe2(self): self.assertRaises(TypeError, os.pipe2, 'DEADBEEF') self.assertRaises(TypeError, os.pipe2, 0, 0) # try calling with flags = 0, like os.pipe() r, w = os.pipe2(0) os.close(r) os.close(w) # test flags r, w = os.pipe2(os.O_CLOEXEC|os.O_NONBLOCK) self.addCleanup(os.close, r) self.addCleanup(os.close, w) self.assertFalse(os.get_inheritable(r)) self.assertFalse(os.get_inheritable(w)) self.assertFalse(os.get_blocking(r)) self.assertFalse(os.get_blocking(w)) # try reading from an empty pipe: this should fail, not block self.assertRaises(OSError, os.read, r, 1) # try a write big enough to fill-up the pipe: this should either # fail or perform a partial write, not block try: os.write(w, b'x' * support.PIPE_MAX_SIZE) except OSError: pass
Example #11
Source File: test_kqueue.py From android_universal with MIT License | 5 votes |
def test_fd_non_inheritable(self): kqueue = select.kqueue() self.addCleanup(kqueue.close) self.assertEqual(os.get_inheritable(kqueue.fileno()), False)
Example #12
Source File: _socket3.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def get_inheritable(self): return os.get_inheritable(self.fileno())
Example #13
Source File: test_tempfile.py From android_universal with MIT License | 5 votes |
def test_noinherit(self): # _mkstemp_inner file handles are not inherited by child processes if support.verbose: v="v" else: v="q" file = self.do_create() self.assertEqual(os.get_inheritable(file.fd), False) fd = "%d" % file.fd try: me = __file__ except NameError: me = sys.argv[0] # We have to exec something, so that FD_CLOEXEC will take # effect. The core of this test is therefore in # tf_inherit_check.py, which see. tester = os.path.join(os.path.dirname(os.path.abspath(me)), "tf_inherit_check.py") # On Windows a spawn* /path/ with embedded spaces shouldn't be quoted, # but an arg with embedded spaces should be decorated with double # quotes on each end if sys.platform == 'win32': decorated = '"%s"' % sys.executable tester = '"%s"' % tester else: decorated = sys.executable retval = os.spawnl(os.P_WAIT, sys.executable, decorated, tester, v, fd) self.assertFalse(retval < 0, "child process caught fatal signal %d" % -retval) self.assertFalse(retval > 0, "child process reports failure %d"%retval)
Example #14
Source File: test_os.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_openpty(self): master_fd, slave_fd = os.openpty() self.addCleanup(os.close, master_fd) self.addCleanup(os.close, slave_fd) self.assertEqual(os.get_inheritable(master_fd), False) self.assertEqual(os.get_inheritable(slave_fd), False)
Example #15
Source File: test_builtin.py From android_universal with MIT License | 5 votes |
def test_open_non_inheritable(self): fileobj = open(__file__) with fileobj: self.assertFalse(os.get_inheritable(fileobj.fileno()))
Example #16
Source File: socket.py From android_universal with MIT License | 5 votes |
def get_inheritable(self): return os.get_inheritable(self.fileno())
Example #17
Source File: socket.py From android_universal with MIT License | 5 votes |
def get_inheritable(self): return os.get_handle_inheritable(self.fileno())
Example #18
Source File: _socket3.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def get_inheritable(self): return os.get_inheritable(self.fileno())
Example #19
Source File: _socket3.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def get_inheritable(self): return os.get_handle_inheritable(self.fileno())
Example #20
Source File: test_os.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_dup(self): fd1 = os.open(__file__, os.O_RDONLY) self.addCleanup(os.close, fd1) fd2 = os.dup(fd1) self.addCleanup(os.close, fd2) self.assertEqual(os.get_inheritable(fd2), False)
Example #21
Source File: test_os.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_get_set_inheritable(self): fd = os.open(__file__, os.O_RDONLY) self.addCleanup(os.close, fd) self.assertEqual(os.get_inheritable(fd), False) os.set_inheritable(fd, True) self.assertEqual(os.get_inheritable(fd), True)
Example #22
Source File: test_os.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_inheritable(self): self.check(os.get_inheritable) self.check(os.set_inheritable, True)
Example #23
Source File: test_tempfile.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_noinherit(self): # _mkstemp_inner file handles are not inherited by child processes if support.verbose: v="v" else: v="q" file = self.do_create() self.assertEqual(os.get_inheritable(file.fd), False) fd = "%d" % file.fd try: me = __file__ except NameError: me = sys.argv[0] # We have to exec something, so that FD_CLOEXEC will take # effect. The core of this test is therefore in # tf_inherit_check.py, which see. tester = os.path.join(os.path.dirname(os.path.abspath(me)), "tf_inherit_check.py") # On Windows a spawn* /path/ with embedded spaces shouldn't be quoted, # but an arg with embedded spaces should be decorated with double # quotes on each end if sys.platform == 'win32': decorated = '"%s"' % sys.executable tester = '"%s"' % tester else: decorated = sys.executable retval = os.spawnl(os.P_WAIT, sys.executable, decorated, tester, v, fd) self.assertFalse(retval < 0, "child process caught fatal signal %d" % -retval) self.assertFalse(retval > 0, "child process reports failure %d"%retval)
Example #24
Source File: test_kqueue.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_fd_non_inheritable(self): kqueue = select.kqueue() self.addCleanup(kqueue.close) self.assertEqual(os.get_inheritable(kqueue.fileno()), False)
Example #25
Source File: test_builtin.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_open_non_inheritable(self): fileobj = open(__file__) with fileobj: self.assertFalse(os.get_inheritable(fileobj.fileno()))
Example #26
Source File: socket.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def get_inheritable(self): return os.get_inheritable(self.fileno())
Example #27
Source File: socket.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def get_inheritable(self): return os.get_handle_inheritable(self.fileno())
Example #28
Source File: _socket3.py From PhonePi_SampleServer with MIT License | 5 votes |
def get_inheritable(self): return os.get_inheritable(self.fileno())
Example #29
Source File: _socket3.py From PhonePi_SampleServer with MIT License | 5 votes |
def get_inheritable(self): return os.get_handle_inheritable(self.fileno())
Example #30
Source File: socket.py From PySocket with Apache License 2.0 | 5 votes |
def get_inheritable(self): return os.get_inheritable(self.fileno())