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