[committed,gdb/testsuite] Use -wrap and $gdb_test_name in gdb_test_multiple calls
Commit Message
Hi,
Make gdb_test_multiple calls shorter by using new gdb_test_multiple variable
$gdb_test_name and new gdb_test_multiple pattern flag -wrap.
Tested on x86_64-linux.
Committed to trunk.
Thanks,
- Tom
[gdb/testsuite] Use -wrap and $gdb_test_name in gdb_test_multiple calls
gdb/testsuite/ChangeLog:
2019-10-25 Tom de Vries <tdevries@suse.de>
* gdb.arch/amd64-init-x87-values.exp: Use -wrap and $gdb_test_name in
gdb_test_multiple calls.
* gdb.base/restore.exp: Same.
* gdb.base/store.exp: Same.
* gdb.cp/local-static.exp: Same.
* gdb.rust/simple.exp: Same.
Change-Id: I06299a372ee738c5335f6833f84d20318372ad09
---
gdb/testsuite/gdb.arch/amd64-init-x87-values.exp | 14 ++++-----
gdb/testsuite/gdb.base/restore.exp | 14 ++++-----
gdb/testsuite/gdb.base/store.exp | 31 +++++++++-----------
gdb/testsuite/gdb.cp/local-static.exp | 37 +++++++++++-------------
gdb/testsuite/gdb.rust/simple.exp | 6 ++--
5 files changed, 45 insertions(+), 57 deletions(-)
@@ -128,19 +128,17 @@ proc_with_prefix check_setting_mxcsr_before_enable {} {
gdb_test_no_output "set \$mxcsr=0x9f80" "set a new value for MXCSR"
gdb_test "stepi" "fwait" "step forward one instruction for mxcsr test"
- set test "check new value of MXCSR is still in place"
- set pass_pattern " = 0x9f80"
# Pre-4.14 kernels have a bug (fixed by commit 0852b374173b "x86/fpu:
# Add FPU state copying quirk to handle XRSTOR failure on Intel Skylake
# CPUs") that causes mxcsr not to be copied, in which case we get 0 instead of
# the just saved value.
- set xfail_pattern " = 0x0"
- gdb_test_multiple "p/x \$mxcsr" $test {
- -re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
- pass $test
+ gdb_test_multiple "p/x \$mxcsr" \
+ "check new value of MXCSR is still in place" {
+ -wrap -re " = 0x9f80" {
+ pass $gdb_test_name
}
- -re "\[\r\n\]*(?:$xfail_pattern)\[\r\n\]+$gdb_prompt $" {
- xfail $test
+ -wrap -re " = 0x0" {
+ xfail $gdb_test_name
}
}
}
@@ -73,15 +73,13 @@ proc restore_tests { } {
# they should be.
for {set var 1} {$var <= $c} {incr var} {
set expected [expr 0x7eeb + $var]
- set test "caller$c calls callee$e; return restored l$var to $expected"
- set pass_pattern " = $expected"
- set unsupported_pattern " = <optimized out>"
- gdb_test_multiple "print l$var" $test {
- -re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
- pass $test
+ gdb_test_multiple "print l$var" \
+ "caller$c calls callee$e; return restored l$var to $expected" {
+ -wrap -re " = $expected" {
+ pass $gdb_test_name
}
- -re "\[\r\n\]*(?:$unsupported_pattern)\[\r\n\]+$gdb_prompt $" {
- unsupported $test
+ -wrap -re " = <optimized out>" {
+ unsupported $gdb_test_name
}
}
}
@@ -43,27 +43,25 @@ proc check_set { t l r new add } {
set prefix "var ${t} l"
gdb_test "tbreak wack_${t}"
- set test "continue to wack_${t}"
- gdb_test_multiple "continue" $test {
- -re "register ${t} l = u, r = v;\r\n$gdb_prompt $" {
+ gdb_test_multiple "continue" "continue to wack_${t}" {
+ -wrap -re "register ${t} l = u, r = v;" {
# See GCC PR debug/53948.
send_gdb "next\n"
exp_continue
}
- -re "l = add_${t} .l, r.;\r\n$gdb_prompt $" {
- pass $test
+ -wrap -re "l = add_${t} .l, r.;" {
+ pass $gdb_test_name
}
}
set supported 1
- set test "${prefix}; print old l, expecting ${l}"
- gdb_test_multiple "print l" "$test" {
- -re " = <optimized out>\r\n$gdb_prompt $" {
- unsupported $test
+ gdb_test_multiple "print l" "${prefix}; print old l, expecting ${l}" {
+ -wrap -re " = <optimized out>" {
+ unsupported $gdb_test_name
set supported 0
}
- -re " = ${l}\r\n$gdb_prompt $" {
- pass $test
+ -wrap -re " = ${l}" {
+ pass $gdb_test_name
}
}
if { $supported } {
@@ -102,14 +100,13 @@ proc up_set { t l r new } {
"${prefix}; up"
set supported 1
- set test "${prefix}; print old l, expecting ${l}"
- gdb_test_multiple "print l" "$test" {
- -re " = <optimized out>\r\n$gdb_prompt $" {
- unsupported $test
+ gdb_test_multiple "print l" "${prefix}; print old l, expecting ${l}" {
+ -wrap -re " = <optimized out>" {
+ unsupported $gdb_test_name
set supported 0
}
- -re " = ${l}\r\n$gdb_prompt $" {
- pass $test
+ -wrap -re " = ${l}" {
+ pass $gdb_test_name
}
}
if { $supported } {
@@ -205,40 +205,37 @@ proc do_test {lang} {
# The gcc PR debug/55541 has the effect that local statics are
# wrapped in a DW_TAG_lexical_block, making them unaddressable from
# outside the function. XFAIL the relevant tests.
- set test "print '${scope}'::${var_prefix}_${var}"
set xfail_pattern "No symbol \".*\" in specified context."
- gdb_test_multiple $test $test {
- -re "\[\r\n\]*(?:$print_re)\[\r\n\]+$gdb_prompt $" {
- pass $test
+ gdb_test_multiple "print '${scope}'::${var_prefix}_${var}" "" {
+ -wrap -re $print_re {
+ pass $gdb_test_name
}
- -re "\[\r\n\]*(?:$xfail_pattern)\[\r\n\]+$gdb_prompt $" {
- xfail $test
+ -wrap -re $xfail_pattern {
+ xfail $gdb_test_name
}
}
- set test "print ${scope}::${var_prefix}_${var}"
- gdb_test_multiple $test $test {
- -re "\[\r\n\]*(?:$print_re)\[\r\n\]+$gdb_prompt $" {
- pass $test
+ gdb_test_multiple "print ${scope}::${var_prefix}_${var}" "" {
+ -wrap -re $print_re {
+ pass $gdb_test_name
}
- -re "\[\r\n\]*(?:$xfail_pattern)\[\r\n\]+$gdb_prompt $" {
- xfail $test
+ -wrap -re $xfail_pattern {
+ xfail $gdb_test_name
}
}
set sym "${scope}::${var_prefix}_${var}"
if {$lang == "c++"} {
- set test "print '${sym}'"
set xfail_pattern "No symbol .* in current context."
set xfail_pattern2 "has unknown type; cast it to its declared type"
- gdb_test_multiple $test $test {
- -re "\[\r\n\]*(?:$print_re)\[\r\n\]+$gdb_prompt $" {
- pass $test
+ gdb_test_multiple "print '${sym}'" "" {
+ -wrap -re $print_re {
+ pass $gdb_test_name
}
- -re "\[\r\n\]*(?:$xfail_pattern)\[\r\n\]+$gdb_prompt $" {
- xfail $test
+ -wrap -re $xfail_pattern {
+ xfail $gdb_test_name
}
- -re "\[\r\n\]*(?:$xfail_pattern2)\[\r\n\]+$gdb_prompt $" {
- xfail $test
+ -wrap -re $xfail_pattern2 {
+ xfail $gdb_test_name
}
}
} else {
@@ -200,13 +200,11 @@ gdb_test "print e2.notexist" \
gdb_test "print e2.0" \
"Variant simple::MoreComplicated::Four is not a tuple variant"
-set pass_pattern " = simple::SpaceSaver::Nothing"
-set xfail_pattern " = simple::SpaceSaver::Thebox\\($decimal, 0x0\\)"
gdb_test_multiple "print k" "" {
- -re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
+ -wrap -re " = simple::SpaceSaver::Nothing" {
pass $gdb_test_name
}
- -re "\[\r\n\]*(?:$xfail_pattern)\[\r\n\]+$gdb_prompt $" {
+ -wrap -re " = simple::SpaceSaver::Thebox\\($decimal, 0x0\\)" {
xfail $gdb_test_name
}
}