Lines Matching refs:interp
35 def _run_output(interp, request, shared=None):
38 interpreters.run_string(interp, script, shared)
42 def _wait_for_interp_to_run(interp, timeout=None):
50 while not interpreters.is_running(interp):
52 raise RuntimeError('interp is not running')
57 def _running(interp):
60 interpreters.run_string(interp, dedent(f"""
68 _wait_for_interp_to_run(interp)
125 name = 'interp'
151 class ChannelAction(namedtuple('ChannelAction', 'action end interp')):
153 def __new__(cls, action, end=None, interp=None):
156 if not interp:
157 interp = 'main'
158 self = super().__new__(cls, action, end, interp)
170 if self.interp not in ('main', 'same', 'other', 'extra'):
171 raise ValueError(self.interp)
181 def resolve_interp(self, interp, other, extra):
182 if self.interp == 'same':
183 return interp
184 elif self.interp == 'other':
188 elif self.interp == 'extra':
192 elif self.interp == 'main':
193 if interp.name == 'main':
194 return interp
452 interp = interpreters.create()
453 out = _run_output(interp, dedent("""
475 interp = interpreters.create()
476 out = _run_output(interp, dedent("""
494 interp = interpreters.create()
495 self.assertFalse(interpreters.is_running(interp))
497 with _running(interp):
498 self.assertTrue(interpreters.is_running(interp))
499 self.assertFalse(interpreters.is_running(interp))
502 interp = interpreters.create()
503 out = _run_output(interp, dedent(f"""
505 if _interpreters.is_running({interp}):
513 interp = interpreters.create()
514 interpreters.destroy(interp)
516 interpreters.is_running(interp)
766 interp = interpreters.create()
767 with _running(interp):
768 self.assertTrue(interpreters.is_running(interp),
769 msg=f"Interp {interp} should be running before destruction.")
772 msg=f"Should not be able to destroy interp {interp} while it's still running."):
773 interpreters.destroy(interp)
774 self.assertTrue(interpreters.is_running(interp))
1064 filename = script_helper.make_script(dirname, 'interp', script)
1496 interp = interpreters.create()
1498 out = _run_output(interp, dedent("""
1516 interp = interpreters.create()
1518 out = _run_output(interp, dedent("""
1688 interp = interpreters.create()
1689 interpreters.run_string(interp, dedent(f"""
1734 - main / interp / other
1742 - creator (interp) / other
1844 interp = interpreters.create()
1845 interpreters.run_string(interp, dedent(f"""
1859 interp = interpreters.create()
1860 interpreters.run_string(interp, dedent(f"""
1895 'end interp other extra creator')):
1901 def __new__(cls, end, interp, other, extra, creator):
1906 interp = Interpreter.from_raw(interp)
1910 interp.name: interp,
1916 self = super().__new__(cls, end, interp, other, extra, creator)
1935 def get_interpreter(self, interp):
1936 interp = self._get_interpreter(interp)
1937 self._prep_interpreter(interp)
1938 return interp
1947 def prep_interpreter(self, interp):
1948 self._prep_interpreter(interp)
1975 def _get_interpreter(self, interp):
1976 if interp in ('same', 'interp'):
1977 return self.interp
1978 elif interp == 'other':
1980 elif interp == 'extra':
1983 name = interp
1985 interp = self._known[name]
1987 interp = self._known[name] = Interpreter(name)
1988 return interp
1990 def _prep_interpreter(self, interp):
1991 if interp.id in self._prepped:
1993 self._prepped.add(interp.id)
1994 if interp.name == 'main':
1996 run_interp(interp.id, f"""
2011 - main / interp / other
2019 - creator (interp) / other
2149 for interp in interps:
2152 ChannelAction(op, end, interp),
2164 for interp in ('same', 'extra', 'other'):
2166 ChannelAction('use', 'recv', interp),
2169 ChannelAction('use', 'send', interp),
2178 interp = action.resolve_interp(fix.interp, fix.other, fix.extra)
2179 fix.prep_interpreter(interp)
2180 if interp.name == 'main':
2191 run_interp(interp.id, f"""
2211 ('main', 'interp', 'extra'),
2212 ('interp', 'main', 'extra'),
2216 for interp, other, extra in interpreters:
2219 yield ChannelCloseFixture(end, interp, other, extra, creator)
2230 def _assert_closed_in_interp(self, fix, interp=None):
2231 if interp is None or interp.name == 'main':
2241 run_interp(interp.id, f"""
2245 run_interp(interp.id, f"""
2249 run_interp(interp.id, f"""
2253 run_interp(interp.id, f"""
2265 for interp in ('same', 'other'):
2266 interp = fix.get_interpreter(interp)
2267 if interp.name == 'main':
2269 self._assert_closed_in_interp(fix, interp)
2271 interp = fix.get_interpreter('fresh')
2272 self._assert_closed_in_interp(fix, interp)
2304 fix.prep_interpreter(fix.interp)
2316 fix.prep_interpreter(fix.interp)