Uniquefy gdb.threads/attach-into-signal.exp
authorSergio Durigan Junior <sergiodj@redhat.com>
Wed, 29 Jul 2015 15:10:49 +0000 (11:10 -0400)
committerSergio Durigan Junior <sergiodj@redhat.com>
Wed, 29 Jul 2015 15:10:49 +0000 (11:10 -0400)
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.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.threads/attach-into-signal.exp

index 1f9bf98..28c7044 100644 (file)
@@ -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.
 
index 94369fa..17fd8f2 100644 (file)
@@ -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}"
 
     }