Added edge case where there is two kinds of error in one file

This commit is contained in:
Mo Langning 2024-04-08 07:44:40 +00:00
parent 52e9ed1ac8
commit c0a835b360

View File

@ -158,10 +158,10 @@ for i in files:
if event_type=="W": if event_type=="W":
events["warn"].append([file,line_number]) events["warn"].append([file,line_number])
print_err(file,"[!] Checker %s got a warning for %s on line %s"%(i,file,line_number),line=line_number) #print_err(file,"[!] Checker %s got a warning for %s on line %s"%(i,file,line_number),line=line_number)
elif event_type=="E": elif event_type=="E":
events["error"].append([file,line_number]) events["error"].append([file,line_number])
print_err(file,"[!] Checker %s got a error for %s on line %s"%(i,file,line_number),line=line_number) #print_err(file,"[!] Checker %s got a error for %s on line %s"%(i,file,line_number),line=line_number)
else: else:
print_warn(i,"[!] Event decoding fail! Assuming checker %s is not wrapped calls compliant"%(i)) print_warn(i,"[!] Event decoding fail! Assuming checker %s is not wrapped calls compliant"%(i))
exec_status=2 exec_status=2
@ -217,17 +217,17 @@ for name,events,description in failed_checks:
if file not in cleaned_failed_checks.keys(): if file not in cleaned_failed_checks.keys():
cleaned_failed_checks[file]={} cleaned_failed_checks[file]={}
cleaned_failed_checks[file]["warn"]=[]
cleaned_failed_checks[file]["error"]=[]
cleaned_failed_checks[file]["check"]=name
cleaned_failed_checks[file]["description"]=description
cleaned_failed_checks[file][err_type].append(int(line_number)) if name not in cleaned_failed_checks[file].keys():
cleaned_failed_checks[file][name]={}
cleaned_failed_checks[file][name]["warn"]=[]
cleaned_failed_checks[file][name]["error"]=[]
cleaned_failed_checks[file][name]["description"]=description
for file, warn_and_errors in cleaned_failed_checks.items(): cleaned_failed_checks[file][name][err_type].append(int(line_number))
warn=warn_and_errors["warn"] for file, checker in cleaned_failed_checks.items():
error=warn_and_errors["error"] for name, warn_and_errors in checker.items():
for k,v in warn_and_errors.items(): for k,v in warn_and_errors.items():
@ -259,17 +259,16 @@ else:
error_text=[] error_text=[]
check_results={} check_results={}
for file,warn_and_errors in cleaned_failed_checks.items(): for file, checker in cleaned_failed_checks.items():
for checker_name, warn_and_errors in checker.items():
error_msg="" error_msg=""
warn_msg="" warn_msg=""
current_errors=[] current_errors=[]
current_warnings=[] current_warnings=[]
checker_name=warn_and_errors["check"]
description=warn_and_errors["description"]
if checker_name not in check_results.keys(): if checker_name not in check_results.keys():
check_results.update({checker_name:{"warn":[],"error":[]}}) check_results.update({checker_name:{"warn":[],"error":[],"description":warn_and_errors["description"]}})
for line_numbers in warn_and_errors["warn"]: for line_numbers in warn_and_errors["warn"]:
@ -301,6 +300,8 @@ else:
warn_msg=WARN_MSG%(file,', '.join(current_warnings)) warn_msg=WARN_MSG%(file,', '.join(current_warnings))
check_results[checker_name]["warn"].append(warn_msg) check_results[checker_name]["warn"].append(warn_msg)
print(check_results)
for checker,results in check_results.items(): for checker,results in check_results.items():
if len(results["error"])>0: if len(results["error"])>0:
@ -312,7 +313,7 @@ else:
warn_msg='\n'.join(results["warn"]) warn_msg='\n'.join(results["warn"])
else: else:
warn_msg="There are no warnings for this check!" warn_msg="There are no warnings for this check!"
error_text.append(FORMATTED_OUTPUT_FORMAT%(checker,description,warn_msg,error_msg)) error_text.append(FORMATTED_OUTPUT_FORMAT%(checker,results["description"],warn_msg,error_msg))
error_text='\n- - -\n'.join(error_text) error_text='\n- - -\n'.join(error_text)