Skip to content
Snippets Groups Projects

apertis-abi-compare: Improve the final output with a summary

Merged Dylan Aïssi requested to merge wip/daissi/output into apertis/v2023pre
1 file
+ 22
6
Compare changes
  • Side-by-side
  • Inline
+ 22
6
@@ -175,7 +175,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_returncode = []
for lib in lib_names_new:
my_lib = 'lib'+lib+'.so'
if lib in lib_names_old:
@@ -183,19 +183,19 @@ def abi_checker(lib_names_old, xml_descr_old, my_old_ver, lib_names_new, xml_des
for xml in xml_descr_new:
xml_data = pathlib.Path(xml).read_text()
if my_lib in xml_data:
xml_new = xml
xml_new = str(xml)
break
for xml in xml_descr_old:
xml_data = pathlib.Path(xml).read_text()
if my_lib in xml_data:
xml_old = xml
xml_old = str(xml)
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_returncode.append([lib,rac_returncode])
else:
print(f'INFO: {my_lib} is not in the old package, no need to run abi-compliance-checker')
acc_returncode.append([lib,0])
return acc_returncode
@@ -277,10 +277,26 @@ 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,
ac_returncode = abi_checker(lib_names_old, xml_descr_old, my_old_ver,
lib_names_new, xml_descr_new, my_new_ver,
deb_arch)
print('######################################################')
print(f'INFO: Final summary of apertis-abi-compare analyses:')
acc_returncode = 0
for lib in ac_returncode:
if acc_returncode < lib[1]:
acc_returncode = lib[1]
if lib[1] == 0:
print(f'INFO: - No ABI breakge detected for {lib[0]}: {lib[1]}')
elif lib[1] == 1:
print(f'INFO: - !!! ABI breakge detected for {lib[0]}: {lib[1]}')
elif lib[1] == 6:
print(f'INFO: - !!! FAILS to build headers for {lib[0]}: {lib[1]}')
else:
print(f'INFO: - !!! ERROR detected for {lib[0]}: {lib[1]}')
print('######################################################')
sys.exit(acc_returncode)
Loading