[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>
This commit is contained in:
Tom de Vries
2025-05-20 11:10:29 +02:00
parent 0cc61ecfce
commit 3e488d8ccd
3 changed files with 13 additions and 1 deletions

View File

@@ -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 \

View File

@@ -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"

View File

@@ -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