libabigail/tests
Dodji Seketeli 8569491741 Bug 28319 - re-fix of rhbz1951526 - SELF CHECK FAILED for 'gimp-2.10'
This commit re-visit the commit below:

    commit 1cfbff1b30
    Author: Dodji Seketeli <dodji@redhat.com>
    Date:   Mon Jun 7 16:07:50 2021 +0200

	rhbz1951526 - SELF CHECK FAILED for 'gimp-2.10'

	This is a fix for bug https://bugzilla.redhat.com/show_bug.cgi?id=1951526.

Basically, this commits makes is so that two enums below are
considered equal by libabigail:

     enum foo // This is foo #1
     {
       e0 = 0;
       e1 = 1;
       e2 = 2;
     };

     enum foo  // This is foo #2
     {
       e0 = 0;
       e1 = 1;
       e2 = 2;
       e_added = 1; // This enumerator is considered redundant
       	       	    // with the enumerator e1 because their values
		    // are the same.
     };

With this patch, foo #1 and foo #2 are considered equal, just like in
the original commit 1cfbff1b.  In the original commit however, this
was achieved by comparing the enums without considering their
enumerator names.  This was named "binary-only enum comparison".  In
reality, that approach was too big of a hammer and was causing the
issues raised in the bug.  Namely, type canonicalization would
conflate anonymous enums that were unrelated (precisely because their
enumerator names were different), leading to spurious type change
reports when comparing abixml files pre-dating commit 1cfbff1b with
posterior abixml files.

If I refer to the example above with foo #1 and #2, this patch detects
that the value of the enumerator 'e_added' is redundant with the value
of the enumerator e1.  As such, the two foo #1 and #2 are considered
equal.  Enumerator names are now fully taken into account.

With this precise approach, it now seems we can do away with the
careful dance of using "binary-only enum comparison" at some precise
times of the libabigail pipeline.  Now, we can just use the new enum
comparison scheme all the time.  Leading to less (complicated) code
and a hopefully accurate representation.

	* include/abg-ir.h (environment::use_enum_binary_only_equality):
	Remove.
	* src/abg-comparison.cc (compute_diff): In the overload for
	enum_type_decl, stop using binary-only-equality for enums.
	* src/abg-dwarf-reader.cc
	(read_context::compare_before_canonicalisation): Likewise.
	* src/abg-ir.cc (environment::use_enum_binary_only_equality):
	Remove.
	(enumerators_values_are_equal)
	(is_enumerator_value_present_in_enum)
	(is_enumerator_value_redundant): Define new static functions.
	(equals): In the overload for enum_type_decl, use the new
	is_enumerator_value_redundant to detect if two enums are equal
	modulo a redundant enumerator value.  In that case, consider they
	are equal.
	* tests/data/test-abidiff/test-enum0-report.txt: Adjust.
	* tests/data/test-annotate/test-anonymous-members-0.o.abi: Likewise.
	* tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
	* tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
	* tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt: Likewise.
	* tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi: Likewise.
	* tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi: Likewise.
	* tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi: Likewise.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2022-01-14 10:45:29 +01:00
..
data Bug 28319 - re-fix of rhbz1951526 - SELF CHECK FAILED for 'gimp-2.10' 2022-01-14 10:45:29 +01:00
lib tests/catch.hpp: Add SPDX header back 2021-03-08 11:33:56 +01:00
.gitignore
Makefile.am Add regression tests for ctf reading 2021-12-14 16:45:58 +01:00
mockfedabipkgdiff.in Handle several variants of Python 'imp', 'importlib' modules 2022-01-06 15:44:29 +01:00
print-diff-tree.cc Move dwarf_reader::status facilities to an abigail::elf_reader namespace 2021-11-15 11:08:53 +01:00
runtestcanonicalizetypes.sh.in
runtestdefaultsupprs.py.in
runtestdefaultsupprspy3.sh.in
runtestfedabipkgdiff.py.in
runtestfedabipkgdiffpy3.sh.in
runtestslowselfcompare.sh.in
test-abicompat.cc test-abicompat: Make the test output more pleasant 2021-11-09 15:35:19 +01:00
test-abidiff-exit.cc Standardize and improve the output of several tests 2021-11-17 12:44:16 +01:00
test-abidiff.cc Bug 27985 - abidiff: bad array types in report 2021-09-03 11:08:01 +02:00
test-alt-dwarf-file.cc Standardize and improve the output of several tests 2021-11-17 12:44:16 +01:00
test-annotate.cc Add regression tests for ctf reading 2021-12-14 16:45:58 +01:00
test-core-diff.cc
test-cxx-compat.cc abg-cxx-compat: add simplified version of std::optional 2021-03-09 10:41:10 +01:00
test-diff2.cc
test-diff-dwarf-abixml.cc Standardize and improve the output of several tests 2021-11-17 12:44:16 +01:00
test-diff-dwarf.cc Move dwarf_reader::status facilities to an abigail::elf_reader namespace 2021-11-15 11:08:53 +01:00
test-diff-filter.cc Bug 27995 - Self comparison error from abixml file 2021-08-11 17:38:14 +02:00
test-diff-pkg.cc configure: Instead of for rpm 4.15+ version, test actual rpm/zstd support 2021-12-17 21:13:25 +01:00
test-diff-suppr.cc suppression: Fix has_data_member_inserted_between = {offset_of(), offset_of()} 2021-12-06 14:39:32 +01:00
test-dot.cc
test-elf-helpers.cc
test-ini.cc Standardize and improve the output of several tests 2021-11-17 12:44:16 +01:00
test-ir-walker.cc Move dwarf_reader::status facilities to an abigail::elf_reader namespace 2021-11-15 11:08:53 +01:00
test-kmi-whitelist.cc
test-lookup-syms.cc Standardize and improve the output of several tests 2021-11-17 12:44:16 +01:00
test-read-common.cc Add regression tests for ctf reading 2021-12-14 16:45:58 +01:00
test-read-common.h Add regression tests for ctf reading 2021-12-14 16:45:58 +01:00
test-read-ctf.cc ctf-reader: Assert on ir::hash_as_canonical_type_or_constant 2022-01-03 15:16:12 +01:00
test-read-dwarf.cc Add regression tests for ctf reading 2021-12-14 16:45:58 +01:00
test-read-write.cc symtab: Add support for MODVERSIONS (CRC checksums) 2021-04-02 16:13:13 +02:00
test-svg.cc
test-symtab-reader.cc dwarf-reader split: create abg-symtab-reader.{h,cc} and test case 2021-03-10 18:54:55 +01:00
test-symtab.cc Move dwarf_reader::status facilities to an abigail::elf_reader namespace 2021-11-15 11:08:53 +01:00
test-tools-utils.cc
test-types-stability.cc Bug 28450 - Fix cloned member function handling in DWARF 2021-11-12 18:31:28 +01:00
test-utils.cc test-utils: Define test status reporting functions 2021-11-17 12:02:37 +01:00
test-utils.h test-utils: Define test status reporting functions 2021-11-17 12:02:37 +01:00
test-valgrind-suppressions.supp
update-test-output.py