[PATCH] gdb.threads/attach-into-signal.exp: Use with_test_prefix.

Pedro Alves palves@redhat.com
Tue Feb 21 23:48:00 GMT 2012


Looks like I last grepped for lappend in a slightly outdated tree, so
I ended up missing this new lappend pf_prefix usage I had added in
another patch.

So this gets rid of the manual pf_prefix handling from
gdb.threads/attach-into-signal.exp, going a big reindent.  I assume
from the previous discussion that people are okay with this.

Tested on x86_64 Fedora 16.

2012-02-21  Pedro Alves  <palves@redhat.com>

	* gdb.threads/attach-into-signal.exp (corefunc): Use with_test_prefix.
---
 gdb/testsuite/gdb.threads/attach-into-signal.exp |  220 +++++++++++-----------
 1 files changed, 108 insertions(+), 112 deletions(-)

diff --git a/gdb/testsuite/gdb.threads/attach-into-signal.exp b/gdb/testsuite/gdb.threads/attach-into-signal.exp
index e072e51..8560584 100644
--- a/gdb/testsuite/gdb.threads/attach-into-signal.exp
+++ b/gdb/testsuite/gdb.threads/attach-into-signal.exp
@@ -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



More information about the Gdb-patches mailing list