[pushed,3/5,gdb/testsuite] Fix gdb.arch/i386-pkru.exp for native-gdbserver

Message ID 20230315153837.21440-4-tdevries@suse.de
State Committed
Headers
Series Fix remote host issues in gdb.arch tests |

Commit Message

Tom de Vries March 15, 2023, 3:38 p.m. UTC
  With test-case gdb.arch/i386-pkru.exp and target board native-gdbserver we run
into:
...
FAIL: gdb.arch/i386-pkru.exp: variable after reading pkru
...

This looks similar to the the problem for which there's already an xfail, so
fix this by extending the xfail matching.

Tested on x86_64-linux.

Also tested on openSUSE Tumbleweed, where all tests in the test-case pass.
---
 gdb/testsuite/gdb.arch/i386-pkru.exp | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)
  

Patch

diff --git a/gdb/testsuite/gdb.arch/i386-pkru.exp b/gdb/testsuite/gdb.arch/i386-pkru.exp
index 1f047df68ef..223a8aa95f0 100644
--- a/gdb/testsuite/gdb.arch/i386-pkru.exp
+++ b/gdb/testsuite/gdb.arch/i386-pkru.exp
@@ -80,7 +80,6 @@  gdb_test "info register pkru" ".*pkru.*$val1.*" "read pkru register"
 set val2 0x44444444
 gdb_test "print /x \$pkru = $val2" "= $val2" "set pkru value"
 
-set xval $val2
 gdb_test_multiple "info register pkru" "read value after setting value" {
     -re -wrap ".*pkru.*$val2.*" {
 	pass $gdb_test_name
@@ -91,11 +90,21 @@  gdb_test_multiple "info register pkru" "read value after setting value" {
 	} else {
 	    fail $gdb_test_name
 	}
-	set xval $val1
     }
 }
 
 gdb_breakpoint [ gdb_get_line_number "break here 2" ]
 gdb_continue_to_breakpoint "break here 2" ".*break here 2.*"
 
-gdb_test "print /x rd_value" "= $xval" "variable after reading pkru"
+gdb_test_multiple "print /x rd_value" "variable after reading pkru" {
+    -re -wrap "= $val2" {
+	pass $gdb_test_name
+    }
+    -re -wrap "= $val1" {
+	if { $have_xfail } {
+	    xfail $gdb_test_name
+	} else {
+	    fail $gdb_test_name
+	}
+    }
+}