os: Fix openpty test

Make openpty return non-inheritable file descriptors
This commit is contained in:
Dean Li
2021-06-07 19:53:48 +08:00
parent 80496dd6db
commit ff87ad052d
2 changed files with 3 additions and 2 deletions

View File

@@ -3616,8 +3616,6 @@ class FDInheritanceTests(unittest.TestCase):
self.assertEqual(os.dup2(fd, fd3, inheritable=False), fd3)
self.assertFalse(os.get_inheritable(fd3))
# TODO: RUSTPYTHON
@unittest.expectedFailure
@unittest.skipUnless(hasattr(os, 'openpty'), "need os.openpty()")
def test_openpty(self):
master_fd, slave_fd = os.openpty()

View File

@@ -2371,6 +2371,9 @@ mod posix {
#[pyfunction]
fn openpty(vm: &VirtualMachine) -> PyResult {
let r = nix::pty::openpty(None, None).map_err(|err| err.into_pyexception(vm))?;
for fd in &[r.master, r.slave] {
raw_set_inheritable(*fd, false).map_err(|e| e.into_pyexception(vm))?;
}
Ok(vm
.ctx
.new_tuple(vec![vm.ctx.new_int(r.master), vm.ctx.new_int(r.slave)]))