Lines Matching refs:self

44     def interaction(self, *args, **kwargs):
46 self.io_manager.restore_pipes()
49 pdb._Pdb.interaction(self, *args, **kwargs)
52 self.io_manager.replace_pipes()
57 def __init__(self, test, suite):
58 self.test = test
59 self.suite = suite
60 self.log = log.test_log
61 self._init_pipes()
63 def _init_pipes(self):
64 self.stdout_rp, self.stdout_wp = os.pipe()
65 self.stderr_rp, self.stderr_wp = os.pipe()
67 def close_parent_pipes(self):
68 os.close(self.stdout_wp)
69 os.close(self.stderr_wp)
71 def setup(self):
72 self.replace_pipes()
73 self.fixup_pdb()
75 def fixup_pdb(self):
76 ForkedPdb.io_manager = self
79 def replace_pipes(self):
80 self.old_stderr = os.dup(sys.stderr.fileno())
81 self.old_stdout = os.dup(sys.stdout.fileno())
83 os.dup2(self.stderr_wp, sys.stderr.fileno())
84 sys.stderr = os.fdopen(self.stderr_wp, 'w', 0)
85 os.dup2(self.stdout_wp, sys.stdout.fileno())
86 sys.stdout = os.fdopen(self.stdout_wp, 'w', 0)
88 def restore_pipes(self):
89 self.stderr_wp = os.dup(sys.stderr.fileno())
90 self.stdout_wp = os.dup(sys.stdout.fileno())
92 os.dup2(self.old_stderr, sys.stderr.fileno())
93 sys.stderr = os.fdopen(self.old_stderr, 'w', 0)
94 os.dup2(self.old_stdout, sys.stdout.fileno())
95 sys.stdout = os.fdopen(self.old_stdout, 'w', 0)
97 def start_loggers(self):
98 self.log_ouput()
100 def log_ouput(self):
107 # Don't keep a backpointer to self in the thread.
108 log = self.log
109 test = self.test
110 suite = self.suite
112 self.stdout_thread = threading.Thread(
114 args=(self.stdout_rp,
117 self.stderr_thread = threading.Thread(
119 args=(self.stderr_rp,
125 self.stdout_thread.daemon = True
126 self.stderr_thread.daemon = True
127 self.stdout_thread.start()
128 self.stderr_thread.start()
130 def join_loggers(self):
131 self.stdout_thread.join()
132 self.stderr_thread.join()
136 def __init__(self, trace):
137 super(SubprocessException, self).__init__(trace)
141 def __init__(self, exitcode, exception_tuple):
142 self.exitcode = exitcode
144 self.trace = exception_tuple[0]
146 self.trace = None
148 def __init__(self, *args, **kwargs):
149 multiprocessing.Process.__init__(self, *args, **kwargs)
150 self._pconn, self._cconn = multiprocessing.Pipe()
151 self._exception = None
153 def run(self):
155 super(ExceptionProcess, self).run()
156 self._cconn.send(None)
159 self._cconn.send((tb, ))
163 def status(self):
164 if self._pconn.poll():
165 self._exception = self._pconn.recv()
167 return self.Status(self.exitcode, self._exception)
171 def __init__(self, test_parameters):
173 self.params = test_parameters
174 self.io_manager = IoManager(self.params.test, self.params.suite)
176 self.p = ExceptionProcess(target=self.entrypoint)
178 self.p.daemon = True
179 self.io_manager.start_loggers()
180 self.p.start()
181 self.io_manager.close_parent_pipes()
182 self.p.join()
183 self.io_manager.join_loggers()
185 status = self.p.status
189 def entrypoint(self):
190 self.io_manager.setup()
191 self.params.test.test(self.params)