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":
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":
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:
print_warn(i,"[!] Event decoding fail! Assuming checker %s is not wrapped calls compliant"%(i))
exec_status=2
@ -217,17 +217,17 @@ for name,events,description in failed_checks:
if file not in cleaned_failed_checks.keys():
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"]
error=warn_and_errors["error"]
for file, checker in cleaned_failed_checks.items():
for name, warn_and_errors in checker.items():
for k,v in warn_and_errors.items():
@ -259,17 +259,16 @@ else:
error_text=[]
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=""
warn_msg=""
current_errors=[]
current_warnings=[]
checker_name=warn_and_errors["check"]
description=warn_and_errors["description"]
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"]:
@ -301,6 +300,8 @@ else:
warn_msg=WARN_MSG%(file,', '.join(current_warnings))
check_results[checker_name]["warn"].append(warn_msg)
print(check_results)
for checker,results in check_results.items():
if len(results["error"])>0:
@ -312,7 +313,7 @@ else:
warn_msg='\n'.join(results["warn"])
else:
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)