diff options
author | Sergio Durigan Junior <sergiodj@redhat.com> | 2015-07-29 11:10:49 -0400 |
---|---|---|
committer | Sergio Durigan Junior <sergiodj@redhat.com> | 2015-07-29 11:10:49 -0400 |
commit | 7da5b897c96faa3c520662d2b0bd4837567bfb1d (patch) | |
tree | efc89e4e9a5f9200fe144a3aa0f0717cfd65eb4b /gdb | |
parent | dac804dfa6389b71f50b5e169ffa4e239958e774 (diff) | |
download | gdb-7da5b897c96faa3c520662d2b0bd4837567bfb1d.zip gdb-7da5b897c96faa3c520662d2b0bd4837567bfb1d.tar.gz gdb-7da5b897c96faa3c520662d2b0bd4837567bfb1d.tar.bz2 |
Uniquefy gdb.threads/attach-into-signal.exp
Hi,
While examining BuildBot's logs, I noticed:
<https://sourceware.org/ml/gdb-testers/2015-q3/msg03767.html>
gdb.threads/attach-into-signal.exp has two nested loops and don't use
unique messages. This commit fixes that. Pushed under the obvious
rule.
gdb/testsuite/ChangeLog:
2015-07-29 Sergio Durigan Junior <sergiodj@redhat.com>
* gdb.threads/attach-into-signal.exp (corefunc): Use
with_test_prefix on nested loops, uniquefying the test messages.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.threads/attach-into-signal.exp | 126 |
2 files changed, 70 insertions, 61 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 1f9bf98..28c7044 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2015-07-29 Sergio Durigan Junior <sergiodj@redhat.com> + * gdb.threads/attach-into-signal.exp (corefunc): Use + with_test_prefix on nested loops, uniquefying the test messages. + +2015-07-29 Sergio Durigan Junior <sergiodj@redhat.com> + * gdb.python/py-objfile.exp: Fix typo that snuck in from my last commit. diff --git a/gdb/testsuite/gdb.threads/attach-into-signal.exp b/gdb/testsuite/gdb.threads/attach-into-signal.exp index 94369fa..17fd8f2 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 + 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 + } + 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] + } } - gets $fileid line1 - gets $fileid line2 - close $fileid - - if {![string match "*(stopped)*" $line2]} { - # No PASS message as we may be looping in multiple - # attempts. + if { $stoppedtry >= 10 } { + verbose -log $line2 + set test "process is still running on the attempt # $attempt of $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 $" { - } - } - } 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 { + # 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 $" { + } + } + } 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 } - }] != 0 } { - break - } - gdb_test "detach" "Detaching from.*" "" + 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}" } |