diff options
-rw-r--r-- | binutils/ChangeLog | 7 | ||||
-rw-r--r-- | binutils/testsuite/lib/binutils-common.exp | 11 | ||||
-rw-r--r-- | binutils/testsuite/lib/utils-lib.exp | 40 | ||||
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/lib/gas-defs.exp | 36 | ||||
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/testsuite/lib/ld-lib.exp | 31 |
7 files changed, 91 insertions, 46 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 3b98be4..ec97a0d 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,10 @@ +2018-04-27 Maciej W. Rozycki <macro@mips.com> + + * testsuite/lib/binutils-common.exp (match_target): New procedure. + * testsuite/lib/utils-lib.exp (run_dump_test): Use it in place + of `istarget' for matching with `target', `not-target', `skip' + and `not-skip' options. + 2018-04-26 Nick Clifton <nickc@redhat.com> * readelf.c (is_32bit_abs_reloc): Support R_PARISC_DIR32 as a diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp index 48f1420..e6d9f40 100644 --- a/binutils/testsuite/lib/binutils-common.exp +++ b/binutils/testsuite/lib/binutils-common.exp @@ -127,6 +127,17 @@ proc is_elf64 { binary_file } { return 0 } +# True if the target matches TARGET, specified as a TCL procedure if +# in square brackets or as machine triplet otherwise. +# +proc match_target { target } { + if [string match {\[*\]} $target] { + return $target + } else { + return [istarget $target] + } +} + # True if the ELF target supports STB_GNU_UNIQUE with the ELF header's # OSABI field set to ELFOSABI_GNU. # diff --git a/binutils/testsuite/lib/utils-lib.exp b/binutils/testsuite/lib/utils-lib.exp index cb12112..ede77b2 100644 --- a/binutils/testsuite/lib/utils-lib.exp +++ b/binutils/testsuite/lib/utils-lib.exp @@ -224,20 +224,24 @@ proc exe_ext {} { # is useful if several .d files differ by options only. Options are # always read from FILE.d. # -# target: GLOBS... -# Run this test only on a specified list of targets. More precisely, -# each glob in the space-separated list is passed to "istarget"; if -# it evaluates true for any of them, the test will be run, otherwise -# it will be marked unsupported. -# -# not-target: GLOBS... -# Do not run this test on a specified list of targets. Again, -# the each glob in the space-separated list is passed to -# "istarget", and the test is run if it evaluates *false* for -# *all* of them. Otherwise it will be marked unsupported. -# -# skip: GLOBS... -# not-skip: GLOBS... +# target: GLOB|PROC ... +# Run this test only on a specified list of targets. More precisely, +# in the space-separated list each glob is passed to "istarget" and +# each proc is called as a TCL procedure. List items are interpreted +# such that procs are denoted by surrounding square brackets, and any +# other items are consired globs. If the call evaluates true for any +# of them, the test will be run, otherwise it will be marked +# unsupported. +# +# not-target: GLOB|PROC ... +# Do not run this test on a specified list of targets. Again, each +# glob in the space-separated list is passed to "istarget" and each +# proc is called as a TCL procedure, and the test is run if it +# evaluates *false* for *all* of them. Otherwise it will be marked +# unsupported. +# +# skip: GLOB|PROC ... +# not-skip: GLOB|PROC ... # These are exactly the same as "not-target" and "target", # respectively, except that they do nothing at all if the check # fails. They should only be used in groups, to construct a single @@ -445,13 +449,13 @@ proc run_dump_test { name {extra_options {}} } { return } foreach glob $opts(skip) { - if {[istarget $glob]} { return } + if {[match_target $glob]} { return } } } if { $opts(not-skip) != "" } then { set skip 1 foreach glob $opts(not-skip) { - if {[istarget $glob]} { + if {[match_target $glob]} { set skip 0 break } @@ -461,7 +465,7 @@ proc run_dump_test { name {extra_options {}} } { if { $opts(target) != "" } then { set skip 1 foreach glob $opts(target) { - if {[istarget $glob]} { + if {[match_target $glob]} { set skip 0 break } @@ -473,7 +477,7 @@ proc run_dump_test { name {extra_options {}} } { } if { $opts(not-target) != "" } then { foreach glob $opts(not-target) { - if {[istarget $glob]} { + if {[match_target $glob]} { unsupported $testname return } diff --git a/gas/ChangeLog b/gas/ChangeLog index d3ce68f..d8a6ffa 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2018-04-27 Maciej W. Rozycki <macro@mips.com> + + * testsuite/lib/gas-defs.exp (run_dump_test): Use `match_target' + in place of `istarget' for matching with `target', `not-target', + `skip' and `not-skip' options. + 2018-04-26 Nick Clifton <nickc@redhat.com> * as.c (flag_generate_build_notes): New variable. diff --git a/gas/testsuite/lib/gas-defs.exp b/gas/testsuite/lib/gas-defs.exp index e2b3b8e..064b866 100644 --- a/gas/testsuite/lib/gas-defs.exp +++ b/gas/testsuite/lib/gas-defs.exp @@ -383,20 +383,24 @@ proc run_dump_tests { testcases {extra_options {}} } { # is useful if several .d files differ by options only. Options are # always read from FILE.d. # -# target: GLOBS... -# Run this test only on a specified list of targets. More precisely, -# each glob in the space-separated list is passed to "istarget"; if -# it evaluates true for any of them, the test will be run, otherwise -# it will be marked unsupported. +# target: GLOB|PROC ... +# Run this test only on a specified list of targets. More precisely, +# in the space-separated list each glob is passed to "istarget" and +# each proc is called as a TCL procedure. List items are interpreted +# such that procs are denoted by surrounding square brackets, and any +# other items are consired globs. If the call evaluates true for any +# of them, the test will be run, otherwise it will be marked +# unsupported. # -# not-target: GLOBS... -# Do not run this test on a specified list of targets. Again, -# the each glob in the space-separated list is passed to -# "istarget", and the test is run if it evaluates *false* for -# *all* of them. Otherwise it will be marked unsupported. +# not-target: GLOB|PROC ... +# Do not run this test on a specified list of targets. Again, each +# glob in the space-separated list is passed to "istarget" and each +# proc is called as a TCL procedure, and the test is run if it +# evaluates *false* for *all* of them. Otherwise it will be marked +# unsupported. # -# skip: GLOBS... -# not-skip: GLOBS... +# skip: GLOB|PROC ... +# not-skip: GLOB|PROC ... # These are exactly the same as "not-target" and "target", # respectively, except that they do nothing at all if the check # fails. They should only be used in groups, to construct a single @@ -575,13 +579,13 @@ proc run_dump_test { name {extra_options {}} } { return } foreach glob $opts(skip) { - if {[istarget $glob]} { return } + if {[match_target $glob]} { return } } } if { $opts(not-skip) != "" } then { set skip 1 foreach glob $opts(not-skip) { - if {[istarget $glob]} { + if {[match_target $glob]} { set skip 0 break } @@ -596,7 +600,7 @@ proc run_dump_test { name {extra_options {}} } { } set skip 1 foreach glob $opts(target) { - if {[istarget $glob]} { + if {[match_target $glob]} { set skip 0 break } @@ -608,7 +612,7 @@ proc run_dump_test { name {extra_options {}} } { } if { $opts(not-target) != "" } then { foreach glob $opts(not-target) { - if {[istarget $glob]} { + if {[match_target $glob]} { unsupported $testname return } diff --git a/ld/ChangeLog b/ld/ChangeLog index 6b9d68f..21ec587 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2018-04-27 Maciej W. Rozycki <macro@mips.com> + + * testsuite/lib/ld-lib.exp (run_dump_test): Use `match_target' + in place of `istarget' for matching with `target', `alltargets' + and `notarget' options. + 2018-04-27 Alan Modra <amodra@gmail.com> * po/BLD-POTFILES.in: Regenerate. diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp index 9a0f350..4168933 100644 --- a/ld/testsuite/lib/ld-lib.exp +++ b/ld/testsuite/lib/ld-lib.exp @@ -535,19 +535,26 @@ proc ld_link_defsyms {} { # once. # # target: TARGET -# Only run the test for TARGET. This may occur more than once; the -# target being tested must match at least one. You may provide target -# name "cfi" for any target supporting the CFI statements. You may -# provide target name "shared" for any target supporting shared -# libraries. +# Only run the test for TARGET. +# You may provide target name "cfi" for any target supporting the +# CFI statements. You may provide target name "shared" for any +# target supporting shared libraries. Otherwise TARGET is called +# as a TCL procedure if surrounded by square brackets, or passed +# to "istarget" if not. +# This may occur more than once; the target being tested must match +# at least one. # # alltargets: TARGET -# Only run the test for TARGET. This may occur more than once; the -# target being tested must match all of them. +# Only run the test for TARGET. +# The syntax for TARGET is as with 'target'. +# This may occur more than once; the target being tested must match +# all of them. # # notarget: TARGET -# Do not run the test for TARGET. This may occur more than once; -# the target being tested must not match any of them. +# Do not run the test for TARGET. +# The syntax for TARGET is as with 'target'. +# This may occur more than once; the target being tested must not +# match any of them. # # error: REGEX # An error with message matching REGEX must be emitted for the test @@ -743,7 +750,7 @@ proc run_dump_test { name {extra_options {}} } { if { [llength $opts(target)] > 0 } { set targmatch 0 foreach targ $opts(target) { - if [istarget $targ] { + if [match_target $targ] { set targmatch 1 break } @@ -753,12 +760,12 @@ proc run_dump_test { name {extra_options {}} } { } } foreach targ $opts(alltargets) { - if ![istarget $targ] { + if ![match_target $targ] { return } } foreach targ $opts(notarget) { - if [istarget $targ] { + if [match_target $targ] { return } } |