This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] 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.

This is the output of 'git diff -b':

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,8 +60,10 @@ proc corefunc { threadtype executable } {
 	set attempt 1
 	set passes 1
 	while { $passes < 3 && $attempt <= $attempts } {
+	    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
@@ -78,6 +80,7 @@ proc corefunc { threadtype executable } {
 			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"
@@ -130,6 +133,8 @@ proc corefunc { threadtype executable } {
 
 		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



And this is the final commit.

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                          |   5 +
 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}"
 
     }
-- 
2.4.3


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]