diff options
author | Tom de Vries <tdevries@suse.de> | 2025-05-20 11:10:29 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2025-05-20 11:10:29 +0200 |
commit | 3e488d8ccd0fb25d9c2d33feceb9eac3e336c1b0 (patch) | |
tree | 54421cf829d7b335e96115b1c029f57a7c3673af | |
parent | 0cc61ecfce276277daea94de0f88dd2053daea51 (diff) | |
download | binutils-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.exp | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/dw-form-strx.exp | 2 | ||||
-rw-r--r-- | gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl | 6 |
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 |