File gdb-testsuite-add-checks-to-gdb.arch-i386-sse.exp.patch of Package gdb.21950

[gdb/testsuite] Add checks to gdb.arch/i386-sse.exp

In test-case gdb.arch/i386-sse.exp, add the steps marked with "(added)":
- verify data array			(added)
- initialize regs from data array
- verify regs
- modify regs
- verify modified regs			(added)
- write back regs to data array
- verify updated data array

This in the hope to catch more information about failures in this test-case
reported in PR28504.

Also use gdb_test_no_output instead of gdb_test for the "modify regs" step.

Tested on x86_64-linux.

---
 gdb/testsuite/gdb.arch/i386-sse.exp | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/gdb/testsuite/gdb.arch/i386-sse.exp b/gdb/testsuite/gdb.arch/i386-sse.exp
index fca90256505..57f62694e6e 100644
--- a/gdb/testsuite/gdb.arch/i386-sse.exp
+++ b/gdb/testsuite/gdb.arch/i386-sse.exp
@@ -64,17 +64,26 @@ gdb_expect {
     }
 }
 
-gdb_test "break [gdb_get_line_number "first breakpoint here"]" \
-         "Breakpoint .* at .*i386-sse.c.*" \
-         "set first breakpoint in main"
-gdb_continue_to_breakpoint "continue to first breakpoint in main"
-
 if [is_amd64_regs_target] {
     set nr_regs 16
 } else {
     set nr_regs 8
 }
 
+# Verify data array.
+for { set r 0 } { $r < $nr_regs } { incr r } {
+    gdb_test "print data\[$r\]" \
+        ".. = \\{f = \\{$r, $r.25, $r.5, $r.75\\}\\}.*" \
+        "check contents of data\[$r\]"
+}
+
+# Initialize regs from data array.
+gdb_test "break [gdb_get_line_number "first breakpoint here"]" \
+         "Breakpoint .* at .*i386-sse.c.*" \
+         "set first breakpoint in main"
+gdb_continue_to_breakpoint "continue to first breakpoint in main"
+
+# Verify regs.
 for { set r 0 } { $r < $nr_regs } { incr r } {
     gdb_test "print \$xmm$r.v4_float" \
         ".. = \\{$r, $r.25, $r.5, $r.75\\}.*" \
@@ -84,17 +93,27 @@ for { set r 0 } { $r < $nr_regs } { incr r } {
         "check int8 contents of %xmm$r"
 }
 
+# Modify regs.
 for { set r 0 } { $r < $nr_regs } { incr r } {
-    gdb_test "set var \$xmm$r.v4_float\[0\] = $r + 10" "" "set %xmm$r"
+    gdb_test_no_output "set var \$xmm$r.v4_float\[0\] = $r + 10" "set %xmm$r"
 }
 
+# Verify modified regs.
+for { set r 0 } { $r < $nr_regs } { incr r } {
+    gdb_test "print \$xmm$r.v4_float" \
+        ".. = \\{[expr $r + 10], $r.25, $r.5, $r.75\\}.*" \
+        "check contents of %xmm$r"
+}
+
+# Write back regs to data array.
 gdb_test "break [gdb_get_line_number "second breakpoint here"]" \
          "Breakpoint .* at .*i386-sse.c.*" \
          "set second breakpoint in main"
 gdb_continue_to_breakpoint "continue to second breakpoint in main"
 
+# Verify updated data array.
 for { set r 0 } { $r < $nr_regs } { incr r } {
     gdb_test "print data\[$r\]" \
         ".. = \\{f = \\{[expr $r + 10], $r.25, $r.5, $r.75\\}\\}.*" \
-        "check contents of data\[$r\]"
+        "check contents of updated data\[$r\]"
 }
openSUSE Build Service is sponsored by