Exemplo n.º 1
0
 def test_setting_terminal_size(self):
     master_fd, slave_fd = terminal.openpty()
     terminal.set_terminal_size(slave_fd, 123, 456)
     proc = subprocess.Popen(["stty", "size"], stdin=slave_fd,
                             stdout=subprocess.PIPE)
     stdout = proc.communicate()[0]
     self.assertEquals(stdout, "456 123\n")
Exemplo n.º 2
0
    def test_setsid_helper(self):
        got = []
        def callback(pid, status):
            got.append((pid, status))

        spec1 = {"args": ["sh", "-c", "exit 42"],
                "fds": {0: sys.stdin, 1: sys.stdout, 2: sys.stderr}}
        spec2 = {"args": ["sh", "-c", "exit 24"],
                 "fds": {0: sys.stdin, 1: sys.stdout, 2: sys.stderr}}
        master_fd, slave_fd = terminal.openpty()
        helper_pid, pids = setsid_helper.run([spec1, spec2], slave_fd, callback)
        self.assertEquals(len(pids), 2)
        gobject.main_context_default().iteration(True)
        gobject.main_context_default().iteration(True)
        gobject.main_context_default().iteration(True)
        statuses = dict(got)
        self.assertEquals(set(statuses.keys()), set(pids))
        assert os.WIFEXITED(statuses[pids[0]])
        assert os.WIFEXITED(statuses[pids[1]])
        self.assertEquals(os.WEXITSTATUS(statuses[pids[0]]), 42)
        self.assertEquals(os.WEXITSTATUS(statuses[pids[1]]), 24)

        # Helper process should exit OK.
        pid2, status = os.waitpid(helper_pid, 0)
        assert os.WIFEXITED(status)
        self.assertEquals(os.WEXITSTATUS(status), 0)