aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2025-05-20 11:10:29 +0200
committerTom de Vries <tdevries@suse.de>2025-05-20 11:10:29 +0200
commit3e488d8ccd0fb25d9c2d33feceb9eac3e336c1b0 (patch)
tree54421cf829d7b335e96115b1c029f57a7c3673af
parent0cc61ecfce276277daea94de0f88dd2053daea51 (diff)
downloadbinutils-3e488d8ccd0fb25d9c2d33feceb9eac3e336c1b0.zip
binutils-3e488d8ccd0fb25d9c2d33feceb9eac3e336c1b0.tar.gz
binutils-3e488d8ccd0fb25d9c2d33feceb9eac3e336c1b0.tar.bz2
[gdb/testsuite] Fix gdb.dwarf2/dw-form-strx-out-of-bounds.exp with make-check-all.sh
I forgot to run test-case gdb.dwarf2/dw-form-strx-out-of-bounds.exp with make-check-all.sh, and consequently failed to notice that it fails with for instance target board fission-dwp. The test-case does: ... source $srcdir/$subdir/dw-form-strx.exp.tcl ... and in that tcl file, prepare_for_testing fails, so a -1 is returned, but that is ignored by the source command. Fix this by using require, but rather that testing the result of the source command, communicate success by setting a global variable prepare_for_testing_done. Likewise in gdb.dwarf2/dw-form-strx.exp. Also, the test-case gdb.dwarf2/dw-form-strx-out-of-bounds.exp fails for target board readnow, because the DWARF error occurs during a different command than expected. Fix this by just skipping the test-case in that case. Tested on x86_64-linux. Reported-by: Simon Marchi <simark@simark.ca> Approved-By: Tom Tromey <tom@tromey.com>
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw-form-strx-out-of-bounds.exp6
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw-form-strx.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl6
3 files changed, 13 insertions, 1 deletions
diff --git a/gdb/testsuite/gdb.dwarf2/dw-form-strx-out-of-bounds.exp b/gdb/testsuite/gdb.dwarf2/dw-form-strx-out-of-bounds.exp
index f2123fa..cb24b19 100644
--- a/gdb/testsuite/gdb.dwarf2/dw-form-strx-out-of-bounds.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw-form-strx-out-of-bounds.exp
@@ -18,7 +18,13 @@
# Out of bounds index.
set int_str_idx 1
+# With readnow, the dwarf error is printed during the file command, so skip
+# the test.
+require !readnow
+
+set prepare_for_testing_done 0
source $srcdir/$subdir/dw-form-strx.exp.tcl
+require {expr $prepare_for_testing_done == 1}
set re_dwarf_error \
[string_list_to_regexp \
diff --git a/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp b/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp
index 9b62edf..3f739c4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp
@@ -18,6 +18,8 @@
# Correct index.
set int_str_idx 0
+set prepare_for_testing_done 0
source $srcdir/$subdir/dw-form-strx.exp.tcl
+require {expr $prepare_for_testing_done == 1}
gdb_test "ptype global_var" "type = int"
diff --git a/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl b/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl
index 15cfe27..d69b517 100644
--- a/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl
+++ b/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl
@@ -56,5 +56,9 @@ Dwarf::assemble $asm_file {
if { [prepare_for_testing "failed to prepare" ${testfile} \
[list $srcfile $asm_file] {nodebug}] } {
- return -1
+ return
}
+
+# Let includers know prepare_for_testing was done, without having to check
+# source return status.
+set prepare_for_testing_done 1