2012-02-24 Pedro Alves <palves@redhat.com>
authorPedro Alves <palves@redhat.com>
Fri, 24 Feb 2012 14:06:29 +0000 (14:06 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 24 Feb 2012 14:06:29 +0000 (14:06 +0000)
* gdb.threads/attach-into-signal.exp (corefunc): Use
with_test_prefix.

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

index 772c5bf..8187f65 100644 (file)
@@ -1,3 +1,8 @@
+2012-02-24  Pedro Alves  <palves@redhat.com>
+
+       * gdb.threads/attach-into-signal.exp (corefunc): Use
+       with_test_prefix.
+
 2012-02-24  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        Fix false FAILs on old CPUs without SSE.
index e072e51..8560584 100644 (file)
@@ -39,141 +39,137 @@ proc corefunc { threadtype executable } {
     global objdir
     global subdir
     global gdb_prompt
-    global pf_prefix
 
-    set save_pf_prefix $pf_prefix
-    lappend pf_prefix "$threadtype:"
+    with_test_prefix "$threadtype" {
+       clean_restart ${executable}
 
-    clean_restart ${executable}
+       set binfile ${objdir}/${subdir}/${executable}
+       set escapedbinfile [string_to_regexp ${objdir}/${subdir}/${executable}]
 
-    set binfile ${objdir}/${subdir}/${executable}
-    set escapedbinfile [string_to_regexp ${objdir}/${subdir}/${executable}]
-
-    if [get_compiler_info ${binfile}] {
-       set pf_prefix $save_pf_prefix
-       return -1
-    }
-
-    gdb_test "handle SIGALRM stop print pass" "Yes.*Yes.*Yes.*"
-
-    # Start the program running and then wait for a bit, to be sure
-    # that it can be attached to.
-    # Statistically there is a better chance without giving process a nice.
-
-    set testpid [eval exec $binfile &]
-    exec sleep 2
-
-    # Run 2 passes of the test.
-    # The C file inferior stops pending its signals if a single one is lost,
-    # we test successful redelivery of the caught signal by the 2nd pass.
+       if [get_compiler_info ${binfile}] {
+           return -1
+       }
 
-    # linux-2.6.20.4.x86_64 had maximal attempt # 20 in 4 test runs.
-    set attempts 100
-    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
+       gdb_test "handle SIGALRM stop print pass" "Yes.*Yes.*Yes.*"
+
+       # Start the program running and then wait for a bit, to be sure
+       # that it can be attached to.
+       # Statistically there is a better chance without giving process a nice.
+
+       set testpid [eval exec $binfile &]
+       exec sleep 2
+
+       # Run 2 passes of the test.
+       # The C file inferior stops pending its signals if a single one is lost,
+       # we test successful redelivery of the caught signal by the 2nd pass.
+
+       # linux-2.6.20.4.x86_64 had maximal attempt # 20 in 4 test runs.
+       set attempts 100
+       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]
            }
-           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.
-
-                   # With remote targets, we need to pull the thread
-                   # list explicitly before GDB even knows about
-                   # thread 2.
-                   set test2 "pull thread list"
-                   gdb_test_multiple "info threads" $test2 {
-                       -re "\r\n$gdb_prompt $" {
+           # 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.
+
+                       # With remote targets, we need to pull the
+                       # thread list explicitly before GDB even knows
+                       # about thread 2.
+                       set test2 "pull thread list"
+                       gdb_test_multiple "info threads" $test2 {
+                           -re "\r\n$gdb_prompt $" {
+                           }
                        }
-                   }
 
-                   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 $" {
+                       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.
                    }
-               } 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]
+                   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.*" ""
-    }
-    if {$passes < 3} {
-       if {$attempt > $attempts} {
-           unresolved $test
-       } else {
-           fail $test
+           gdb_test "detach" "Detaching from.*" ""
+       }
+       if {$passes < 3} {
+           if {$attempt > $attempts} {
+               unresolved $test
+           } else {
+               fail $test
+           }
        }
-    }
 
-    # Exit and detach the process.
+       # Exit and detach the process.
        
-    gdb_exit
+       gdb_exit
 
-    # Make sure we don't leave a process around to confuse
-    # the next test run (and prevent the compile by keeping
-    # the text file busy), in case the "set should_exit" didn't
-    # work.
+       # Make sure we don't leave a process around to confuse the
+       # next test run (and prevent the compile by keeping the text
+       # file busy), in case the "set should_exit" didn't work.
 
-    # Continue the program - some Linux kernels need it before -9 if the
-    # process is stopped.
-    remote_exec build "kill -s CONT ${testpid}"
+       # 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}"
+       remote_exec build "kill -9 ${testpid}"
 
-    set pf_prefix $save_pf_prefix
+    }
 }
 
 # build the test case first without threads