def handle_check(args): """ Runs the original build and logs the buildactions. Based on the log runs the analysis. """ try: if not host_check.check_zlib(): sys.exit(1) args.workspace = os.path.abspath(args.workspace) if not os.path.isdir(args.workspace): os.mkdir(args.workspace) context = generic_package_context.get_context() context.codechecker_workspace = args.workspace context.db_username = args.dbusername log_file = build_manager.check_log_file(args, context) if not log_file: LOG.error("Failed to generate compilation command file: " + log_file) sys.exit(1) actions = log_parser.parse_log(log_file, args.add_compiler_defaults) check_env = analyzer_env.get_check_env(context.path_env_extra, context.ld_lib_path_extra) sql_server = SQLServer.from_cmdline_args(args, context.codechecker_workspace, context.migration_root, check_env) conn_mgr = client.ConnectionManager(sql_server, 'localhost', util.get_free_port()) sql_server.start(context.db_version_info, wait_for_start=True, init=True) conn_mgr.start_report_server() LOG.debug("Checker server started.") analyzer.run_check(args, actions, context) LOG.info("Analysis has finished.") log_startserver_hint(args) except Exception as ex: LOG.error(ex) import traceback print(traceback.format_exc()) finally: if not args.keep_tmp: if log_file: LOG.debug('Removing temporary log file: ' + log_file) os.remove(log_file)
def _do_quickcheck(args): """ Handles the "quickcheck" command. For arguments see main function in CodeChecker.py. It also requires an extra property in args object, namely workspace which is a directory path as a string. This function is called from handle_quickcheck. """ try: context = generic_package_context.get_context() context.codechecker_workspace = args.workspace args.name = "quickcheck" # Load severity map from config file. if os.path.exists(context.checkers_severity_map_file): with open(context.checkers_severity_map_file, 'r') as sev_file: severity_config = sev_file.read() context.severity_map = json.loads(severity_config) log_file = build_manager.check_log_file(args, context) actions = log_parser.parse_log(log_file, args.add_compiler_defaults) analyzer.run_quick_check(args, context, actions) except Exception as ex: LOG.error("Running quickcheck failed.") finally: if not args.keep_tmp: if log_file: LOG.debug('Removing temporary log file: ' + log_file) os.remove(log_file)
def _do_quickcheck(args): """ Handles the "quickcheck" command. For arguments see main function in CodeChecker.py. It also requires an extra property in args object, namely workspace which is a directory path as a string. This function is called from handle_quickcheck. """ try: context = generic_package_context.get_context() context.codechecker_workspace = args.workspace args.name = "quickcheck" log_file, set_in_cmdline = build_manager.check_log_file(args, context) actions = log_parser.parse_log(log_file, args.add_compiler_defaults) analyzer.run_quick_check(args, context, actions) except Exception as ex: LOG.error("Running quickcheck failed.") finally: if not args.keep_tmp: if log_file and not set_in_cmdline: LOG.debug('Removing temporary log file: ' + log_file) os.remove(log_file)
def _do_quickcheck(args): """ Handles the "quickcheck" command. For arguments see main function in CodeChecker.py. It also requires an extra property in args object, namely workspace which is a directory path as a string. This function is called from handle_quickcheck. """ context = generic_package_context.get_context() try: workspace = args.workspace except AttributeError: # If no workspace value was set for some reason # in args set the default value. workspace = util.get_default_workspace() context.codechecker_workspace = workspace args.name = "quickcheck" # Load severity map from config file. if os.path.exists(context.checkers_severity_map_file): with open(context.checkers_severity_map_file, 'r') as sev_conf_file: severity_config = sev_conf_file.read() context.severity_map = json.loads(severity_config) log_file = build_manager.check_log_file(args) if not log_file: log_file = build_manager.generate_log_file(args, context, args.quiet_build) if not log_file: LOG.error("Failed to generate compilation command file: " + log_file) sys.exit(1) try: actions = log_parser.parse_log(log_file) except Exception as ex: LOG.error(ex) sys.exit(1) if not actions: LOG.warning('There are no build actions in the log file.') sys.exit(1) analyzer.run_quick_check(args, context, actions)
def _do_quickcheck(args): """ Handles the "quickcheck" command. For arguments see main function in CodeChecker.py. It also requires an extra property in args object, namely workspace which is a directory path as a string. This function is called from handle_quickcheck. """ context = generic_package_context.get_context() try: workspace = args.workspace except AttributeError: # If no workspace value was set for some reason # in args set the default value. workspace = util.get_default_workspace() context.codechecker_workspace = workspace args.jobs = 1 args.name = "quickcheck" # Load severity map from config file. if os.path.exists(context.checkers_severity_map_file): with open(context.checkers_severity_map_file, 'r') as sev_conf_file: severity_config = sev_conf_file.read() context.severity_map = json.loads(severity_config) log_file = build_manager.check_log_file(args) if not log_file: log_file = build_manager.generate_log_file(args, context, args.quiet_build) if not log_file: LOG.error("Failed to generate compilation command file: " + log_file) sys.exit(1) try: actions = log_parser.parse_log(log_file) except Exception as ex: LOG.error(ex) sys.exit(1) if not actions: LOG.warning('There are no build actions in the log file.') sys.exit(1) analyzer.run_quick_check(args, context, actions)
def handle_check(args): """ Runs the original build and logs the buildactions. Based on the log runs the analysis. """ try: if not host_check.check_zlib(): LOG.error("zlib error") sys.exit(1) try: workspace = args.workspace except AttributeError: # If no workspace value was set for some reason # in args set the default value. workspace = util.get_default_workspace() workspace = os.path.realpath(workspace) if not os.path.isdir(workspace): os.mkdir(workspace) context = generic_package_context.get_context() context.codechecker_workspace = workspace context.db_username = args.dbusername log_file = build_manager.check_log_file(args) if not log_file: log_file = build_manager.generate_log_file(args, context, args.quiet_build) if not log_file: LOG.error("Failed to generate compilation command file: " + log_file) sys.exit(1) try: actions = log_parser.parse_log(log_file) except Exception as ex: LOG.error(ex) sys.exit(1) if not actions: LOG.warning('There are no build actions in the log file.') sys.exit(1) check_env = analyzer_env.get_check_env(context.path_env_extra, context.ld_lib_path_extra) sql_server = SQLServer.from_cmdline_args(args, context.codechecker_workspace, context.migration_root, check_env) conn_mgr = client.ConnectionManager(sql_server, 'localhost', util.get_free_port()) sql_server.start(context.db_version_info, wait_for_start=True, init=True) conn_mgr.start_report_server() LOG.debug("Checker server started.") analyzer.run_check(args, actions, context) LOG.info("Analysis has finished.") db_data = "" if args.postgresql: db_data += " --postgresql" \ + " --dbname " + args.dbname \ + " --dbport " + str(args.dbport) \ + " --dbusername " + args.dbusername LOG.info("To view results run:\nCodeChecker server -w " + workspace + db_data) except Exception as ex: LOG.error(ex) import traceback print(traceback.format_exc())
def handle_check(args): """ Runs the original build and logs the buildactions Based on the log runs the analysis """ try: if not host_check.check_zlib(): LOG.error("zlib error") sys.exit(1) try: workspace = args.workspace except AttributeError: # if no workspace value was set for some reason # in args set the default value workspace = util.get_default_workspace() workspace = os.path.realpath(workspace) if not os.path.isdir(workspace): os.mkdir(workspace) context = generic_package_context.get_context() context.codechecker_workspace = workspace context.db_username = args.dbusername log_file = build_manager.check_log_file(args) if not log_file: log_file = build_manager.generate_log_file(args, context) if not log_file: LOG.error("Failed to generate compilation command file: " + log_file) sys.ecit(1) try: actions = log_parser.parse_log(log_file) except Exception as ex: LOG.error(ex) sys.exit(1) if not actions: LOG.warning('There are no build actions in the log file.') sys.exit(1) check_env = analyzer_env.get_check_env(context.path_env_extra, context.ld_lib_path_extra) sql_server = SQLServer.from_cmdline_args(args, context.codechecker_workspace, context.migration_root, check_env) conn_mgr = client.ConnectionManager(sql_server, 'localhost', util.get_free_port()) sql_server.start(context.db_version_info, wait_for_start=True, init=True) conn_mgr.start_report_server(context.db_version_info) LOG.debug("Checker server started.") analyzer.run_check(args, actions, context) LOG.info("Analysis has finished.") db_data = "" if args.postgresql: db_data += " --postgresql" \ + " --dbname " + args.dbname \ + " --dbport " + str(args.dbport) \ + " --dbusername " + args.dbusername LOG.info("To view results run:\nCodeChecker server -w " + workspace + db_data) except Exception as ex: LOG.error(ex) import traceback print(traceback.format_exc())