From 003fa0df36e228405bb67069a119408787d7f8c9 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Mon, 13 Sep 2021 09:16:13 +0200 Subject: [PATCH] [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. --- gdb/testsuite/gdb.base/batch-exit-status.exp | 26 +++++++++++++++----- 1 file 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 9a080196bd6..520083f7989 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 ""]$ -- 2.30.2