btrace, testsuite: fix spurious gdb.btrace/tsx.exp fails

If the atomic section in x86-tsx.S is aborted, the tsx.exp test will fail
even if the traced output is actually correct.

Consider abort scenarios in the test.

testsuite/
	* gdb.btrace/tsx.exp: Consider multiple correct outputs in the record
	instruction-history test.
This commit is contained in:
Markus Metzger 2015-08-24 11:37:53 +02:00
parent 9865bd0da6
commit 77ba2a6796
2 changed files with 37 additions and 7 deletions

View File

@ -1,3 +1,8 @@
2015-09-30 Markus Metzger <markus.t.metzger@intel.com>
* gdb.btrace/tsx.exp: Consider multiple correct outputs in the record
instruction-history test.
2015-09-28 Doug Evans <dje@google.com>
* gdb.base/gcore.c (array_func): Add reference to static_array.

View File

@ -32,10 +32,35 @@ gdb_test_no_output "record btrace pt"
gdb_test "next"
# look at the instruction trace
gdb_test "record instruction-history" [multi_line \
".*" \
"\[0-9\]*\t\\? 0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\txbegin\[^\\\r\\\n\]*" \
"\[0-9\]*\t\\? 0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\tmov\[^\\\r\\\n\]*" \
"\[0-9\]*\t 0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\txend\[^\\\r\\\n\]*" \
".*" \
]
set begin_to_end [multi_line \
".*" \
"\[0-9\]*\t\\? 0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\txbegin\[^\\\r\\\n\]*" \
"\[0-9\]*\t\\? 0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\tmov\[^\\\r\\\n\]*" \
"\[0-9\]*\t 0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\txend\[^\\\r\\\n\]*" \
]
set abort_1 [multi_line \
".*" \
"\[0-9\]*\t\\? 0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\txbegin\[^\\\r\\\n\]*" \
"\[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_2 [multi_line \
".*" \
"\[0-9\]*\t\\? 0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\txbegin\[^\\\r\\\n\]*" \
"\[0-9\]*\t\\? 0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\tmov\[^\\\r\\\n\]*" \
"\[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 test "speculation indication"
gdb_test_multiple "record instruction-history" $test {
-re "$abort_1.*$gdb_prompt $" {
pass $test
}
-re "$abort_2.*$gdb_prompt $" {
pass $test
}
-re "$begin_to_end.*$gdb_prompt $" {
pass $test
}
}