def prepare_and_absolute_diff_all_archs(self, old_lib, new_lib): old_modules = Module.get_test_modules_by_name(old_lib) new_modules = Module.get_test_modules_by_name(new_lib) self.assertEqual(len(old_modules), len(new_modules)) for old_module, new_module in zip(old_modules, new_modules): self.assertEqual(old_module.arch, new_module.arch) old_ref_dump_path = self.get_or_create_ref_dump(old_module, False) new_ref_dump_path = self.get_or_create_ref_dump(new_module, True) self.assertEqual(read_output_content(old_ref_dump_path, AOSP_DIR), read_output_content(new_ref_dump_path, AOSP_DIR))
def prepare_and_absolute_diff_all_archs(self, old_lib, new_lib): old_modules = Module.get_test_modules_by_name(old_lib) new_modules = Module.get_test_modules_by_name(new_lib) self.assertEqual(len(old_modules), len(new_modules)) for old_module, new_module in zip(old_modules, new_modules): self.assertEqual(old_module.arch, new_module.arch) old_ref_dump_path = self.get_or_create_ref_dump(old_module, False) new_ref_dump_path = self.get_or_create_ref_dump(new_module, True) self.assertEqual( read_output_content(old_ref_dump_path, AOSP_DIR), read_output_content(new_ref_dump_path, AOSP_DIR))
def prepare_and_run_abi_diff_all_archs(self, old_lib, new_lib, expected_return_code, flags=[], create_old=False, create_new=True): old_modules = Module.get_test_modules_by_name(old_lib) new_modules = Module.get_test_modules_by_name(new_lib) self.assertEqual(len(old_modules), len(new_modules)) for old_module, new_module in zip(old_modules, new_modules): self.assertEqual(old_module.arch, new_module.arch) old_ref_dump_path = self.get_or_create_ref_dump(old_module, create_old) new_ref_dump_path = self.get_or_create_ref_dump(new_module, create_new) self.prepare_and_run_abi_diff( old_ref_dump_path, new_ref_dump_path, new_module.arch, expected_return_code, flags)
def test_allow_adding_removing_weak_symbols(self): module_old = Module.get_test_modules_by_name("libweak_symbols_old")[0] module_new = Module.get_test_modules_by_name("libweak_symbols_new")[0] lsdump_old = self.get_or_create_ref_dump(module_old, False) lsdump_new = self.get_or_create_ref_dump(module_new, False) options = ["-input-format-old", "Json", "-input-format-new", "Json"] # If `-allow-adding-removing-weak-symbols` is not specified, removing a # weak symbol must be treated as an incompatible change. self.run_and_compare_abi_diff(lsdump_old, lsdump_new, "libweak_symbols", "arm64", 8, options) # If `-allow-adding-removing-weak-symbols` is specified, removing a # weak symbol must be fine and mustn't be a fatal error. self.run_and_compare_abi_diff( lsdump_old, lsdump_new, "libweak_symbols", "arm64", 0, options + ["-allow-adding-removing-weak-symbols"])
def prepare_and_run_abi_diff_all_archs(self, old_lib, new_lib, expected_return_code, flags=[], create_old=False, create_new=True): old_modules = Module.get_test_modules_by_name(old_lib) new_modules = Module.get_test_modules_by_name(new_lib) self.assertEqual(len(old_modules), len(new_modules)) for old_module, new_module in zip(old_modules, new_modules): self.assertEqual(old_module.arch, new_module.arch) old_ref_dump_path = self.get_or_create_ref_dump( old_module, create_old) new_ref_dump_path = self.get_or_create_ref_dump( new_module, create_new) self.prepare_and_run_abi_diff(old_ref_dump_path, new_ref_dump_path, new_module.arch, expected_return_code, flags)
def test_linker_shared_object_file_and_version_script(self): base_dir = os.path.join(SCRIPT_DIR, 'integration', 'version_script_example') cases = [ 'libversion_script_example', 'libversion_script_example_no_mytag', 'libversion_script_example_no_private', ] for module_name in cases: module = Module.get_test_modules_by_name(module_name)[0] example_lsdump_old = self.get_or_create_ref_dump(module, False) example_lsdump_new = self.get_or_create_ref_dump(module, True) self.run_and_compare_abi_diff( example_lsdump_old, example_lsdump_new, module_name, "arm64", 0, ["-input-format-old", "Json", "-input-format-new", "Json"])
def test_linker_shared_object_file_and_version_script(self): base_dir = os.path.join( SCRIPT_DIR, 'integration', 'version_script_example') cases = [ 'libversion_script_example', 'libversion_script_example_no_mytag', 'libversion_script_example_no_private', ] for module_name in cases: module = Module.get_test_modules_by_name(module_name)[0] example_lsdump_old = self.get_or_create_ref_dump(module, False) example_lsdump_new = self.get_or_create_ref_dump(module, True) self.run_and_compare_abi_diff( example_lsdump_old, example_lsdump_new, module_name, "arm64", 0, ["-input-format-old", "Json", "-input-format-new", "Json"])