def main(bugs: list, main_plugin: MainPlugin or MetaPlugin, **kwargs: dict) -> None: """ Run all given bugs :param bugs: bugs to run :param main_plugin: the main plugin enabled for the run :param kwargs: additional information for bug triggering """ change_coredump_filter() if isinstance(main_plugin, MetaPlugin): plugins = before_run(main_plugin=main_plugin, bugs=bugs, **kwargs) main_plugins = plugins["main_plugins"] kwargs["analysis_plugins"] = plugins["analysis_plugins"] else: main_plugins = [main_plugin] return_values = [] exceptions = [] for plugin in main_plugins: for bug in bugs: try: logger.start_new_log_section(bug, "triggering") return_values.append( trigger_bug(bug=bug, main_plugin=plugin, **kwargs)) except (PluginIncompatibleException, ProgramNotInstalledException) as exc: logging.warning(exc) exceptions.append(exc) err = None if isinstance(main_plugin, MetaPlugin): err = after_run(main_plugin=main_plugin, plugins=main_plugins, bugs=bugs, return_values=return_values, exceptions=exceptions, **kwargs) elif len(exceptions): err = 1 return err or any(return_values)
def main(bugs: list, main_plugin: MainPlugin or MetaPlugin, **kwargs: dict) -> None: """ Run all given bugs :param bugs: bugs to run :param main_plugin: the main plugin enabled for the run :param kwargs: additional information for bug triggering """ change_coredump_filter() if isinstance(main_plugin, MetaPlugin): plugins = before_run(main_plugin=main_plugin, bugs=bugs, **kwargs) main_plugins = plugins["main_plugins"] kwargs["analysis_plugins"] = plugins["analysis_plugins"] else: main_plugins = [main_plugin] return_values = [] exceptions = [] for plugin in main_plugins: for bug in bugs: try: logger.start_new_log_section(bug, "triggering") return_values.append(trigger_bug(bug=bug, main_plugin=plugin, **kwargs)) except (PluginIncompatibleException, ProgramNotInstalledException) as exc: logging.warning(exc) exceptions.append(exc) err = None if isinstance(main_plugin, MetaPlugin): err = after_run( main_plugin=main_plugin, plugins=main_plugins, bugs=bugs, return_values=return_values, exceptions=exceptions, **kwargs ) elif len(exceptions): err = 1 return err or any(return_values)
def pre_run(self): """ Sets up coredumps options before the run """ setup_coredumps() change_coredump_filter()
def pre_run(self): """ Sets up coredumps options before the run """ setup_coredumps() change_coredump_filter()