diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 1f9bf98867..28c704416d 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-07-29 Sergio Durigan Junior + + * gdb.threads/attach-into-signal.exp (corefunc): Use + with_test_prefix on nested loops, uniquefying the test messages. + 2015-07-29 Sergio Durigan Junior * gdb.python/py-objfile.exp: Fix typo that snuck in from my last diff --git a/gdb/testsuite/gdb.threads/attach-into-signal.exp b/gdb/testsuite/gdb.threads/attach-into-signal.exp index 94369faa37..17fd8f254a 100644 --- a/gdb/testsuite/gdb.threads/attach-into-signal.exp +++ b/gdb/testsuite/gdb.threads/attach-into-signal.exp @@ -60,76 +60,81 @@ proc corefunc { threadtype executable } { set attempt 1 set passes 1 while { $passes < 3 && $attempt <= $attempts } { - set stoppedtry 0 - while { $stoppedtry < 10 } { - if [catch {open /proc/${testpid}/status r} fileid] { - set stoppedtry 10 - break - } - gets $fileid line1 - gets $fileid line2 - close $fileid - - if {![string match "*(stopped)*" $line2]} { - # No PASS message as we may be looping in multiple - # attempts. - break - } - sleep 1 - set stoppedtry [expr $stoppedtry + 1] - } - if { $stoppedtry >= 10 } { - verbose -log $line2 - set test "process is still running on the attempt # $attempt of $attempts" - break - } - - # Main test: - set test "attach (pass $passes), pending signal catch" - if {[gdb_test_multiple "attach $testpid" $test { - -re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*Program received signal SIGALRM.*$gdb_prompt $" { - # nonthreaded: - pass $test - verbose -log "$test succeeded on the attempt # $attempt of $attempts" - set passes [expr $passes + 1] - } - -re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*$gdb_prompt $" { - set ok 0 - - if { $threadtype == "threaded" } { - # In the threaded case, the signal is left - # pending on the second thread. Check for - # that by peeking at the thread's siginfo. - # SIGALRM is 14, SIGSTOP is 19. - - set test2 "thread apply 2 print \$_siginfo.si_signo" - gdb_test_multiple $test2 $test2 { - -re " = 14\r\n$gdb_prompt $" { - set ok 1 - } - -re " = 19\r\n$gdb_prompt $" { - } + with_test_prefix "attempt $attempt" { + set stoppedtry 0 + while { $stoppedtry < 10 } { + with_test_prefix "stoppedtry $stoppedtry" { + if [catch {open /proc/${testpid}/status r} fileid] { + set stoppedtry 10 + break } - } else { - # In the nonthreaded case, GDB should tell the - # user about having seen a signal. - } + gets $fileid line1 + gets $fileid line2 + close $fileid - if { $ok == 0} { - # We just lack the luck, we should try it again. - set attempt [expr $attempt + 1] - } else { + if {![string match "*(stopped)*" $line2]} { + # No PASS message as we may be looping in multiple + # attempts. + break + } + sleep 1 + set stoppedtry [expr $stoppedtry + 1] + } + } + if { $stoppedtry >= 10 } { + verbose -log $line2 + set test "process is still running on the attempt # $attempt of $attempts" + break + } + + # Main test: + set test "attach (pass $passes), pending signal catch" + if {[gdb_test_multiple "attach $testpid" $test { + -re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*Program received signal SIGALRM.*$gdb_prompt $" { + # nonthreaded: pass $test verbose -log "$test succeeded on the attempt # $attempt of $attempts" set passes [expr $passes + 1] } - } - }] != 0 } { - break - } + -re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*$gdb_prompt $" { + set ok 0 - gdb_test "detach" "Detaching from.*" "" + if { $threadtype == "threaded" } { + # In the threaded case, the signal is left + # pending on the second thread. Check for + # that by peeking at the thread's siginfo. + # SIGALRM is 14, SIGSTOP is 19. + + set test2 "thread apply 2 print \$_siginfo.si_signo" + gdb_test_multiple $test2 $test2 { + -re " = 14\r\n$gdb_prompt $" { + set ok 1 + } + -re " = 19\r\n$gdb_prompt $" { + } + } + } else { + # In the nonthreaded case, GDB should tell the + # user about having seen a signal. + } + + if { $ok == 0} { + # We just lack the luck, we should try it again. + set attempt [expr $attempt + 1] + } else { + pass $test + verbose -log "$test succeeded on the attempt # $attempt of $attempts" + set passes [expr $passes + 1] + } + } + }] != 0 } { + break + } + + gdb_test "detach" "Detaching from.*" "" + } } + if {$passes < 3} { if {$attempt > $attempts} { unresolved $test @@ -139,7 +144,6 @@ proc corefunc { threadtype executable } { } # Exit and detach the process. - gdb_exit # Make sure we don't leave a process around to confuse the @@ -149,7 +153,7 @@ proc corefunc { threadtype executable } { # Continue the program - some Linux kernels need it before -9 if the # process is stopped. remote_exec build "kill -s CONT ${testpid}" - + remote_exec build "kill -9 ${testpid}" }