Skip to content

Commit

Permalink
[gdb/testsuite] Fix test name in gdb.base/batch-exit-status.exp
Browse files Browse the repository at this point in the history
When running gdb.base/batch-exit-status.exp I noticed that the test name
contains a newline:
...
PASS: gdb.base/batch-exit-status.exp: : No such file or directory\.^M
: No such file or directory\.: [lindex $result 2] == 0
...

The mistake is that I passed an output regexp argument to a parameter
interpreted as testname prefix.  Fix this by passing a testname prefix
instead.

Add support for checking output, to be able to handle the output regexp
argument.

Tested on x86_64-linux.
  • Loading branch information
vries committed Sep 13, 2021
1 parent 52e5dce commit 003fa0d
Showing 1 changed file with 20 additions and 6 deletions.
26 changes: 20 additions & 6 deletions gdb/testsuite/gdb.base/batch-exit-status.exp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ standard_testfile
set good_commands "$srcdir/$subdir/batch-exit-status.good-commands"
set bad_commands "$srcdir/$subdir/batch-exit-status.bad-commands"

proc _test_exit_status {expect_status cmdline_opts} {
proc _test_exit_status {expect_status cmdline_opts {re ""}} {
global gdb_spawn_id

gdb_exit
Expand All @@ -29,7 +29,16 @@ proc _test_exit_status {expect_status cmdline_opts} {
return
}

set has_re [expr ![string equal $re ""]]
if { ! $has_re } {
set re "\$FOOBAR^"
}
set re_matched 0
gdb_test_multiple "" "run til exit" {
-re $re {
set re_matched 1
exp_continue
}
eof {
set result [wait -i $gdb_spawn_id]
verbose $result
Expand All @@ -41,15 +50,18 @@ proc _test_exit_status {expect_status cmdline_opts} {
clear_gdb_spawn_id
}
}
if { $has_re } {
gdb_assert { $re_matched } "output matched"
}
}

proc test_exit_status {expect_status cmdline_opts prefix} {
proc test_exit_status {expect_status cmdline_opts prefix args} {
if { $prefix == "" } {
set prefix $cmdline_opts
}

with_test_prefix $prefix {
_test_exit_status $expect_status $cmdline_opts
_test_exit_status $expect_status $cmdline_opts {*}$args
}
}

Expand Down Expand Up @@ -77,6 +89,8 @@ test_exit_status 1 "-batch -x $good_commands -x $bad_commands" \
test_exit_status 1 "-batch -x $good_commands -ex \"set not-a-thing 4\"" \
"-batch -x good-commands -ex \"set not-a-thing 4\""

set no_such_re ": No such file or directory\\."
test_exit_status 1 "-batch \"\"" $no_such_re
test_exit_status 1 "-batch \"\" \"\"" [multi_line $no_such_re $no_such_re]
set test "No such file or directory"
set no_such_re ": $test\\."
test_exit_status 1 "-batch \"\"" "1x: $test" ^[multi_line $no_such_re ""]$
test_exit_status 1 "-batch \"\" \"\"" "2x: $test" \
^[multi_line $no_such_re $no_such_re ""]$

0 comments on commit 003fa0d

Please sign in to comment.