[patch] testsuite: Fix racy gdb.mi/mi-nsthrexec.exp FAIL

Jan Kratochvil
2009-06-30T18:23:53Z

Hi,

seen the dump below for unstable results for:
gdb.mi/mi-nsthrexec.exp: thread state, all stopped

the general .* match just aligns the function to existing get_mi_thread_list or
check_mi_and_console_threads expect strings.

Thanks,
Jan

@@ -59880,10 +59843,9 @@ Expecting: ^(-thread-info[
]+[(]gdb[)]
[ ]*)
-thread-info
-~"Current language: auto; currently asm\n"
-^done,threads=[{id="2",target-id="Thread 0x7f2462b8d910 (LWP 9535)",frame={level="0",addr="0x0000000000400668",func="thread_execler",args=[{name="arg",value="0x0"}],file="../.././gdb/testsuite/gdb.mi/nsthrexec.c",fullname="/home/jkratoch/redhat/gdb-master/gdb/testsuite/gdb.mi/nsthrexec.c",line="28"},state="stopped"},{id="1",target-id="Thread 0x7f24635a56f0 (LWP 9296)",frame={level="0",addr="0x00007f246318da7f",func="__lll_unlock_wake_private",args=[],file="../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S",fullname="/usr/src/debug/glibc-20090510T1842/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S",line="336"},state="stopped"}],current-thread-id="1"
+^done,threads=[{id="2",target-id="Thread 0x7f327a926910 (LWP 14350)",frame={level="0",addr="0x0000000000400668",func="thread_execler",args=[{name="arg",value="0x0"}],file="../.././gdb/testsuite/gdb.mi/nsthrexec.c",fullname="/home/jkratoch/redhat/gdb-master/gdb/testsuite/gdb.mi/nsthrexec.c",line="28"},state="stopped"},{id="1",target-id="Thread 0x7f327b33e6f0 (LWP 14301)",frame={level="0",addr="0x00007f327af20b0d",func="pthread_join",args=[{name="threadid",value="139854781507856"},{name="thread_return",value="0x0"}],file="pthread_join.c",fullname="/usr/src/debug/glibc-20090510T1842/nptl/pthread_join.c",line="89"},state="stopped"}],current-thread-id="1"
(gdb)
-FAIL: gdb.mi/mi-nsthrexec.exp: thread state, all stopped
+PASS: gdb.mi/mi-nsthrexec.exp: thread state, all stopped
102-break-delete
102^done
(gdb)

gdb/testsuite/
2009-06-30 Jan Kratochvil <jan.kratochvil@redhat.com>

* lib/mi-support.exp (mi_check_thread_states): Permit any output before
the expected result record.

--- a/gdb/testsuite/lib/mi-support.exp
+++ b/gdb/testsuite/lib/mi-support.exp
@@ -1808,7 +1808,7 @@ proc mi_reverse_list { list } {
proc mi_check_thread_states { xstates test } {
global expect_out
set states [mi_reverse_list $xstates]
- set pattern "\\^done,threads=\\\["
+ set pattern ".*\\^done,threads=\\\["
foreach s $states {
set pattern "${pattern}(.*)state=\"$s\""
}