def _launch(self, *args: str): from hstest.stage_test import StageTest test_num = StageTest.curr_test_run.test_num InputHandler.set_dynamic_input_func(lambda: self._request_input()) self.__executor = DaemonThreadPoolExecutor( name=f"MainModuleExecutor test #{test_num}") self.__task = self.__executor.submit( lambda: self._invoke_method(*args))
def _run_file(self, test_run: TestRun) -> Optional[CheckResult]: test_case = test_run.test_case time_limit = test_case.time_limit executor = DaemonThreadPoolExecutor( name=f"AsyncMainFileRunner test #{test_run.test_num}") try: future: Future = executor.submit( lambda: self._run_dynamic_test(test_run)) if time_limit <= 0 or debug_mode: return future.result() else: return future.result(timeout=time_limit / 1000) except TimeoutError: test_run.set_error_in_test(TimeLimitException(time_limit)) except BaseException as ex: test_run.set_error_in_test(ex) finally: executor.shutdown(wait=False) return None