[committed,gdb/testsuite] Use -wrap and $gdb_test_name in gdb_test_multiple calls

Message ID 20191024220910.GA5176@delia
State New, archived
Headers

Commit Message

Tom de Vries Oct. 24, 2019, 10:09 p.m. UTC
  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(-)
  

Patch

diff --git a/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp b/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
index 5fd18dbb794..d4138d3d7f5 100644
--- a/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
+++ b/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
@@ -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
 	}
     }
 }
diff --git a/gdb/testsuite/gdb.base/restore.exp b/gdb/testsuite/gdb.base/restore.exp
index 56c2f5e3dce..83927c3d233 100644
--- a/gdb/testsuite/gdb.base/restore.exp
+++ b/gdb/testsuite/gdb.base/restore.exp
@@ -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
 		    }
 		}
             }
diff --git a/gdb/testsuite/gdb.base/store.exp b/gdb/testsuite/gdb.base/store.exp
index 9c19ce15a7b..3bdff09b73d 100644
--- a/gdb/testsuite/gdb.base/store.exp
+++ b/gdb/testsuite/gdb.base/store.exp
@@ -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 } {
diff --git a/gdb/testsuite/gdb.cp/local-static.exp b/gdb/testsuite/gdb.cp/local-static.exp
index 9905ffb7948..b1ee894c684 100644
--- a/gdb/testsuite/gdb.cp/local-static.exp
+++ b/gdb/testsuite/gdb.cp/local-static.exp
@@ -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 {
diff --git a/gdb/testsuite/gdb.rust/simple.exp b/gdb/testsuite/gdb.rust/simple.exp
index d3edbd712bb..b063d2a18e8 100644
--- a/gdb/testsuite/gdb.rust/simple.exp
+++ b/gdb/testsuite/gdb.rust/simple.exp
@@ -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
     }
 }