Skip to content
Snippets Groups Projects
Commit 4d60bba6 authored by Dylan Aïssi's avatar Dylan Aïssi
Browse files

apertis-abi-compare: add a final summary


This summary is useful in case of multiple libraries to
easily and quickly identify which ones have issues.

Signed-off-by: default avatarDylan Aïssi <dylan.aissi@collabora.com>
parent 56d49bca
No related branches found
No related tags found
3 merge requests!44Merge changes from apertis/v2022-updates into apertis/v2022,!43Backport v2022-updates <- v2023pre: Improvement ABI checker script,!41apertis-abi-compare: Improve the final output with a summary
......@@ -179,7 +179,7 @@ def run_abi_checker(lib, xml_old, ver_old, xml_new, ver_new, arch):
def abi_checker(lib_names_old, xml_descr_old, my_old_ver, lib_names_new, xml_descr_new, my_new_ver, arch):
acc_returncode = 0
acc_returncodes = []
for lib in lib_names_new:
my_lib = 'lib'+lib+'.so'
if lib in lib_names_old:
......@@ -196,11 +196,11 @@ def abi_checker(lib_names_old, xml_descr_old, my_old_ver, lib_names_new, xml_des
break
rac_returncode = run_abi_checker(lib, xml_old, my_old_ver, xml_new, my_new_ver, arch)
if rac_returncode != 0:
acc_returncode = rac_returncode
acc_returncodes.append([lib,rac_returncode])
else:
print(f'INFO: {my_lib} is not in the old package, no need to run abi-compliance-checker')
return acc_returncode
acc_returncodes.append([lib,0])
return acc_returncodes
def main():
......@@ -281,11 +281,27 @@ def main():
xml_descr_new, lib_names_new = define_xml('pkg_new_extracted', my_new_ver)
# Check if library is in both the new and the old packages before running it
acc_returncode = abi_checker(lib_names_old, xml_descr_old, my_old_ver,
lib_names_new, xml_descr_new, my_new_ver,
deb_arch)
list_returncodes = abi_checker(lib_names_old, xml_descr_old, my_old_ver,
lib_names_new, xml_descr_new, my_new_ver,
deb_arch)
sys.exit(acc_returncode)
print('######################################################')
print(f'INFO: Final summary of apertis-abi-compare analyses:')
returncode_max = 0
for lib_name, lib_returncode in list_returncodes:
if returncode_max < lib_returncode:
returncode_max = lib_returncode
if lib_returncode == 0:
print(f'INFO: - No ABI breakge detected for {lib_name}: {lib_returncode}')
elif lib_returncode == 1:
print(f'INFO: - !!! ABI breakge detected for {lib_name}: {lib_returncode}')
elif lib_returncode == 6:
print(f'INFO: - !!! FAILS to build headers for {lib_name}: {lib_returncode}')
else:
print(f'INFO: - !!! ERROR detected for {lib_name}: {lib_returncode}')
print('######################################################')
sys.exit(returncode_max)
if __name__ == '__main__':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment