From e452e88f54624ae55d534c4ae32e0c768cb4b59f Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 19 Sep 2019 19:54:15 +0200 Subject: [PATCH] [gdb/testsuite] Don't use FOOBAR pattern in gdb_test If gdb_test is used with fewer than five arguments, then the question_string defaults to "^FOOBAR$": ... if [llength $args]==5 { set question_string [lindex $args 3] set response_string [lindex $args 4] } else { set question_string "^FOOBAR$" } ... This can however match "FOOBAR", so perhaps "\$FOOBAR^" would have been a better choice. Eliminate the FOOBAR pattern from gdb_test by instead of defining a default regexp, conditionally appending the regexp matching to a user_code variable. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2019-09-19 Tom de Vries * lib/gdb.exp (gdb_test): Eliminate "^FOOBAR$" pattern. --- gdb/testsuite/ChangeLog | 4 ++++ gdb/testsuite/lib/gdb.exp | 28 ++++++++++++++++------------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index d5a5309fdf..e86091eee3 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2019-09-19 Tom de Vries + + * lib/gdb.exp (gdb_test): Eliminate "^FOOBAR$" pattern. + 2019-09-19 Tom de Vries * lib/gdbserver-support.exp (gdb_target_cmd): Fix argument passing. diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index acbeb01376..3a1f053cf8 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -1083,24 +1083,28 @@ proc gdb_test { args } { set command [lindex $args 0] set pattern [lindex $args 1] - if [llength $args]==5 { - set question_string [lindex $args 3] - set response_string [lindex $args 4] - } else { - set question_string "^FOOBAR$" - } - - return [gdb_test_multiple $command $message { + set user_code {} + lappend user_code { -re "\[\r\n\]*(?:$pattern)\[\r\n\]+$gdb_prompt $" { if ![string match "" $message] then { pass "$message" } } - -re "(${question_string})$" { - send_gdb "$response_string\n" - exp_continue + } + + if { [llength $args] == 5 } { + set question_string [lindex $args 3] + set response_string [lindex $args 4] + lappend user_code { + -re "(${question_string})$" { + send_gdb "$response_string\n" + exp_continue + } } - }] + } + + set user_code [join $user_code] + return [gdb_test_multiple $command $message $user_code] } # Return 1 if version MAJOR.MINOR is at least AT_LEAST_MAJOR.AT_LEAST_MINOR. -- 2.34.1