[gdb/testsuite] Fix gdb.btrace/tsx.exp on system with tsx disabled in microcode
authorTom de Vries <tdevries@suse.de>
Mon, 12 Jul 2021 15:24:59 +0000 (17:24 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 12 Jul 2021 15:24:59 +0000 (17:24 +0200)
Recently I started to see this fail with trunk:
...
(gdb) record instruction-history^M
1          0x00000000004004ab <main+4>: call   0x4004b7 <test>^M
2          0x00000000004004c6 <test+15>:        mov    $0x1,%eax^M
3          0x00000000004004cb <test+20>:        ret    ^M
(gdb) FAIL: gdb.btrace/tsx.exp: speculation indication
...

This is due to an intel microcode update (1) that disables Intel TSX by default.

Fix this by updating the pattern.

Tested on x86_64-linux, with both gcc 7.5.0 and clang 12.0.1.

[1] https://www.intel.com/content/www/us/en/support/articles/000059422/processors.html

gdb/testsuite/ChangeLog:

2021-07-12  Tom de Vries  <tdevries@suse.de>

PR testsuite/28057
* gdb.btrace/tsx.exp: Add pattern for system with tsx disabled in
microcode.

gdb/testsuite/gdb.btrace/tsx.exp

index ccde1ea807e19e80eb42945d27b46eb80050650d..66f6305e50a9b75a5488d981fd465eb8c4380e67 100644 (file)
@@ -59,6 +59,11 @@ set abort_2 [multi_line \
     "\[0-9\]*\t   0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\tmov\[^\\\r\\\n\]*" \
     "\[0-9\]*\t   0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\tret\[^\\\r\\\n\]*" \
     ]
+set abort_3 \
+    [multi_line \
+        "$decimal\t   $hex <main\\+$decimal>:\t\[^\\\r\\\n\]*" \
+        "$decimal\t   $hex <test\\+$decimal>:\tmov\[^\\\r\\\n\]*" \
+        "$decimal\t   $hex <test\\+$decimal>:\tret\[^\\\r\\\n\]*"]
 
 set test "speculation indication"
 gdb_test_multiple "record instruction-history" $test {
@@ -68,6 +73,9 @@ gdb_test_multiple "record instruction-history" $test {
     -re "$abort_2.*$gdb_prompt $" {
         pass $test
     }
+    -re -wrap "$abort_3.*" {
+        pass $gdb_test_name
+    }
     -re  "$begin_to_end.*$gdb_prompt $" {
         pass $test
     }