[gdb/testsuite] Fix gdb.arch/i386-pkru.exp for native-gdbserver
authorTom de Vries <tdevries@suse.de>
Wed, 15 Mar 2023 15:38:03 +0000 (16:38 +0100)
committerTom de Vries <tdevries@suse.de>
Wed, 15 Mar 2023 15:38:03 +0000 (16:38 +0100)
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

index 1f047df68ef670ef8f93261c69a47398dc9290b8..223a8aa95f0e25491ab765d6b41cdfbaacc7c38d 100644 (file)
@@ -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
+       }
+    }
+}