Add noxfail option to run_dump_test
Michael Eager
eager@eagerm.com
Wed Oct 16 15:54:05 GMT 2024
Approved.
On 10/16/24 5:36 AM, Alan Modra wrote:
> The noxfail option is useful in situations like pr23658-1e which
> fails on all microblaze ELF targets except microblaze-linux. This was
> possible to handle by writing a small proc and use that as an xfail
> predicate, or painstakingly listing all microblaze ELF targets, but
> this is simpler. The patch also fixes some other FAILs and XPASSes of
> the pr23658 tests.
>
> binutils/
> * testsuite/lib/binutils-common.exp (run_dump_test): Support
> noxfail.
> ld/
> * testsuite/ld-elf/pr23658-1a.d: Don't xfail m68hc12.
> * testsuite/ld-elf/pr23658-1e.d: Likewise. xfail xstormy16
> and correct microblaze xfails.
>
> diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp
> index 403103da366..03e8dbb855b 100644
> --- a/binutils/testsuite/lib/binutils-common.exp
> +++ b/binutils/testsuite/lib/binutils-common.exp
> @@ -897,6 +897,9 @@ proc prune_dump_output { output } {
> # Run this test and it is is expected to fail on a specified list
> # of targets.
> #
> +# noxfail: GLOB|PROC ...
> +# Of targets that match the xfail list, this list won't fail.
> +#
> # error: REGEX
> # An error with message matching REGEX must be emitted for the test
> # to pass. The DUMPPROG, addr2line, nm, objdump, readelf and size
> @@ -1001,6 +1004,7 @@ proc run_dump_test { name {extra_options {}} } {
> set opts(warning) {}
> set opts(warning_output) {}
> set opts(xfail) {}
> + set opts(noxfail) {}
>
> set in_extra 0
> foreach i [concat $opt_array {{} {}} $extra_options] {
> @@ -1031,6 +1035,7 @@ proc run_dump_test { name {extra_options {}} } {
>
> switch -- $opt_name {
> xfail {}
> + noxfail {}
> target {}
> alltargets {}
> notarget {}
> @@ -1296,6 +1301,12 @@ proc run_dump_test { name {extra_options {}} } {
> break
> }
> }
> + foreach targ $opts(noxfail) {
> + if [match_target $targ] {
> + clear_xfail "*-*-*"
> + break
> + }
> + }
>
> foreach as_flags $as_final_flags {
> # Assemble each file.
> diff --git a/ld/testsuite/ld-elf/pr23658-1a.d b/ld/testsuite/ld-elf/pr23658-1a.d
> index 21847f9350c..c2caf496ac6 100644
> --- a/ld/testsuite/ld-elf/pr23658-1a.d
> +++ b/ld/testsuite/ld-elf/pr23658-1a.d
> @@ -8,7 +8,6 @@
> # Since generic linker targets don't place SHT_NOTE sections as orphan,
> # SHT_NOTE sections aren't grouped nor sorted.
> #xfail: [uses_genelf]
> -#xfail: m68hc12-*
> # The following targets place .note.gnu.build-id in unusual places.
> #xfail: d10v-* pru-*
>
> diff --git a/ld/testsuite/ld-elf/pr23658-1e.d b/ld/testsuite/ld-elf/pr23658-1e.d
> index 992c7484ff7..dbb05e6293e 100644
> --- a/ld/testsuite/ld-elf/pr23658-1e.d
> +++ b/ld/testsuite/ld-elf/pr23658-1e.d
> @@ -10,11 +10,12 @@
> # placed before text sections and there should no other note sections
> # between .note.gnu.build-id and text sections.
> #xfail: [uses_genelf]
> -#xfail: m68hc12-*
> # The following targets don't support --build-id.
> #xfail: cr16-* crx-* visium-*
> # The following targets place .note.gnu.build-id in unusual places.
> -#xfail: *-*-hpux* arc*-* avr-* microblaze-*-* nds32*-* spu-*-*
> +#xfail: *-*-hpux*
> +#xfail: arc*-* avr-* m68hc1*-* microblaze*-* nds32*-* spu-*-* xstormy16-*-*
> +#noxfail: microblaze*-linux*
>
> #...
> +[0-9]+ +\.note.gnu.build-id +
>
More information about the Binutils
mailing list