aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binutils/ChangeLog7
-rw-r--r--binutils/testsuite/lib/binutils-common.exp11
-rw-r--r--binutils/testsuite/lib/utils-lib.exp40
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/testsuite/lib/gas-defs.exp36
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/testsuite/lib/ld-lib.exp31
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
}
}