aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2021-09-13 09:16:13 +0200
committerTom de Vries <tdevries@suse.de>2021-09-13 09:16:13 +0200
commit003fa0df36e228405bb67069a119408787d7f8c9 (patch)
treef251e0406143413bb0901d77c6b9ca5d81d6bb4c
parent52e5dceb692eec135e27b330d8a6a2d561d11472 (diff)
downloadgdb-003fa0df36e228405bb67069a119408787d7f8c9.zip
gdb-003fa0df36e228405bb67069a119408787d7f8c9.tar.gz
gdb-003fa0df36e228405bb67069a119408787d7f8c9.tar.bz2
[gdb/testsuite] Fix test name in gdb.base/batch-exit-status.exp
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.
-rw-r--r--gdb/testsuite/gdb.base/batch-exit-status.exp26
1 files changed, 20 insertions, 6 deletions
diff --git a/gdb/testsuite/gdb.base/batch-exit-status.exp b/gdb/testsuite/gdb.base/batch-exit-status.exp
index 9a08019..520083f 100644
--- a/gdb/testsuite/gdb.base/batch-exit-status.exp
+++ b/gdb/testsuite/gdb.base/batch-exit-status.exp
@@ -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
@@ -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
@@ -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
}
}
@@ -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 ""]$